Package de.pdark.decentxml
Class XMLParser
- java.lang.Object
-
- de.pdark.decentxml.XMLParser
-
public class XMLParser extends java.lang.ObjectThe class uses theXMLTokenizerto parse anXMLSourceinto aDocument.- See Also:
XMLSource,XMLTokenizer,Document
-
-
Field Summary
Fields Modifier and Type Field Description private CharValidatorcharValidatorThe character validator to useprivate EntityResolverentityResolverThe entity resolver to use to expand entities in the inputprivate booleanexpandEntitiesShould entities be expanded? Use this to temporarily disable entity expansion even if a resolver is registeredprivate booleantreatEntitiesAsTextShould the parser return entity nodes or treat them as text? Default is true.
-
Constructor Summary
Constructors Constructor Description XMLParser()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected 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, java.util.Set<java.lang.String> recursionTrap)protected Tokenexpect(XMLTokenizer tokenizer, Token startToken, XMLTokenizer.Type[] expected, java.lang.String errorMessage)Fetch the next token and make sure it's one ofexpected.protected Tokenexpect(XMLTokenizer tokenizer, Token startToken, XMLTokenizer.Type expected, java.lang.String errorMessage)Fetch the next token and make sure it'sexpected.CharValidatorgetCharValidator()EntityResolvergetEntityResolver()booleanisExpandEntities()booleanisTreatEntitiesAsText()protected booleanisValidName(XMLTokenizer tokenizer, java.lang.String name)Documentparse(XMLSource source)Parse an XML source into a Documentstatic Documentparse(java.io.File file)Convenience method to parse a file into XML.static Documentparse(java.lang.String xml)Convenience 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, java.util.Set<java.lang.String> recursionTrap)protected TokenparsePublicLiteral(XMLTokenizer tokenizer, Token startToken, DocType docType)protected TokenparseSystemLiteral(XMLTokenizer tokenizer, Token startToken, DocType docType)XMLParsersetCharValidator(CharValidator charValidator)XMLParsersetEntityResolver(EntityResolver entityResolver)XMLParsersetExpandEntities(boolean expandEntities)XMLParsersetTreatEntitiesAsText(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 java.lang.StringstripQuotes(Token token)protected NodetoNode(Token token)This turns a token into a node.
-
-
-
Field Detail
-
entityResolver
private EntityResolver entityResolver
The entity resolver to use to expand entities in the input
-
expandEntities
private boolean expandEntities
Should entities be expanded? Use this to temporarily disable entity expansion even if a resolver is registered
-
treatEntitiesAsText
private boolean treatEntitiesAsText
Should the parser return entity nodes or treat them as text? Default is true.
-
charValidator
private CharValidator charValidator
The character validator to use
-
-
Method Detail
-
setEntityResolver
public XMLParser setEntityResolver(EntityResolver entityResolver)
-
getEntityResolver
public EntityResolver getEntityResolver()
-
setExpandEntities
public XMLParser setExpandEntities(boolean expandEntities)
-
isExpandEntities
public boolean isExpandEntities()
-
setTreatEntitiesAsText
public XMLParser setTreatEntitiesAsText(boolean treatEntitiesAsText)
-
isTreatEntitiesAsText
public boolean isTreatEntitiesAsText()
-
getCharValidator
public CharValidator getCharValidator()
-
setCharValidator
public XMLParser setCharValidator(CharValidator charValidator)
-
parseDocType
protected DocType parseDocType(XMLTokenizer tokenizer)
-
createDTDTokenizer
protected XMLTokenizer createDTDTokenizer(XMLSource source, int startOffset)
-
skipOptionalWhitespace
protected Token skipOptionalWhitespace(XMLTokenizer tokenizer, Token startToken, DocType docType)
If the next token is whitespace, skip it.- Parameters:
tokenizer-startToken- This might be whitespacedocType-- Returns:
- The current or the next token.
-
parseDocTypeSubSet
protected Token parseDocTypeSubSet(XMLTokenizer tokenizer, Token startToken, DocType docType)
-
parseDocTypeNotation
protected void parseDocTypeNotation(XMLTokenizer tokenizer, Token startToken, DocType docType)
-
parseDocTypeEntity
protected void parseDocTypeEntity(XMLTokenizer tokenizer, Token startToken, DocType docType)
-
stripQuotes
protected java.lang.String stripQuotes(Token token)
-
parseDocTypeAttList
protected void parseDocTypeAttList(XMLTokenizer tokenizer, Token startToken, DocType docType)
-
isValidName
protected boolean isValidName(XMLTokenizer tokenizer, java.lang.String name)
-
parseAttListNameTokens
protected Token parseAttListNameTokens(XMLTokenizer tokenizer, Token token, DocTypeAttributeList attList)
-
parseAttListTypeGroup
protected Token parseAttListTypeGroup(XMLTokenizer tokenizer, Token token, DocTypeAttributeList attList)
-
skipWhiteSpaceAndComments
protected Token skipWhiteSpaceAndComments(XMLTokenizer tokenizer, Token token, DocTypeNode n)
-
parseDocTypeSubElement
protected void parseDocTypeSubElement(XMLTokenizer tokenizer, Token startToken, DocType docType)
-
parsePublicLiteral
protected Token parsePublicLiteral(XMLTokenizer tokenizer, Token startToken, DocType docType)
-
parseSystemLiteral
protected Token parseSystemLiteral(XMLTokenizer tokenizer, Token startToken, DocType docType)
-
expect
protected Token expect(XMLTokenizer tokenizer, Token startToken, XMLTokenizer.Type[] expected, java.lang.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, java.lang.String errorMessage)
Fetch the next token and make sure it'sexpected. If not, create anXMLParseExceptionusing theerrorMessage
-
createTokenizer
protected XMLTokenizer createTokenizer(XMLSource source)
- Parameters:
source-- Returns:
-
parseElement
protected void parseElement(XMLTokenizer tokenizer, Element parent)
Parse all tokens up to the end tag recursively into an element.
-
parseElementContent
protected Token parseElementContent(XMLTokenizer tokenizer, Element parent, java.util.Set<java.lang.String> recursionTrap)
- Parameters:
tokenizer-parent-
-
expandEntity
protected void expandEntity(Element parent, XMLTokenizer parentTokenizer, Token entityToken, java.util.Set<java.lang.String> recursionTrap)
-
toNode
protected Node toNode(Token token)
This turns a token into a node.Override this to implement custom node types.
-
parse
public static Document parse(java.lang.String xml)
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
public static Document parse(java.io.File file) throws java.io.IOException
Convenience method to parse a file into XML.- Throws:
java.io.IOException
-
-