de.pdark.decentxml
Class XMLParser

java.lang.Object
  extended by de.pdark.decentxml.XMLParser

public class XMLParser
extends java.lang.Object

The class uses the XMLTokenizer to parse an XMLSource into a Document.

Author:
digulla
See Also:
XMLSource, XMLTokenizer, Document

Constructor Summary
XMLParser()
           
 
Method Summary
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, java.util.Set<java.lang.String> recursionTrap)
           
protected  Token expect(XMLTokenizer tokenizer, Token startToken, XMLTokenizer.Type[] expected, java.lang.String errorMessage)
          Fetch the next token and make sure it's one of expected.
protected  Token expect(XMLTokenizer tokenizer, Token startToken, XMLTokenizer.Type expected, java.lang.String errorMessage)
          Fetch the next token and make sure it's expected.
 CharValidator getCharValidator()
           
 EntityResolver getEntityResolver()
           
 boolean isExpandEntities()
           
 boolean isTreatEntitiesAsText()
           
protected  boolean isValidName(XMLTokenizer tokenizer, java.lang.String name)
           
static Document parse(java.io.File file)
          Convenience method to parse a file into XML.
static Document parse(java.lang.String xml)
          Convenience method to parse a String into XML.
 Document parse(XMLSource source)
          Parse an XML source into a Document
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, java.util.Set<java.lang.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  java.lang.String stripQuotes(Token token)
           
protected  Node toNode(Token token)
          This turns a token into a node.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XMLParser

public XMLParser()
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)

parse

public Document parse(XMLSource source)
Parse an XML source into a Document


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 whitespace
docType -
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 of expected. If not, create an XMLParseException using the errorMessage


expect

protected Token expect(XMLTokenizer tokenizer,
                       Token startToken,
                       XMLTokenizer.Type expected,
                       java.lang.String errorMessage)
Fetch the next token and make sure it's expected. If not, create an XMLParseException using the errorMessage


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.


createDocTypeText

protected Node createDocTypeText(Token token)

createProcessingInstruction

protected Node createProcessingInstruction(Token token)

createElementWhitespace

protected Node createElementWhitespace(Token token)

createComment

protected Node createComment(Token token)

createCData

protected Node createCData(Token token)

createElement

protected Node createElement(Token token)

createAttribute

protected Node createAttribute(Token token)

createEntity

protected Node createEntity(Token token)

createText

protected Node createText(Token token)

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


Copyright © 2008-2011. All Rights Reserved.