@Component(role=Parser.class, hint="xdoc") public class XdocParser extends XhtmlBaseParser implements XdocMarkup
AbstractXmlParser.CachedFileEntityResolverAUTHOR_TAG, DATE_TAG, DOCUMENT_TAG, MACRO_TAG, PROPERTIES_TAG, SECTION_TAG, SOURCE_TAG, SUBSECTION_TAG, XDOC_NAMESPACE, XDOC_SYSTEM_IDA, ABBR, ACRONYM, ADDRESS, APPLET, AREA, ARTICLE, ASIDE, AUDIO, B, BASE, BASEFONT, BDI, BDO, BIG, BLOCKQUOTE, BODY, BR, BUTTON, CANVAS, CAPTION, CDATA_TYPE, CENTER, CITE, CODE, COL, COLGROUP, COMMAND, DATA, DATALIST, DD, DEL, DETAILS, DFN, DIALOG, DIR, DIV, DL, DT, EM, EMBED, ENTITY_TYPE, FIELDSET, FIGCAPTION, FIGURE, FONT, FOOTER, FORM, FRAME, FRAMESET, H1, H2, H3, H4, H5, H6, HEAD, HEADER, HGROUP, HR, HTML, I, IFRAME, IMG, INPUT, INS, ISINDEX, KBD, KEYGEN, LABEL, LEGEND, LI, LINK, MAIN, MAP, MARK, MENU, META, METER, NAV, NOFRAMES, NOSCRIPT, OBJECT, OL, OPTGROUP, OPTION, OUTPUT, P, PARAM, PICTURE, PRE, PROGRESS, Q, RB, RP, RT, RTC, RUBY, S, SAMP, SCRIPT, SECTION, SELECT, SMALL, SOURCE, SPAN, STRIKE, STRONG, STYLE, SUB, SUMMARY, SUP, TABLE, TAG_TYPE_END, TAG_TYPE_SIMPLE, TAG_TYPE_START, TBODY, TD, TEMPLATE, TEXTAREA, TFOOT, TH, THEAD, TIME, TITLE, TR, TRACK, TT, U, UL, VAR, VIDEO, WBRBANG, CDATA, DOCTYPE_START, ENTITY_START, XML_NAMESPACECOLON, EOL, EQUAL, GREATER_THAN, LEFT_CURLY_BRACKET, LEFT_SQUARE_BRACKET, LESS_THAN, MINUS, PLUS, QUOTE, RIGHT_CURLY_BRACKET, RIGHT_SQUARE_BRACKET, SEMICOLON, SLASH, SPACE, STARROLE, TXT_TYPE, UNKNOWN_TYPE, XML_TYPE| Constructor and Description |
|---|
XdocParser() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
consecutiveSections(int newLevel,
Sink sink)
Make sure sections are nested consecutively.
|
protected void |
handleEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Goes through the possible end tags.
|
protected void |
handleStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Goes through the possible start tags.
|
protected void |
init()
Initialize the parser.
|
void |
parse(Reader source,
Sink sink,
String reference)
Parses the given source model and emits Doxia events into the given sink.
|
baseEndTag, baseStartTag, getSectionLevel, handleCdsect, handleComment, handleText, initXmlParser, isScriptBlock, isVerbatim, setSectionLevel, validAnchor, verbatim_, verbatimgetAttributesFromParser, getLocalEntities, getText, getType, handleEntity, handleUnknown, isCollapsibleWhitespace, isIgnorableWhitespace, isTrimmableWhitespace, isValidate, setCollapsibleWhitespace, setIgnorableWhitespace, setTrimmableWhitespace, setValidatedoxiaVersion, enableLogging, executeMacro, getBasedir, getLog, getMacroManager, isEmitComments, isSecondParsing, parse, parse, parse, setEmitComments, setSecondParsingpublic XdocParser()
public void parse(Reader source, Sink sink, String reference) throws ParseException
parse in interface Parserparse in class XhtmlBaseParsersource - not null reader that provides the source document.
You could use newReader methods from ReaderFactory.sink - A sink that consumes the Doxia events.reference - the referenceParseException - if the model could not be parsed.protected void handleStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, MacroExecutionException
XhtmlBaseParser.baseStartTag(XmlPullParser,Sink), this should be
overridden by implementing parsers to include additional tags.handleStartTag in class XhtmlBaseParserparser - A parser, not null.sink - the sink to receive the events.org.codehaus.plexus.util.xml.pull.XmlPullParserException - if there's a problem parsing the modelMacroExecutionException - if there's a problem executing a macroprotected void handleEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, MacroExecutionException
XhtmlBaseParser.baseEndTag(XmlPullParser,Sink), this should be
overridden by implementing parsers to include additional tags.handleEndTag in class XhtmlBaseParserparser - A parser, not null.sink - the sink to receive the events.org.codehaus.plexus.util.xml.pull.XmlPullParserException - if there's a problem parsing the modelMacroExecutionException - if there's a problem executing a macroprotected void consecutiveSections(int newLevel, Sink sink)
HTML doesn't have any sections, only sectionTitles (<h2> etc), that means we have to open close any sections that are missing in between.
For instance, if the following sequence is parsed:
<h3></h3> <h6></h6>
we have to insert two section starts before we open the <h6>.
In the following sequence
<h6></h6> <h3></h3>
we have to close two sections before we open the <h3>.
The current level is set to newLevel afterwards.
consecutiveSections in class XhtmlBaseParsernewLevel - the new section level, all upper levels have to be closed.sink - the sink to receive the events.protected void init()
AbstractParser.parse(java.io.Reader, org.apache.maven.doxia.sink.Sink) and can be used
to set the parser into a clear state so it can be re-used.init in class XhtmlBaseParserCopyright © 2005–2021 The Apache Software Foundation. All rights reserved.