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 CharValidatorThe character validator to useprivate EntityResolverThe entity resolver to use to expand entities in the inputprivate booleanShould entities be expanded? Use this to temporarily disable entity expansion even if a resolver is registeredprivate booleanShould the parser return entity nodes or treat them as text? Default is true. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected NodecreateAttribute(Token token) protected NodecreateCData(Token token) protected NodecreateComment(Token token) protected NodecreateDocTypeText(Token token) protected XMLTokenizercreateDTDTokenizer(XMLSource source, int startOffset) protected NodecreateElement(Token token) protected NodecreateElementWhitespace(Token token) protected NodecreateEntity(Token token) protected NodecreateProcessingInstruction(Token token) protected NodecreateText(Token token) protected XMLTokenizercreateTokenizer(XMLSource source) protected voidexpandEntity(Element parent, XMLTokenizer parentTokenizer, Token entityToken, Set<String> recursionTrap) protected Tokenexpect(XMLTokenizer tokenizer, Token startToken, XMLTokenizer.Type[] expected, String errorMessage) Fetch the next token and make sure it's one ofexpected.protected Tokenexpect(XMLTokenizer tokenizer, Token startToken, XMLTokenizer.Type expected, String errorMessage) Fetch the next token and make sure it'sexpected.booleanbooleanprotected booleanisValidName(XMLTokenizer tokenizer, String name) Parse an XML source into a Documentstatic DocumentConvenience method to parse a file into XML.static DocumentConvenience method to parse a String into XML.protected TokenparseAttListNameTokens(XMLTokenizer tokenizer, Token token, DocTypeAttributeList attList) protected TokenparseAttListTypeGroup(XMLTokenizer tokenizer, Token token, DocTypeAttributeList attList) protected DocTypeparseDocType(XMLTokenizer tokenizer) protected voidparseDocTypeAttList(XMLTokenizer tokenizer, Token startToken, DocType docType) protected voidparseDocTypeEntity(XMLTokenizer tokenizer, Token startToken, DocType docType) protected voidparseDocTypeNotation(XMLTokenizer tokenizer, Token startToken, DocType docType) protected voidparseDocTypeSubElement(XMLTokenizer tokenizer, Token startToken, DocType docType) protected TokenparseDocTypeSubSet(XMLTokenizer tokenizer, Token startToken, DocType docType) protected voidparseElement(XMLTokenizer tokenizer, Element parent) Parse all tokens up to the end tag recursively into an element.protected TokenparseElementContent(XMLTokenizer tokenizer, Element parent, Set<String> recursionTrap) protected TokenparsePublicLiteral(XMLTokenizer tokenizer, Token startToken, DocType docType) protected TokenparseSystemLiteral(XMLTokenizer tokenizer, Token startToken, DocType docType) setCharValidator(CharValidator charValidator) setEntityResolver(EntityResolver entityResolver) setExpandEntities(boolean expandEntities) setTreatEntitiesAsText(boolean treatEntitiesAsText) protected TokenskipOptionalWhitespace(XMLTokenizer tokenizer, Token startToken, DocType docType) If the next token is whitespace, skip it.protected TokenskipWhiteSpaceAndComments(XMLTokenizer tokenizer, Token token, DocTypeNode n) protected StringstripQuotes(Token token) protected NodeThis 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 anXMLParseExceptionusing 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 anXMLParseExceptionusing 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
-