Package de.pdark.decentxml
Class XMLParser
java.lang.Object
de.pdark.decentxml.XMLParser
The class uses the
XMLTokenizer
to parse an XMLSource
into a Document
.- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate CharValidator
The character validator to useprivate EntityResolver
The entity resolver to use to expand entities in the inputprivate boolean
Should entities be expanded? Use this to temporarily disable entity expansion even if a resolver is registeredprivate boolean
Should the parser return entity nodes or treat them as text? Default is true. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Node
createAttribute
(Token token) protected Node
createCData
(Token token) protected Node
createComment
(Token token) protected Node
createDocTypeText
(Token token) protected XMLTokenizer
createDTDTokenizer
(XMLSource source, int startOffset) protected Node
createElement
(Token token) protected Node
createElementWhitespace
(Token token) protected Node
createEntity
(Token token) protected Node
createProcessingInstruction
(Token token) protected Node
createText
(Token token) protected XMLTokenizer
createTokenizer
(XMLSource source) protected void
expandEntity
(Element parent, XMLTokenizer parentTokenizer, Token entityToken, Set<String> recursionTrap) protected Token
expect
(XMLTokenizer tokenizer, Token startToken, XMLTokenizer.Type[] expected, String errorMessage) Fetch the next token and make sure it's one ofexpected
.protected Token
expect
(XMLTokenizer tokenizer, Token startToken, XMLTokenizer.Type expected, String errorMessage) Fetch the next token and make sure it'sexpected
.boolean
boolean
protected boolean
isValidName
(XMLTokenizer tokenizer, String name) Parse an XML source into a Documentstatic Document
Convenience method to parse a file into XML.static Document
Convenience method to parse a String into XML.protected Token
parseAttListNameTokens
(XMLTokenizer tokenizer, Token token, DocTypeAttributeList attList) protected Token
parseAttListTypeGroup
(XMLTokenizer tokenizer, Token token, DocTypeAttributeList attList) protected DocType
parseDocType
(XMLTokenizer tokenizer) protected void
parseDocTypeAttList
(XMLTokenizer tokenizer, Token startToken, DocType docType) protected void
parseDocTypeEntity
(XMLTokenizer tokenizer, Token startToken, DocType docType) protected void
parseDocTypeNotation
(XMLTokenizer tokenizer, Token startToken, DocType docType) protected void
parseDocTypeSubElement
(XMLTokenizer tokenizer, Token startToken, DocType docType) protected Token
parseDocTypeSubSet
(XMLTokenizer tokenizer, Token startToken, DocType docType) protected void
parseElement
(XMLTokenizer tokenizer, Element parent) Parse all tokens up to the end tag recursively into an element.protected Token
parseElementContent
(XMLTokenizer tokenizer, Element parent, Set<String> recursionTrap) protected Token
parsePublicLiteral
(XMLTokenizer tokenizer, Token startToken, DocType docType) protected Token
parseSystemLiteral
(XMLTokenizer tokenizer, Token startToken, DocType docType) setCharValidator
(CharValidator charValidator) setEntityResolver
(EntityResolver entityResolver) setExpandEntities
(boolean expandEntities) setTreatEntitiesAsText
(boolean treatEntitiesAsText) protected Token
skipOptionalWhitespace
(XMLTokenizer tokenizer, Token startToken, DocType docType) If the next token is whitespace, skip it.protected Token
skipWhiteSpaceAndComments
(XMLTokenizer tokenizer, Token token, DocTypeNode n) protected String
stripQuotes
(Token token) protected Node
This turns a token into a node.
-
Field Details
-
entityResolver
The entity resolver to use to expand entities in the input -
expandEntities
private boolean expandEntitiesShould entities be expanded? Use this to temporarily disable entity expansion even if a resolver is registered -
treatEntitiesAsText
private boolean treatEntitiesAsTextShould the parser return entity nodes or treat them as text? Default is true. -
charValidator
The character validator to use
-
-
Constructor Details
-
XMLParser
public XMLParser()
-
-
Method Details
-
setEntityResolver
-
getEntityResolver
-
setExpandEntities
-
isExpandEntities
public boolean isExpandEntities() -
setTreatEntitiesAsText
-
isTreatEntitiesAsText
public boolean isTreatEntitiesAsText() -
getCharValidator
-
setCharValidator
-
parse
Parse an XML source into a Document -
parseDocType
-
createDTDTokenizer
-
skipOptionalWhitespace
If the next token is whitespace, skip it.- Parameters:
tokenizer
-startToken
- This might be whitespacedocType
-- Returns:
- The current or the next token.
-
parseDocTypeSubSet
-
parseDocTypeNotation
-
parseDocTypeEntity
-
stripQuotes
-
parseDocTypeAttList
-
isValidName
-
parseAttListNameTokens
protected Token parseAttListNameTokens(XMLTokenizer tokenizer, Token token, DocTypeAttributeList attList) -
parseAttListTypeGroup
protected Token parseAttListTypeGroup(XMLTokenizer tokenizer, Token token, DocTypeAttributeList attList) -
skipWhiteSpaceAndComments
-
parseDocTypeSubElement
-
parsePublicLiteral
-
parseSystemLiteral
-
expect
protected Token expect(XMLTokenizer tokenizer, Token startToken, XMLTokenizer.Type[] expected, String errorMessage) Fetch the next token and make sure it's one ofexpected
. If not, create anXMLParseException
using theerrorMessage
-
expect
protected Token expect(XMLTokenizer tokenizer, Token startToken, XMLTokenizer.Type expected, String errorMessage) Fetch the next token and make sure it'sexpected
. If not, create anXMLParseException
using theerrorMessage
-
createTokenizer
- Parameters:
source
-- Returns:
-
parseElement
Parse all tokens up to the end tag recursively into an element. -
parseElementContent
protected Token parseElementContent(XMLTokenizer tokenizer, Element parent, Set<String> recursionTrap) - Parameters:
tokenizer
-parent
-
-
expandEntity
protected void expandEntity(Element parent, XMLTokenizer parentTokenizer, Token entityToken, Set<String> recursionTrap) -
toNode
This turns a token into a node.Override this to implement custom node types.
-
createDocTypeText
-
createProcessingInstruction
-
createElementWhitespace
-
createComment
-
createCData
-
createElement
-
createAttribute
-
createEntity
-
createText
-
parse
Convenience method to parse a String into XML.In this case, the encoding is ignored; the string already has to be Unicode. After the parsing, you will still find the encoding from the XML declaration in the Document (if there was one).
-
parse
Convenience method to parse a file into XML.- Throws:
IOException
-