Class XhtmlParser
java.lang.Object
org.apache.maven.doxia.parser.AbstractParser
org.apache.maven.doxia.parser.AbstractXmlParser
org.apache.maven.doxia.parser.XhtmlBaseParser
org.apache.maven.doxia.module.xhtml.XhtmlParser
- All Implemented Interfaces:
LogEnabled
,HtmlMarkup
,Markup
,XmlMarkup
,XhtmlMarkup
,Parser
@Component(role=Parser.class,
hint="xhtml")
public class XhtmlParser
extends XhtmlBaseParser
implements XhtmlMarkup
Parse an xhtml model and emit events into a Doxia Sink.
- Since:
- 1.0
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.maven.doxia.parser.AbstractXmlParser
AbstractXmlParser.CachedFileEntityResolver
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
For boxed verbatim.private boolean
Empty elements don't write a closing tag.private String
The source content of the input reader.Fields inherited from interface org.apache.maven.doxia.markup.HtmlMarkup
A, 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, WBR
Fields inherited from interface org.apache.maven.doxia.markup.Markup
COLON, EOL, EQUAL, GREATER_THAN, LEFT_CURLY_BRACKET, LEFT_SQUARE_BRACKET, LESS_THAN, MINUS, PLUS, QUOTE, RIGHT_CURLY_BRACKET, RIGHT_SQUARE_BRACKET, SEMICOLON, SLASH, SPACE, STAR
Fields inherited from interface org.apache.maven.doxia.parser.Parser
ROLE, TXT_TYPE, UNKNOWN_TYPE, XML_TYPE
Fields inherited from interface org.apache.maven.doxia.module.xhtml.XhtmlMarkup
XHTML_NAMESPACE, XHTML_TRANSITIONAL_PUBLIC_ID, XHTML_TRANSITIONAL_SYSTEM_ID
Fields inherited from interface org.apache.maven.doxia.markup.XmlMarkup
BANG, CDATA, DOCTYPE_START, ENTITY_START, XML_NAMESPACE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate String
escapeForMacroprotected void
handleComment
(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) Handles comments.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
Parses the given source model and emits Doxia events into the given sink.private void
processMacro
(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, String text, Sink sink) process macro embedded in XHTML commmentprivate String
unescapeForMacroMethods inherited from class org.apache.maven.doxia.parser.XhtmlBaseParser
baseEndTag, baseStartTag, consecutiveSections, getSectionLevel, handleCdsect, handleText, initXmlParser, isScriptBlock, isVerbatim, setSectionLevel, validAnchor, verbatim, verbatim_
Methods inherited from class org.apache.maven.doxia.parser.AbstractXmlParser
getAttributesFromParser, getLocalEntities, getText, getType, handleEntity, handleUnknown, isCollapsibleWhitespace, isIgnorableWhitespace, isTrimmableWhitespace, isValidate, setCollapsibleWhitespace, setIgnorableWhitespace, setTrimmableWhitespace, setValidate
Methods inherited from class org.apache.maven.doxia.parser.AbstractParser
doxiaVersion, enableLogging, executeMacro, getBasedir, getLog, getMacroManager, isEmitComments, isSecondParsing, parse, parse, parse, setEmitComments, setSecondParsing
-
Field Details
-
boxed
protected boolean boxedFor boxed verbatim. -
isEmptyElement
private boolean isEmptyElementEmpty elements don't write a closing tag. -
sourceContent
The source content of the input reader. Used to pass into macros.
-
-
Constructor Details
-
XhtmlParser
public XhtmlParser()
-
-
Method Details
-
handleStartTag
protected void handleStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, MacroExecutionException Goes through the possible start tags. Just callsXhtmlBaseParser.baseStartTag(XmlPullParser,Sink)
, this should be overridden by implementing parsers to include additional tags.- Overrides:
handleStartTag
in classXhtmlBaseParser
- Parameters:
parser
- A parser, not null.sink
- the sink to receive the events.- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
- if there's a problem parsing the modelMacroExecutionException
- if there's a problem executing a macro
-
handleEndTag
protected void handleEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, MacroExecutionException Goes through the possible end tags. Just callsXhtmlBaseParser.baseEndTag(XmlPullParser,Sink)
, this should be overridden by implementing parsers to include additional tags.- Overrides:
handleEndTag
in classXhtmlBaseParser
- Parameters:
parser
- A parser, not null.sink
- the sink to receive the events.- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
- if there's a problem parsing the modelMacroExecutionException
- if there's a problem executing a macro
-
handleComment
protected void handleComment(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException Handles comments.This is a default implementation, all data are emitted as comment events into the specified sink.
- Overrides:
handleComment
in classXhtmlBaseParser
- Parameters:
parser
- A parser, not null.sink
- the sink to receive the events. Not null.- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
- if there's a problem parsing the model
-
processMacro
private void processMacro(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, String text, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException process macro embedded in XHTML commment- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
escapeForMacro
escapeForMacro- Parameters:
s
- String- Returns:
- String
-
unescapeForMacro
unescapeForMacro- Parameters:
s
- String- Returns:
- String
-
init
protected void init()Initialize the parser. This is called first byAbstractParser.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.- Overrides:
init
in classXhtmlBaseParser
-
parse
Parses the given source model and emits Doxia events into the given sink.- Specified by:
parse
in interfaceParser
- Overrides:
parse
in classXhtmlBaseParser
- Parameters:
source
- not null reader that provides the source document. You could usenewReader
methods fromReaderFactory
.sink
- A sink that consumes the Doxia events.reference
- the reference- Throws:
ParseException
- if the model could not be parsed.
-