public class

AbstractDOMParser

extends AbstractXMLDocumentParser
java.lang.Object
   ↳ org.apache.xerces.parsers.XMLParser
     ↳ org.apache.xerces.parsers.AbstractXMLDocumentParser
       ↳ org.apache.xerces.parsers.AbstractDOMParser
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

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.

Summary

Constants
String CORE_DOCUMENT_CLASS_NAME
String CREATE_CDATA_NODES_FEATURE Feature id: create cdata nodes.
String CREATE_ENTITY_REF_NODES Feature id: create entity ref nodes.
String CURRENT_ELEMENT_NODE
String DEFAULT_DOCUMENT_CLASS_NAME Default document class name.
String DEFER_NODE_EXPANSION Feature id: defer node expansion.
String DOCUMENT_CLASS_NAME Property id: document class name.
String INCLUDE_COMMENTS_FEATURE Feature id: include comments.
String INCLUDE_IGNORABLE_WHITESPACE Feature id: include ignorable whitespace.
String NAMESPACES Feature id: namespace.
String PSVI_DOCUMENT_CLASS_NAME
[Expand]
Inherited Constants
From class org.apache.xerces.parsers.XMLParser
From interface org.apache.xerces.xni.XMLDTDContentModelHandler
From interface org.apache.xerces.xni.XMLDTDHandler
Fields
public static final RuntimeException abort If the user stops the process, this exception will be thrown.
protected Stack fBaseURIStack Base uri stack
protected boolean fCreateCDATANodes Create cdata nodes.
protected boolean fCreateEntityRefNodes Create entity reference nodes.
protected CDATASection fCurrentCDATASection
protected int fCurrentCDATASectionIndex
protected EntityImpl fCurrentEntityDecl
protected Node fCurrentNode Current node.
protected int fCurrentNodeIndex
protected LSParserFilter fDOMFilter
protected boolean fDeferNodeExpansion
protected DeferredDocumentImpl fDeferredDocumentImpl
protected int fDeferredEntityDecl
protected Document fDocument The document.
protected String fDocumentClassName The document class name to use.
protected CoreDocumentImpl fDocumentImpl The default Xerces document implementation, if used.
protected int fDocumentIndex
protected DocumentType fDocumentType The document type node.
protected int fDocumentTypeIndex
protected DOMErrorHandlerWrapper fErrorHandler DOM L3 error handler
protected boolean fFilterReject LSParserFilter: specifies that element with given QNAME and all its children must be rejected
protected boolean fFirstChunk True if saw the first chunk of characters
protected boolean fInCDATASection True if inside CDATA section.
protected boolean fInDTD True if inside DTD.
protected boolean fInDTDExternalSubset True if inside DTD external subset.
protected boolean fInEntityRef LSParserFilter: true if inside entity reference
protected boolean fIncludeComments Include Comments.
protected boolean fIncludeIgnorableWhitespace Include ignorable whitespace.
protected StringBuffer fInternalSubset Internal subset buffer.
protected boolean fNamespaceAware
protected final QName fRejectedElement LSParserFilter: the QNAME of rejected element
protected QName fRoot Root element name
protected Stack fSkippedElemStack LSParserFilter: store qnames of skipped elements
protected boolean fStorePSVI Whether to store PSVI information in DOM tree.
protected final StringBuffer fStringBuffer Character buffer
[Expand]
Inherited Fields
From class org.apache.xerces.parsers.AbstractXMLDocumentParser
From class org.apache.xerces.parsers.XMLParser
Protected Constructors
AbstractDOMParser(XMLParserConfiguration config)
Default constructor.
Public Methods
void abort()
void attributeDecl(String elementName, String attributeName, String type, String[] enumeration, String defaultType, XMLString defaultValue, XMLString nonNormalizedDefaultValue, Augmentations augs)
An attribute declaration.
void characters(XMLString text, Augmentations augs)
Character content.
void comment(XMLString text, Augmentations augs)
A comment.
void doctypeDecl(String rootElement, String publicId, String systemId, Augmentations augs)
Notifies of the presence of the DOCTYPE line in the document.
final void dropDocumentReferences()
Drops all references to the last DOM which was built by this parser.
void elementDecl(String name, String contentModel, Augmentations augs)
An element declaration.
void emptyElement(QName element, XMLAttributes attributes, Augmentations augs)
An empty element.
void endAttlist(Augmentations augs)
The end of an attribute list.
void endCDATA(Augmentations augs)
The end of a CDATA section.
void endConditional(Augmentations augs)
The end of a conditional section.
void endDTD(Augmentations augs)
The end of the DTD.
void endDocument(Augmentations augs)
The end of the document.
void endElement(QName element, Augmentations augs)
The end of an element.
void endExternalSubset(Augmentations augs)
The end of the DTD external subset.
void endGeneralEntity(String name, Augmentations augs)
This method notifies the end of a general entity.
void endParameterEntity(String name, Augmentations augs)
This method notifies the end of a parameter entity.
void externalEntityDecl(String name, XMLResourceIdentifier identifier, Augmentations augs)
An external entity declaration.
Document getDocument()
Returns the DOM document object.
void ignorableWhitespace(XMLString text, Augmentations augs)
Ignorable whitespace.
void ignoredCharacters(XMLString text, Augmentations augs)
Characters within an IGNORE conditional section.
void internalEntityDecl(String name, XMLString text, XMLString nonNormalizedText, Augmentations augs)
An internal entity declaration.
void notationDecl(String name, XMLResourceIdentifier identifier, Augmentations augs)
A notation declaration
void processingInstruction(String target, XMLString data, Augmentations augs)
A processing instruction.
void reset()
Resets the parser state.
void setLocale(Locale locale)
Set the locale to use for messages.
void startAttlist(String elementName, Augmentations augs)
The start of an attribute list.
void startCDATA(Augmentations augs)
The start of a CDATA section.
void startConditional(short type, Augmentations augs)
The start of a conditional section.
void startDTD(XMLLocator locator, Augmentations augs)
The start of the DTD.
void startDocument(XMLLocator locator, String encoding, NamespaceContext namespaceContext, Augmentations augs)
The start of the document.
void startElement(QName element, XMLAttributes attributes, Augmentations augs)
The start of an element.
void startExternalSubset(XMLResourceIdentifier identifier, Augmentations augs)
The start of the DTD external subset.
void startGeneralEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs)
This method notifies the start of a general entity.
void startParameterEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs)
This method notifies of the start of a parameter entity.
void textDecl(String version, String encoding, Augmentations augs)
Notifies of the presence of a TextDecl line in an entity.
void unparsedEntityDecl(String name, XMLResourceIdentifier identifier, String notation, Augmentations augs)
An unparsed entity declaration.
void xmlDecl(String version, String encoding, String standalone, Augmentations augs)
Notifies of the presence of an XMLDecl line in the document.
Protected Methods
Attr createAttrNode(QName attrQName)
Element createElementNode(QName element)
String getDocumentClassName()
This method retreives the name of current document class.
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.
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.
void setCharacterData(boolean sawChars)
void setDocumentClassName(String documentClassName)
This method allows the programmer to decide which document factory to use when constructing the DOM tree.
[Expand]
Inherited Methods
From class org.apache.xerces.parsers.AbstractXMLDocumentParser
From class org.apache.xerces.parsers.XMLParser
From class java.lang.Object
From interface org.apache.xerces.xni.XMLDTDContentModelHandler
From interface org.apache.xerces.xni.XMLDTDHandler
From interface org.apache.xerces.xni.XMLDocumentHandler

Constants

protected static final String CORE_DOCUMENT_CLASS_NAME

Constant Value: "org.apache.xerces.dom.CoreDocumentImpl"

protected static final String CREATE_CDATA_NODES_FEATURE

Feature id: create cdata nodes.

Constant Value: "http://apache.org/xml/features/create-cdata-nodes"

protected static final String CREATE_ENTITY_REF_NODES

Feature id: create entity ref nodes.

Constant Value: "http://apache.org/xml/features/dom/create-entity-ref-nodes"

protected static final String CURRENT_ELEMENT_NODE

Constant Value: "http://apache.org/xml/properties/dom/current-element-node"

protected static final String DEFAULT_DOCUMENT_CLASS_NAME

Default document class name.

Constant Value: "org.apache.xerces.dom.DocumentImpl"

protected static final String DEFER_NODE_EXPANSION

Feature id: defer node expansion.

Constant Value: "http://apache.org/xml/features/dom/defer-node-expansion"

protected static final String DOCUMENT_CLASS_NAME

Property id: document class name.

Constant Value: "http://apache.org/xml/properties/dom/document-class-name"

protected static final String INCLUDE_COMMENTS_FEATURE

Feature id: include comments.

Constant Value: "http://apache.org/xml/features/include-comments"

protected static final String INCLUDE_IGNORABLE_WHITESPACE

Feature id: include ignorable whitespace.

Constant Value: "http://apache.org/xml/features/dom/include-ignorable-whitespace"

protected static final String NAMESPACES

Feature id: namespace.

Constant Value: "http://xml.org/sax/features/namespaces"

protected static final String PSVI_DOCUMENT_CLASS_NAME

Constant Value: "org.apache.xerces.dom.PSVIDocumentImpl"

Fields

public static final RuntimeException abort

If the user stops the process, this exception will be thrown.

protected Stack fBaseURIStack

Base uri stack

protected boolean fCreateCDATANodes

Create cdata nodes.

protected boolean fCreateEntityRefNodes

Create entity reference nodes.

protected CDATASection fCurrentCDATASection

protected int fCurrentCDATASectionIndex

protected EntityImpl fCurrentEntityDecl

protected Node fCurrentNode

Current node.

protected int fCurrentNodeIndex

protected LSParserFilter fDOMFilter

protected boolean fDeferNodeExpansion

protected DeferredDocumentImpl fDeferredDocumentImpl

protected int fDeferredEntityDecl

protected Document fDocument

The document.

protected String fDocumentClassName

The document class name to use.

protected CoreDocumentImpl fDocumentImpl

The default Xerces document implementation, if used.

protected int fDocumentIndex

protected DocumentType fDocumentType

The document type node.

protected int fDocumentTypeIndex

protected DOMErrorHandlerWrapper fErrorHandler

DOM L3 error handler

protected boolean fFilterReject

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

protected boolean fFirstChunk

True if saw the first chunk of characters

protected boolean fInCDATASection

True if inside CDATA section.

protected boolean fInDTD

True if inside DTD.

protected boolean fInDTDExternalSubset

True if inside DTD external subset.

protected boolean fInEntityRef

LSParserFilter: true if inside entity reference

protected boolean fIncludeComments

Include Comments.

protected boolean fIncludeIgnorableWhitespace

Include ignorable whitespace.

protected StringBuffer fInternalSubset

Internal subset buffer.

protected boolean fNamespaceAware

protected final QName fRejectedElement

LSParserFilter: the QNAME of rejected element

protected QName fRoot

Root element name

protected Stack fSkippedElemStack

LSParserFilter: store qnames of skipped elements

protected boolean fStorePSVI

Whether to store PSVI information in DOM tree.

protected final StringBuffer fStringBuffer

Character buffer

Protected Constructors

protected AbstractDOMParser (XMLParserConfiguration config)

Default constructor.

Public Methods

public void abort ()

See Also

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.

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.

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.

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.

public final void dropDocumentReferences ()

Drops all references to the last DOM which was built by this parser.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

public Document getDocument ()

Returns the DOM document object.

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.

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.

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.

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.

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.

public void reset ()

Resets the parser state.

Throws
SAXException Thrown on initialization error.
XNIException

public void setLocale (Locale locale)

Set the locale to use for messages.

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

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.

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.

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.

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.

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.

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.

public void startExternalSubset (XMLResourceIdentifier identifier, Augmentations augs)

The start of the DTD external subset.

Parameters
identifier The resource identifier.
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

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.

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.

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.

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.

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.

Protected Methods

protected Attr createAttrNode (QName attrQName)

protected Element createElementNode (QName element)

protected String getDocumentClassName ()

This method retreives the name of current document class.

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.

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.

protected void setCharacterData (boolean sawChars)

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.