Package de.pdark.decentxml
Class XMLParser
- java.lang.Object
-
- de.pdark.decentxml.XMLParser
-
public class XMLParser extends Object
The class uses theXMLTokenizer
to parse anXMLSource
into aDocument
.- Author:
- digulla
- See Also:
XMLSource
,XMLTokenizer
,Document
-
-
Constructor Summary
Constructors Constructor Description XMLParser()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected 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
.CharValidator
getCharValidator()
EntityResolver
getEntityResolver()
boolean
isExpandEntities()
boolean
isTreatEntitiesAsText()
protected boolean
isValidName(XMLTokenizer tokenizer, String name)
Document
parse(XMLSource source)
Parse an XML source into a Documentstatic Document
parse(File file)
Convenience method to parse a file into XML.static Document
parse(String xml)
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)
XMLParser
setCharValidator(CharValidator charValidator)
XMLParser
setEntityResolver(EntityResolver entityResolver)
XMLParser
setExpandEntities(boolean expandEntities)
XMLParser
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
toNode(Token token)
This turns a token into a node.
-
-
-
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)
-
parseDocTypeAttList
protected void parseDocTypeAttList(XMLTokenizer tokenizer, Token startToken, DocType docType)
-
isValidName
protected boolean isValidName(XMLTokenizer tokenizer, 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, 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
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, Set<String> recursionTrap)
- Parameters:
tokenizer
-parent
-
-
expandEntity
protected void expandEntity(Element parent, XMLTokenizer parentTokenizer, Token entityToken, Set<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(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(File file) throws IOException
Convenience method to parse a file into XML.- Throws:
IOException
-
-