org.apache.xerces.parsers
Class AbstractDOMParser

java.lang.Object
  |
  +--org.apache.xerces.parsers.XMLParser
        |
        +--org.apache.xerces.parsers.AbstractXMLDocumentParser
              |
              +--org.apache.xerces.parsers.AbstractDOMParser
Direct Known Subclasses:
DOMParser

public abstract 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.1.2.13 2001/07/30 08:39:33 andyc Exp $
Author:
Stubs generated by DesignDoc on Mon Sep 11 11:10:57 PDT 2000, Arnaud Le Hors, IBM, Andy Clark, IBM

Field Summary
protected static java.lang.String CREATE_ENTITY_REF_NODES
          Feature id: create entity ref nodes.
protected  boolean fCreateEntityRefNodes
          Create entity reference nodes.
protected  org.w3c.dom.Node fCurrentNode
          Current node.
protected  org.w3c.dom.Document fDocument
          The document.
protected  DocumentImpl fDocumentImpl
          The default Xerces document implementation, if used.
protected  boolean fInCDATASection
          True if inside CDATA section.
protected  boolean fIncludeIgnorableWhitespace
          Include ignorable whitespace.
protected  boolean fInDocument
          True if inside document.
protected static java.lang.String INCLUDE_IGNORABLE_WHITESPACE
          Feature id: include ignorable whitespace.
 
Fields inherited from class org.apache.xerces.parsers.AbstractXMLDocumentParser
fInDTD
 
Fields inherited from class org.apache.xerces.parsers.XMLParser
ENTITY_RESOLVER, ERROR_HANDLER, fConfiguration
 
Constructor Summary
protected AbstractDOMParser(org.apache.xerces.xni.parser.XMLParserConfiguration config)
          Default constructor.
 
Method Summary
protected  int buildAttrEntityRefs(org.w3c.dom.Text text, org.apache.xerces.xni.XMLAttributes attributes, int attrIndex, int entityCount, int entityIndex, int textOffset)
          Builds entity references in attribute values.
 void characters(org.apache.xerces.xni.XMLString text)
          Character content.
 void comment(org.apache.xerces.xni.XMLString text)
          A comment.
 void doctypeDecl(java.lang.String rootElement, java.lang.String publicId, java.lang.String systemId)
          Notifies of the presence of the DOCTYPE line in the document.
 void endCDATA()
          The end of a CDATA section.
 void endDocument()
          The end of the document.
 void endElement(org.apache.xerces.xni.QName element)
          The end of an element.
 void endEntity(java.lang.String name)
          This method notifies the end of an entity.
 void endPrefixMapping(java.lang.String prefix)
          The end of a namespace prefix mapping.
 org.w3c.dom.Document getDocument()
          Returns the DOM document object.
 void ignorableWhitespace(org.apache.xerces.xni.XMLString text)
          Ignorable whitespace.
 void processingInstruction(java.lang.String target, org.apache.xerces.xni.XMLString data)
          A processing instruction.
 void reset()
          Resets the parser state.
 void startCDATA()
          The start of a CDATA section.
 void startDocument(org.apache.xerces.xni.XMLLocator locator, java.lang.String encoding)
          The start of the document.
 void startElement(org.apache.xerces.xni.QName element, org.apache.xerces.xni.XMLAttributes attributes)
          The start of an element.
 void startEntity(java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String baseSystemId, java.lang.String encoding)
          This method notifies of the start of an entity.
 
Methods inherited from class org.apache.xerces.parsers.AbstractXMLDocumentParser
any, attributeDecl, element, elementDecl, empty, emptyElement, endAttlist, endConditional, endContentModel, endDTD, endGroup, externalEntityDecl, internalEntityDecl, notationDecl, occurrence, pcdata, separator, startAttlist, startConditional, startContentModel, startDTD, startGroup, startPrefixMapping, textDecl, unparsedEntityDecl, xmlDecl
 
Methods inherited from class org.apache.xerces.parsers.XMLParser
parse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CREATE_ENTITY_REF_NODES

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

INCLUDE_IGNORABLE_WHITESPACE

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

fCreateEntityRefNodes

protected boolean fCreateEntityRefNodes
Create entity reference nodes.

fIncludeIgnorableWhitespace

protected boolean fIncludeIgnorableWhitespace
Include ignorable whitespace.

fDocument

protected org.w3c.dom.Document fDocument
The document.

fDocumentImpl

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

fCurrentNode

protected org.w3c.dom.Node fCurrentNode
Current node.

fInDocument

protected boolean fInDocument
True if inside document.

fInCDATASection

protected boolean fInCDATASection
True if inside CDATA section.
Constructor Detail

AbstractDOMParser

protected AbstractDOMParser(org.apache.xerces.xni.parser.XMLParserConfiguration config)
Default constructor.
Method Detail

getDocument

public org.w3c.dom.Document getDocument()
Returns the DOM document object.

reset

public void reset()
           throws org.apache.xerces.xni.XNIException
Resets the parser state.
Overrides:
reset in class AbstractXMLDocumentParser
Throws:
SAXException - Thrown on initialization error.

startEntity

public void startEntity(java.lang.String name,
                        java.lang.String publicId,
                        java.lang.String systemId,
                        java.lang.String baseSystemId,
                        java.lang.String encoding)
                 throws org.apache.xerces.xni.XNIException
This method notifies of the start of an entity. The DTD has the pseudo-name of "[dtd]; parameter entity names start with '%'; and general entity names are just the entity name.

Note: Since the DTD is an entity, the handler will be notified of the start of the DTD entity by calling the startEntity method with the entity name "[dtd]" before calling the startDTD method.

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

Overrides:
startEntity in class AbstractXMLDocumentParser
Parameters:
name - The name of the entity.
publicId - The public identifier of the entity if the entity is external, null otherwise.
systemId - 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 parameter entities).
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

comment

public void comment(org.apache.xerces.xni.XMLString text)
             throws org.apache.xerces.xni.XNIException
A comment.
Overrides:
comment in class AbstractXMLDocumentParser
Parameters:
text - The text in the comment.
Throws:
org.apache.xerces.xni.XNIException - Thrown by application to signal an error.

processingInstruction

public void processingInstruction(java.lang.String target,
                                  org.apache.xerces.xni.XMLString data)
                           throws org.apache.xerces.xni.XNIException
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.

Overrides:
processingInstruction in class AbstractXMLDocumentParser
Parameters:
target - The target.
data - The data or null if none specified.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

startDocument

public void startDocument(org.apache.xerces.xni.XMLLocator locator,
                          java.lang.String encoding)
                   throws org.apache.xerces.xni.XNIException
The start of the document.
Overrides:
startDocument in class AbstractXMLDocumentParser
Parameters:
systemId - 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).
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

doctypeDecl

public void doctypeDecl(java.lang.String rootElement,
                        java.lang.String publicId,
                        java.lang.String systemId)
                 throws org.apache.xerces.xni.XNIException
Notifies of the presence of the DOCTYPE line in the document.
Overrides:
doctypeDecl in class AbstractXMLDocumentParser
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.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

startElement

public void startElement(org.apache.xerces.xni.QName element,
                         org.apache.xerces.xni.XMLAttributes attributes)
                  throws org.apache.xerces.xni.XNIException
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.
Overrides:
startElement in class AbstractXMLDocumentParser
Parameters:
element - The name of the element.
attributes - The element attributes.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

characters

public void characters(org.apache.xerces.xni.XMLString text)
                throws org.apache.xerces.xni.XNIException
Character content.
Overrides:
characters in class AbstractXMLDocumentParser
Parameters:
text - The content.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

ignorableWhitespace

public void ignorableWhitespace(org.apache.xerces.xni.XMLString text)
                         throws org.apache.xerces.xni.XNIException
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.
Overrides:
ignorableWhitespace in class AbstractXMLDocumentParser
Parameters:
text - The ignorable whitespace.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

endElement

public void endElement(org.apache.xerces.xni.QName element)
                throws org.apache.xerces.xni.XNIException
The end of an element.
Overrides:
endElement in class AbstractXMLDocumentParser
Parameters:
element - The name of the element.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

endPrefixMapping

public void endPrefixMapping(java.lang.String prefix)
                      throws org.apache.xerces.xni.XNIException
The end of a namespace prefix mapping. This method will only be called when namespace processing is enabled.
Overrides:
endPrefixMapping in class AbstractXMLDocumentParser
Parameters:
prefix - The namespace prefix.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

startCDATA

public void startCDATA()
                throws org.apache.xerces.xni.XNIException
The start of a CDATA section.
Overrides:
startCDATA in class AbstractXMLDocumentParser
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

endCDATA

public void endCDATA()
              throws org.apache.xerces.xni.XNIException
The end of a CDATA section.
Overrides:
endCDATA in class AbstractXMLDocumentParser
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

endDocument

public void endDocument()
                 throws org.apache.xerces.xni.XNIException
The end of the document.
Overrides:
endDocument in class AbstractXMLDocumentParser
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

endEntity

public void endEntity(java.lang.String name)
               throws org.apache.xerces.xni.XNIException
This method notifies the end of an entity. The DTD has the pseudo-name of "[dtd]; parameter entity names start with '%'; and general entity names are just the entity name.

Note: Since the DTD is an entity, the handler will be notified of the end of the DTD entity by calling the endEntity method with the entity name "[dtd]" after calling the endDTD method.

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

Overrides:
endEntity in class AbstractXMLDocumentParser
Parameters:
name - The name of the entity.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

buildAttrEntityRefs

protected int buildAttrEntityRefs(org.w3c.dom.Text text,
                                  org.apache.xerces.xni.XMLAttributes attributes,
                                  int attrIndex,
                                  int entityCount,
                                  int entityIndex,
                                  int textOffset)
Builds entity references in attribute values. This method is recursive because entity references can contain entity references.
Parameters:
text - The text node that needs to be split.
attributes - The attribute information.
attrIndex - The attribute index.
entityCount - The number of entities. This is passed as a convenience so that this method doesn't have to call XMLAttributes#getEntityCount. The caller already has the entity count so it's kind of a waste to make each invocation of this method query it again.
entityIndex - The entity index that this method invocation should start building from.
textOffset - The offset at which the start of this text should be considered. We need this to adjust the offset since the characters in the current text string are indexed from zero.
Returns:
Returns the number of entities built by this method.


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