org.apache.xerces.parsers

Class AbstractDOMParser

public class AbstractDOMParser extends AbstractXMLDocumentParser

This is the base class of all DOM parsers. It implements the XNI callback methods to create the DOM tree. After a successful parse of an XML document, the DOM Document object can be queried using the getDocument method. The actual pipeline is defined in parser configuration.

Version: $Id: AbstractDOMParser.java,v 1.116 2005/05/09 19:46:17 ankitp Exp $

Author: Arnaud Le Hors, IBM Andy Clark, IBM Elena Litani, IBM

Field Summary
static RuntimeExceptionabort
If the user stops the process, this exception will be thrown.
protected static StringCORE_DOCUMENT_CLASS_NAME
protected static StringCREATE_CDATA_NODES_FEATURE
Feature id: create cdata nodes.
protected static StringCREATE_ENTITY_REF_NODES
Feature id: create entity ref nodes.
protected static StringCURRENT_ELEMENT_NODE
protected static StringDEFAULT_DOCUMENT_CLASS_NAME
Default document class name.
protected static StringDEFER_NODE_EXPANSION
Feature id: defer node expansion.
protected static StringDOCUMENT_CLASS_NAME
Property id: document class name.
protected StackfBaseURIStack
Base uri stack
protected booleanfCreateCDATANodes
Create cdata nodes.
protected booleanfCreateEntityRefNodes
Create entity reference nodes.
protected CDATASectionfCurrentCDATASection
protected intfCurrentCDATASectionIndex
protected EntityImplfCurrentEntityDecl
protected NodefCurrentNode
Current node.
protected intfCurrentNodeIndex
protected booleanfDeferNodeExpansion
protected DeferredDocumentImplfDeferredDocumentImpl
protected intfDeferredEntityDecl
protected DocumentfDocument
The document.
protected StringfDocumentClassName
The document class name to use.
protected CoreDocumentImplfDocumentImpl
The default Xerces document implementation, if used.
protected intfDocumentIndex
protected DocumentTypefDocumentType
The document type node.
protected intfDocumentTypeIndex
protected LSParserFilterfDOMFilter
protected DOMErrorHandlerWrapperfErrorHandler
DOM L3 error handler
protected booleanfFilterReject
LSParserFilter: specifies that element with given QNAME and all its children must be rejected
protected booleanfFirstChunk
True if saw the first chunk of characters
protected booleanfIncludeComments
Include Comments.
protected booleanfIncludeIgnorableWhitespace
Include ignorable whitespace.
protected booleanfInCDATASection
True if inside CDATA section.
protected booleanfInDTD
True if inside DTD.
protected booleanfInDTDExternalSubset
True if inside DTD external subset.
protected booleanfInEntityRef
LSParserFilter: true if inside entity reference
protected StringBufferfInternalSubset
Internal subset buffer.
protected booleanfNamespaceAware
protected QNamefRejectedElement
LSParserFilter: the QNAME of rejected element
protected QNamefRoot
Root element name
protected StackfSkippedElemStack
LSParserFilter: store qnames of skipped elements
protected booleanfStorePSVI
Whether to store PSVI information in DOM tree.
protected StringBufferfStringBuffer
Character buffer
protected static StringINCLUDE_COMMENTS_FEATURE
Feature id: include comments.
protected static StringINCLUDE_IGNORABLE_WHITESPACE
Feature id: include ignorable whitespace.
protected static StringNAMESPACES
Feature id: namespace.
protected static StringPSVI_DOCUMENT_CLASS_NAME
Constructor Summary
protected AbstractDOMParser(XMLParserConfiguration config)
Default constructor.
Method Summary
voidabort()
voidattributeDecl(String elementName, String attributeName, String type, String[] enumeration, String defaultType, XMLString defaultValue, XMLString nonNormalizedDefaultValue, Augmentations augs)
An attribute declaration.
voidcharacters(XMLString text, Augmentations augs)
Character content.
voidcomment(XMLString text, Augmentations augs)
A comment.
protected AttrcreateAttrNode(QName attrQName)
protected ElementcreateElementNode(QName element)
voiddoctypeDecl(String rootElement, String publicId, String systemId, Augmentations augs)
Notifies of the presence of the DOCTYPE line in the document.
voidelementDecl(String name, String contentModel, Augmentations augs)
An element declaration.
voidemptyElement(QName element, XMLAttributes attributes, Augmentations augs)
An empty element.
voidendAttlist(Augmentations augs)
The end of an attribute list.
voidendCDATA(Augmentations augs)
The end of a CDATA section.
voidendConditional(Augmentations augs)
The end of a conditional section.
voidendDocument(Augmentations augs)
The end of the document.
voidendDTD(Augmentations augs)
The end of the DTD.
voidendElement(QName element, Augmentations augs)
The end of an element.
voidendExternalSubset(Augmentations augs)
The end of the DTD external subset.
voidendGeneralEntity(String name, Augmentations augs)
This method notifies the end of a general entity.
voidendParameterEntity(String name, Augmentations augs)
This method notifies the end of a parameter entity.
voidexternalEntityDecl(String name, XMLResourceIdentifier identifier, Augmentations augs)
An external entity declaration.
DocumentgetDocument()
Returns the DOM document object.
protected StringgetDocumentClassName()
This method retreives the name of current document class.
protected voidhandleBaseURI(Node node)
Record baseURI information for the Element (by adding xml:base attribute) or for the ProcessingInstruction (by setting a baseURI field) Non deferred DOM.
protected voidhandleBaseURI(int node)
Record baseURI information for the Element (by adding xml:base attribute) or for the ProcessingInstruction (by setting a baseURI field) Deferred DOM.
voidignorableWhitespace(XMLString text, Augmentations augs)
Ignorable whitespace.
voidignoredCharacters(XMLString text, Augmentations augs)
Characters within an IGNORE conditional section.
voidinternalEntityDecl(String name, XMLString text, XMLString nonNormalizedText, Augmentations augs)
An internal entity declaration.
voidnotationDecl(String name, XMLResourceIdentifier identifier, Augmentations augs)
A notation declaration
voidprocessingInstruction(String target, XMLString data, Augmentations augs)
A processing instruction.
voidreset()
Resets the parser state.
protected voidsetCharacterData(boolean sawChars)
protected voidsetDocumentClassName(String documentClassName)
This method allows the programmer to decide which document factory to use when constructing the DOM tree.
voidsetLocale(Locale locale)
Set the locale to use for messages.
voidstartAttlist(String elementName, Augmentations augs)
The start of an attribute list.
voidstartCDATA(Augmentations augs)
The start of a CDATA section.
voidstartConditional(short type, Augmentations augs)
The start of a conditional section.
voidstartDocument(XMLLocator locator, String encoding, NamespaceContext namespaceContext, Augmentations augs)
The start of the document.
voidstartDTD(XMLLocator locator, Augmentations augs)
The start of the DTD.
voidstartElement(QName element, XMLAttributes attributes, Augmentations augs)
The start of an element.
voidstartExternalSubset(XMLResourceIdentifier identifier, Augmentations augs)
The start of the DTD external subset.
voidstartGeneralEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs)
This method notifies the start of a general entity.
voidstartParameterEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs)
This method notifies of the start of a parameter entity.
voidtextDecl(String version, String encoding, Augmentations augs)
Notifies of the presence of a TextDecl line in an entity.
voidunparsedEntityDecl(String name, XMLResourceIdentifier identifier, String notation, Augmentations augs)
An unparsed entity declaration.
voidxmlDecl(String version, String encoding, String standalone, Augmentations augs)
Notifies of the presence of an XMLDecl line in the document.

Field Detail

abort

public static final RuntimeException abort
If the user stops the process, this exception will be thrown.

CORE_DOCUMENT_CLASS_NAME

protected static final String CORE_DOCUMENT_CLASS_NAME

CREATE_CDATA_NODES_FEATURE

protected static final String CREATE_CDATA_NODES_FEATURE
Feature id: create cdata nodes.

CREATE_ENTITY_REF_NODES

protected static final String CREATE_ENTITY_REF_NODES
Feature id: create entity ref nodes.

CURRENT_ELEMENT_NODE

protected static final String CURRENT_ELEMENT_NODE

DEFAULT_DOCUMENT_CLASS_NAME

protected static final String DEFAULT_DOCUMENT_CLASS_NAME
Default document class name.

DEFER_NODE_EXPANSION

protected static final String DEFER_NODE_EXPANSION
Feature id: defer node expansion.

DOCUMENT_CLASS_NAME

protected static final String DOCUMENT_CLASS_NAME
Property id: document class name.

fBaseURIStack

protected Stack fBaseURIStack
Base uri stack

fCreateCDATANodes

protected boolean fCreateCDATANodes
Create cdata nodes.

fCreateEntityRefNodes

protected boolean fCreateEntityRefNodes
Create entity reference nodes.

fCurrentCDATASection

protected CDATASection fCurrentCDATASection

fCurrentCDATASectionIndex

protected int fCurrentCDATASectionIndex

fCurrentEntityDecl

protected EntityImpl fCurrentEntityDecl

fCurrentNode

protected Node fCurrentNode
Current node.

fCurrentNodeIndex

protected int fCurrentNodeIndex

fDeferNodeExpansion

protected boolean fDeferNodeExpansion

fDeferredDocumentImpl

protected DeferredDocumentImpl fDeferredDocumentImpl

fDeferredEntityDecl

protected int fDeferredEntityDecl

fDocument

protected Document fDocument
The document.

fDocumentClassName

protected String fDocumentClassName
The document class name to use.

fDocumentImpl

protected CoreDocumentImpl fDocumentImpl
The default Xerces document implementation, if used.

fDocumentIndex

protected int fDocumentIndex

fDocumentType

protected DocumentType fDocumentType
The document type node.

fDocumentTypeIndex

protected int fDocumentTypeIndex

fDOMFilter

protected LSParserFilter fDOMFilter

fErrorHandler

protected DOMErrorHandlerWrapper fErrorHandler
DOM L3 error handler

fFilterReject

protected boolean fFilterReject
LSParserFilter: specifies that element with given QNAME and all its children must be rejected

fFirstChunk

protected boolean fFirstChunk
True if saw the first chunk of characters

fIncludeComments

protected boolean fIncludeComments
Include Comments.

fIncludeIgnorableWhitespace

protected boolean fIncludeIgnorableWhitespace
Include ignorable whitespace.

fInCDATASection

protected boolean fInCDATASection
True if inside CDATA section.

fInDTD

protected boolean fInDTD
True if inside DTD.

fInDTDExternalSubset

protected boolean fInDTDExternalSubset
True if inside DTD external subset.

fInEntityRef

protected boolean fInEntityRef
LSParserFilter: true if inside entity reference

fInternalSubset

protected StringBuffer fInternalSubset
Internal subset buffer.

fNamespaceAware

protected boolean fNamespaceAware

fRejectedElement

protected final QName fRejectedElement
LSParserFilter: the QNAME of rejected element

fRoot

protected QName fRoot
Root element name

fSkippedElemStack

protected Stack fSkippedElemStack
LSParserFilter: store qnames of skipped elements

fStorePSVI

protected boolean fStorePSVI
Whether to store PSVI information in DOM tree.

fStringBuffer

protected final StringBuffer fStringBuffer
Character buffer

INCLUDE_COMMENTS_FEATURE

protected static final String INCLUDE_COMMENTS_FEATURE
Feature id: include comments.

INCLUDE_IGNORABLE_WHITESPACE

protected static final String INCLUDE_IGNORABLE_WHITESPACE
Feature id: include ignorable whitespace.

NAMESPACES

protected static final String NAMESPACES
Feature id: namespace.

PSVI_DOCUMENT_CLASS_NAME

protected static final String PSVI_DOCUMENT_CLASS_NAME

Constructor Detail

AbstractDOMParser

protected AbstractDOMParser(XMLParserConfiguration config)
Default constructor.

Method Detail

abort

public void abort()

See Also: org.w3c.dom.ls.LSParser#abort()

attributeDecl

public void attributeDecl(String elementName, String attributeName, String type, String[] enumeration, String defaultType, XMLString defaultValue, XMLString nonNormalizedDefaultValue, Augmentations augs)
An attribute declaration.

Parameters: elementName The name of the element that this attribute is associated with. attributeName The name of the attribute. type The attribute type. This value will be one of the following: "CDATA", "ENTITY", "ENTITIES", "ENUMERATION", "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", or "NOTATION". enumeration If the type has the value "ENUMERATION" or "NOTATION", this array holds the allowed attribute values; otherwise, this array is null. defaultType The attribute default type. This value will be one of the following: "#FIXED", "#IMPLIED", "#REQUIRED", or null. defaultValue The attribute default value, or null if no default value is specified. nonNormalizedDefaultValue The attribute default value with no normalization performed, or null if no default value is specified. augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

characters

public void characters(XMLString text, Augmentations augs)
Character content.

Parameters: text The content. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

comment

public void comment(XMLString text, Augmentations augs)
A comment.

Parameters: text The text in the comment. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by application to signal an error.

createAttrNode

protected Attr createAttrNode(QName attrQName)

createElementNode

protected Element createElementNode(QName element)

doctypeDecl

public void doctypeDecl(String rootElement, String publicId, String systemId, Augmentations augs)
Notifies of the presence of the DOCTYPE line in the document.

Parameters: rootElement The name of the root element. publicId The public identifier if an external DTD or null if the external DTD is specified using SYSTEM. systemId The system identifier if an external DTD, null otherwise. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

elementDecl

public void elementDecl(String name, String contentModel, Augmentations augs)
An element declaration.

Parameters: name The name of the element. contentModel The element content model. augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

emptyElement

public void emptyElement(QName element, XMLAttributes attributes, Augmentations augs)
An empty element.

Parameters: element The name of the element. attributes The element attributes. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

endAttlist

public void endAttlist(Augmentations augs)
The end of an attribute list.

Parameters: augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

endCDATA

public void endCDATA(Augmentations augs)
The end of a CDATA section.

Parameters: augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

endConditional

public void endConditional(Augmentations augs)
The end of a conditional section.

Parameters: augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

endDocument

public void endDocument(Augmentations augs)
The end of the document.

Parameters: augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

endDTD

public void endDTD(Augmentations augs)
The end of the DTD.

Parameters: augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

endElement

public void endElement(QName element, Augmentations augs)
The end of an element.

Parameters: element The name of the element. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

endExternalSubset

public void endExternalSubset(Augmentations augs)
The end of the DTD external subset.

Parameters: augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

endGeneralEntity

public void endGeneralEntity(String name, Augmentations augs)
This method notifies the end of a general entity.

Note: This method is not called for entity references appearing as part of attribute values.

Parameters: name The name of the entity. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

endParameterEntity

public void endParameterEntity(String name, Augmentations augs)
This method notifies the end of a parameter entity. Parameter entity names begin with a '%' character.

Parameters: name The name of the parameter entity. augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

externalEntityDecl

public void externalEntityDecl(String name, XMLResourceIdentifier identifier, Augmentations augs)
An external entity declaration.

Parameters: name The name of the entity. Parameter entity names start with '%', whereas the name of a general entity is just the entity name. identifier An object containing all location information pertinent to this notation. augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

getDocument

public Document getDocument()
Returns the DOM document object.

getDocumentClassName

protected String getDocumentClassName()
This method retreives the name of current document class.

handleBaseURI

protected final void handleBaseURI(Node node)
Record baseURI information for the Element (by adding xml:base attribute) or for the ProcessingInstruction (by setting a baseURI field) Non deferred DOM.

Parameters: node

handleBaseURI

protected final void handleBaseURI(int node)
Record baseURI information for the Element (by adding xml:base attribute) or for the ProcessingInstruction (by setting a baseURI field) Deferred DOM.

Parameters: node

ignorableWhitespace

public void ignorableWhitespace(XMLString text, Augmentations augs)
Ignorable whitespace. For this method to be called, the document source must have some way of determining that the text containing only whitespace characters should be considered ignorable. For example, the validator can determine if a length of whitespace characters in the document are ignorable based on the element content model.

Parameters: text The ignorable whitespace. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

ignoredCharacters

public void ignoredCharacters(XMLString text, Augmentations augs)
Characters within an IGNORE conditional section.

Parameters: text The ignored text. augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

internalEntityDecl

public void internalEntityDecl(String name, XMLString text, XMLString nonNormalizedText, Augmentations augs)
An internal entity declaration.

Parameters: name The name of the entity. Parameter entity names start with '%', whereas the name of a general entity is just the entity name. text The value of the entity. nonNormalizedText The non-normalized value of the entity. This value contains the same sequence of characters that was in the internal entity declaration, without any entity references expanded. augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

notationDecl

public void notationDecl(String name, XMLResourceIdentifier identifier, Augmentations augs)
A notation declaration

Parameters: name The name of the notation. identifier An object containing all location information pertinent to this notation. augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

processingInstruction

public void processingInstruction(String target, XMLString data, Augmentations augs)
A processing instruction. Processing instructions consist of a target name and, optionally, text data. The data is only meaningful to the application.

Typically, a processing instruction's data will contain a series of pseudo-attributes. These pseudo-attributes follow the form of element attributes but are not parsed or presented to the application as anything other than text. The application is responsible for parsing the data.

Parameters: target The target. data The data or null if none specified. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

reset

public void reset()
Resets the parser state.

Throws: SAXException Thrown on initialization error.

setCharacterData

protected void setCharacterData(boolean sawChars)

setDocumentClassName

protected void setDocumentClassName(String documentClassName)
This method allows the programmer to decide which document factory to use when constructing the DOM tree. However, doing so will lose the functionality of the default factory. Also, a document class other than the default will lose the ability to defer node expansion on the DOM tree produced.

Parameters: documentClassName The fully qualified class name of the document factory to use when constructing the DOM tree.

See Also: AbstractDOMParser DEFAULT_DOCUMENT_CLASS_NAME

setLocale

public void setLocale(Locale locale)
Set the locale to use for messages.

Parameters: locale The locale object to use for localization of messages.

startAttlist

public void startAttlist(String elementName, Augmentations augs)
The start of an attribute list.

Parameters: elementName The name of the element that this attribute list is associated with. augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

startCDATA

public void startCDATA(Augmentations augs)
The start of a CDATA section.

Parameters: augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

startConditional

public void startConditional(short type, Augmentations augs)
The start of a conditional section.

Parameters: type The type of the conditional section. This value will either be CONDITIONAL_INCLUDE or CONDITIONAL_IGNORE. augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

See Also: AbstractDOMParser AbstractDOMParser

startDocument

public void startDocument(XMLLocator locator, String encoding, NamespaceContext namespaceContext, Augmentations augs)
The start of the document.

Parameters: locator The system identifier of the entity if the entity is external, null otherwise. encoding The auto-detected IANA encoding name of the entity stream. This value will be null in those situations where the entity encoding is not auto-detected (e.g. internal entities or a document entity that is parsed from a java.io.Reader). namespaceContext The namespace context in effect at the start of this document. This object represents the current context. Implementors of this class are responsible for copying the namespace bindings from the the current context (and its parent contexts) if that information is important. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

startDTD

public void startDTD(XMLLocator locator, Augmentations augs)
The start of the DTD.

Parameters: locator The document locator, or null if the document location cannot be reported during the parsing of the document DTD. However, it is strongly recommended that a locator be supplied that can at least report the base system identifier of the DTD. augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

startElement

public void startElement(QName element, XMLAttributes attributes, Augmentations augs)
The start of an element. If the document specifies the start element by using an empty tag, then the startElement method will immediately be followed by the endElement method, with no intervening methods.

Parameters: element The name of the element. attributes The element attributes. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

startExternalSubset

public void startExternalSubset(XMLResourceIdentifier identifier, Augmentations augs)
The start of the DTD external subset.

Parameters: augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

startGeneralEntity

public void startGeneralEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs)
This method notifies the start of a general entity.

Note: This method is not called for entity references appearing as part of attribute values.

Parameters: name The name of the general entity. identifier The resource identifier. encoding The auto-detected IANA encoding name of the entity stream. This value will be null in those situations where the entity encoding is not auto-detected (e.g. internal entities or a document entity that is parsed from a java.io.Reader). augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

startParameterEntity

public void startParameterEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs)
This method notifies of the start of a parameter entity. The parameter entity name start with a '%' character.

Parameters: name The name of the parameter entity. identifier The resource identifier. encoding The auto-detected IANA encoding name of the entity stream. This value will be null in those situations where the entity encoding is not auto-detected (e.g. internal parameter entities). augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

textDecl

public void textDecl(String version, String encoding, Augmentations augs)
Notifies of the presence of a TextDecl line in an entity. If present, this method will be called immediately following the startEntity call.

Note: This method will never be called for the document entity; it is only called for external general entities referenced in document content.

Note: This method is not called for entity references appearing as part of attribute values.

Parameters: version The XML version, or null if not specified. encoding The IANA encoding name of the entity. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

unparsedEntityDecl

public void unparsedEntityDecl(String name, XMLResourceIdentifier identifier, String notation, Augmentations augs)
An unparsed entity declaration.

Parameters: name The name of the entity. identifier An object containing all location information pertinent to this entity. notation The name of the notation. augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

xmlDecl

public void xmlDecl(String version, String encoding, String standalone, Augmentations augs)
Notifies of the presence of an XMLDecl line in the document. If present, this method will be called immediately following the startDocument call.

Parameters: version The XML version. encoding The IANA encoding name of the document, or null if not specified. standalone The standalone value, or null if not specified. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

Copyright © 1999-2005 Apache XML Project. All Rights Reserved.