Package org.apache.maven.doxia.parser
Class AbstractXmlParser
java.lang.Object
org.apache.maven.doxia.parser.AbstractParser
org.apache.maven.doxia.parser.AbstractXmlParser
- Direct Known Subclasses:
Xhtml5BaseParser
An abstract class that defines some convenience methods for
XML parsers.- Since:
- 1.0
- Author:
- Vincent Siveton
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classImplementation of the callback mechanismEntityResolver. -
Field Summary
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, STARFields inherited from interface org.apache.maven.doxia.parser.Parser
TXT_TYPE, UNKNOWN_TYPE, XML_TYPEFields inherited from interface org.apache.maven.doxia.markup.XmlMarkup
BANG, CDATA, DOCTYPE_START, ENTITY_START, XML_NAMESPACE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanprotected SinkEventAttributeSetgetAttributesFromParser(org.codehaus.plexus.util.xml.pull.XmlPullParser parser) Converts the attributes of the current start tag of the given parser to a SinkEventAttributeSet.Return the defined entities in a local doctype.protected StringgetText(org.codehaus.plexus.util.xml.pull.XmlPullParser parser) getText.final intgetType()protected voidhandleCdsect(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.Sink sink) Handles CDATA sections.protected voidhandleComment(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.Sink sink) Handles comments.protected abstract voidhandleEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.Sink sink) Goes through the possible end tags.protected voidhandleEntity(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.Sink sink) Handles entities.protected abstract voidhandleStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.Sink sink) Goes through the possible start tags.protected voidhandleText(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.Sink sink) Handles text events.protected voidhandleUnknown(String elementName, SinkEventAttributeSet attribs, org.apache.maven.doxia.sink.Sink sink, int type) protected voidhandleUnknown(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.Sink sink, int type) Handles an unknown event.protected voidinitXmlParser(org.codehaus.plexus.util.xml.pull.XmlPullParser parser) Initializes the parser with custom entities or other options.protected booleanisCollapsibleWhitespace.protected booleanisIgnorableWhitespace.protected booleanisTrimmableWhitespace.booleanisValidate.voidParses the given source model and emits Doxia events into the given sink.voidsetAddDefaultEntities(boolean addDefaultEntities) protected voidsetCollapsibleWhitespace(boolean collapsible) Specify that text will be collapsed.protected voidsetIgnorableWhitespace(boolean ignorable) Specify that whitespace will be ignored.protected voidsetTrimmableWhitespace(boolean trimmable) Specify that text will be collapsed.voidsetValidate(boolean validate) Specify a flag to validate or not the XML content.Methods inherited from class org.apache.maven.doxia.parser.AbstractParser
addSinkWrapperFactory, doxiaVersion, executeMacro, getBasedir, getMacroManager, getSinkWrapperFactories, getWrappedSink, init, isEmitAnchorsForIndexableEntries, isEmitComments, isSecondParsing, parse, parse, parse, setEmitAnchorsForIndexableEntries, setEmitComments, setSecondParsing
-
Constructor Details
-
AbstractXmlParser
public AbstractXmlParser()
-
-
Method Details
-
parse
public void parse(Reader source, org.apache.maven.doxia.sink.Sink sink, String reference) throws ParseException Parses the given source model and emits Doxia events into the given sink.- Specified by:
parsein interfaceParser- Parameters:
source- not null reader that provides the source document. You could usenewReadermethods fromReaderFactory.sink- A sink that consumes the Doxia events.reference- a string identifying the source (for file based documents the source file path)- Throws:
ParseException- if the model could not be parsed.
-
initXmlParser
protected void initXmlParser(org.codehaus.plexus.util.xml.pull.XmlPullParser parser) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException Initializes the parser with custom entities or other options.- Parameters:
parser- A parser, not null.- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException- if there's a problem initializing the parser
-
getType
public final int getType()- Specified by:
getTypein interfaceParser- Overrides:
getTypein classAbstractParser- Returns:
- a int
-
getAttributesFromParser
protected SinkEventAttributeSet getAttributesFromParser(org.codehaus.plexus.util.xml.pull.XmlPullParser parser) Converts the attributes of the current start tag of the given parser to a SinkEventAttributeSet.- Parameters:
parser- A parser, not null.- Returns:
- a SinkEventAttributeSet or null if the current parser event is not a start tag.
- Since:
- 1.1
-
handleStartTag
protected abstract void handleStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, MacroExecutionException Goes through the possible start tags.- 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 abstract void handleEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, MacroExecutionException Goes through the possible end tags.- 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
-
handleText
protected void handleText(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException Handles text events.This is a default implementation, if the parser points to a non-empty text element, it is emitted as a text event into the specified sink.
- 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
-
handleCdsect
protected void handleCdsect(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException Handles CDATA sections.This is a default implementation, all data are emitted as text events into the specified sink.
- 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
-
handleComment
protected void handleComment(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.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.
- 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
-
handleEntity
protected void handleEntity(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException Handles entities.This is a default implementation, all entities are resolved and emitted as text events into the specified sink, except:
- the entities with names
#160,nbspand#x00A0are emitted asnonBreakingSpace()events.
- 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
- the entities with names
-
handleUnknown
protected void handleUnknown(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, org.apache.maven.doxia.sink.Sink sink, int type) Handles an unknown event.This is a default implementation, all events are emitted as unknown events into the specified sink.
- Parameters:
parser- the parser to get the event from.sink- the sink to receive the event.type- the tag event type. This should be one of HtmlMarkup.TAG_TYPE_SIMPLE, HtmlMarkup.TAG_TYPE_START, HtmlMarkup.TAG_TYPE_END or HtmlMarkup.ENTITY_TYPE. It will be passed as the first argument of the required parameters to the SinkSink.unknown(String, Object[], org.apache.maven.doxia.sink.SinkEventAttributes)method.
-
handleUnknown
protected void handleUnknown(String elementName, SinkEventAttributeSet attribs, org.apache.maven.doxia.sink.Sink sink, int type) -
isIgnorableWhitespace
protected boolean isIgnorableWhitespace()isIgnorableWhitespace.
- Returns:
trueif whitespace will be ignored,falseotherwise.- Since:
- 1.1
- See Also:
-
setIgnorableWhitespace
protected void setIgnorableWhitespace(boolean ignorable) Specify that whitespace will be ignored. I.e.:<tr> <td/> </tr>
is equivalent to<tr><td/></tr>
- Parameters:
ignorable-trueto ignore whitespace,falseotherwise.- Since:
- 1.1
-
isCollapsibleWhitespace
protected boolean isCollapsibleWhitespace()isCollapsibleWhitespace.
- Returns:
trueif text will collapse,falseotherwise.- Since:
- 1.1
- See Also:
-
setCollapsibleWhitespace
protected void setCollapsibleWhitespace(boolean collapsible) Specify that text will be collapsed. I.e.:Text Text
is equivalent toText Text
- Parameters:
collapsible-trueto allow collapsible text,falseotherwise.- Since:
- 1.1
-
isTrimmableWhitespace
protected boolean isTrimmableWhitespace()isTrimmableWhitespace.
- Returns:
trueif text will be trim,falseotherwise.- Since:
- 1.1
- See Also:
-
setTrimmableWhitespace
protected void setTrimmableWhitespace(boolean trimmable) Specify that text will be collapsed. I.e.:<p> Text </p>
is equivalent to<p>Text</p>
- Parameters:
trimmable-trueto allow trimmable text,falseotherwise.- Since:
- 1.1
-
getText
getText.
- Parameters:
parser- A parser, not null.- Returns:
- the
XmlPullParser.getText()taking care of trimmable or collapsible configuration. - Since:
- 1.1
- See Also:
-
getLocalEntities
Return the defined entities in a local doctype. I.e.:<!DOCTYPE foo [ <!ENTITY bar "Š"> <!ENTITY bar1 "š"> ]>
- Returns:
- a map of the defined entities in a local doctype.
- Since:
- 1.1
-
isValidate
public boolean isValidate()isValidate.
- Returns:
trueif XML content will be validate,falseotherwise.- Since:
- 1.1
-
setValidate
public void setValidate(boolean validate) Specify a flag to validate or not the XML content.- Parameters:
validate- the validate to set- Since:
- 1.1
- See Also:
-
getAddDefaultEntities
public boolean getAddDefaultEntities()- Since:
- 2.0.0-M4
-
setAddDefaultEntities
public void setAddDefaultEntities(boolean addDefaultEntities) - Since:
- 2.0.0-M4
-