org.apache.xerces.parsers
Class DOMBuilderImpl

java.lang.Object
  |
  +--org.apache.xerces.parsers.XMLParser
        |
        +--org.apache.xerces.parsers.AbstractXMLDocumentParser
              |
              +--org.apache.xerces.parsers.AbstractDOMParser
                    |
                    +--org.apache.xerces.parsers.DOMBuilderImpl
All Implemented Interfaces:
org.w3c.dom.ls.DOMBuilder, org.apache.xerces.dom3.DOMConfiguration, org.apache.xerces.xni.XMLDocumentHandler, org.apache.xerces.xni.XMLDTDContentModelHandler, org.apache.xerces.xni.XMLDTDHandler
Direct Known Subclasses:
DOMASBuilderImpl

public class DOMBuilderImpl
extends AbstractDOMParser
implements org.w3c.dom.ls.DOMBuilder, org.apache.xerces.dom3.DOMConfiguration

This is Xerces DOM Builder class. It uses the abstract DOM parser with a document scanner, a dtd scanner, and a validator, as well as a grammar pool.

Version:
$Id: DOMBuilderImpl.java,v 1.33 2003/03/25 17:15:11 sandygao Exp $
Author:
Pavani Mukthipudi, Sun Microsystems Inc., Elena Litani, IBM, Rahul Srivastava, Sun Microsystems Inc.

Field Summary
protected static boolean DEBUG
           
protected static java.lang.String DYNAMIC_VALIDATION
          Dynamic validation
protected  boolean fBusy
           
protected  java.lang.String fSchemaType
           
protected static java.lang.String NAMESPACES
          Feature identifier: namespaces.
protected static java.lang.String NORMALIZE_DATA
          Feature identifier: expose schema normalized value
protected static java.lang.String PSVI_AUGMENT
           
protected static java.lang.String SYMBOL_TABLE
           
protected static java.lang.String VALIDATION_FEATURE
          Feature id: validation.
protected static java.lang.String XMLSCHEMA
          XML Schema validation
 
Fields inherited from class org.apache.xerces.parsers.AbstractDOMParser
CORE_DOCUMENT_CLASS_NAME, CREATE_CDATA_NODES_FEATURE, CREATE_ENTITY_REF_NODES, CURRENT_ELEMENT_NODE, DEFAULT_DOCUMENT_CLASS_NAME, DEFER_NODE_EXPANSION, DOCUMENT_CLASS_NAME, fBaseURIStack, fCreateCDATANodes, fCreateEntityRefNodes, fCurrentCDATASection, fCurrentCDATASectionIndex, fCurrentEntityDecl, fCurrentNode, fCurrentNodeIndex, fDeferNodeExpansion, fDeferredDocumentImpl, fDeferredEntityDecl, fDocument, fDocumentClassName, fDocumentImpl, fDocumentIndex, fDocumentType, fDocumentTypeIndex, fDOMFilter, fErrorHandler, fFilterReject, fFirstChunk, fInCDATASection, fIncludeComments, fIncludeIgnorableWhitespace, fInDocument, fInDTD, fInDTDExternalSubset, fInternalSubset, fNamespaceAware, fRejectedElement, fSkippedElemStack, fStorePSVI, fStringBuffer, INCLUDE_COMMENTS_FEATURE, INCLUDE_IGNORABLE_WHITESPACE, PSVI_DOCUMENT_CLASS_NAME
 
Fields inherited from class org.apache.xerces.parsers.AbstractXMLDocumentParser
fDocumentSource, fDTDContentModelSource, fDTDSource
 
Fields inherited from class org.apache.xerces.parsers.XMLParser
ENTITY_RESOLVER, ERROR_HANDLER, fConfiguration
 
Fields inherited from interface org.w3c.dom.ls.DOMBuilder
ACTION_APPEND_AS_CHILDREN, ACTION_INSERT_AFTER, ACTION_INSERT_BEFORE, ACTION_REPLACE, ACTION_REPLACE_CHILDREN
 
Fields inherited from interface org.apache.xerces.xni.XMLDTDHandler
CONDITIONAL_IGNORE, CONDITIONAL_INCLUDE
 
Fields inherited from interface org.apache.xerces.xni.XMLDTDContentModelHandler
OCCURS_ONE_OR_MORE, OCCURS_ZERO_OR_MORE, OCCURS_ZERO_OR_ONE, SEPARATOR_CHOICE, SEPARATOR_SEQUENCE
 
Constructor Summary
DOMBuilderImpl(java.lang.String configuration, java.lang.String schemaType)
          Constructs a DOM Builder using the standard parser configuration.
DOMBuilderImpl(SymbolTable symbolTable)
          Constructs a DOM Builder using the specified symbol table.
DOMBuilderImpl(SymbolTable symbolTable, org.apache.xerces.xni.grammars.XMLGrammarPool grammarPool)
          Constructs a DOM Builder using the specified symbol table and grammar pool.
DOMBuilderImpl(org.apache.xerces.xni.parser.XMLParserConfiguration config)
          Constructs a DOM Builder using the specified parser configuration.
 
Method Summary
 boolean canSetParameter(java.lang.String name, java.lang.Object value)
          Check if setting a parameter to a specific value is supported.
 boolean getAsync()
          True if the DOMBuider is asynchronous, false if it is synchronous.
 boolean getBusy()
          True if the DOMBuider is currently busy loading a document, otherwise false.
 org.apache.xerces.dom3.DOMConfiguration getConfig()
          The configuration used when a document is loaded.
 org.w3c.dom.ls.DOMBuilderFilter getFilter()
          When the application provides a filter, the parser will call out to the filter at the completion of the construction of each Element node.
 java.lang.Object getParameter(java.lang.String name)
          Look up the value of a feature or a property.
 org.w3c.dom.Document parse(org.w3c.dom.ls.DOMInputSource is)
          Parse an XML document from a resource identified by an DOMInputSource.
 org.w3c.dom.Document parseURI(java.lang.String uri)
          Parse an XML document from a location identified by an URI reference.
 org.w3c.dom.Node parseWithContext(org.w3c.dom.ls.DOMInputSource is, org.w3c.dom.Node cnode, short action)
          Parse an XML document or fragment from a resource identified by an DOMInputSource and insert the content into an existing document at the position epcified with the contextNode and action arguments.
 void reset()
          Resets the parser state.
 void setFilter(org.w3c.dom.ls.DOMBuilderFilter filter)
          When the application provides a filter, the parser will call out to the filter at the completion of the construction of each Element node.
 void setParameter(java.lang.String name, java.lang.Object value)
          Set parameters and properties
 
Methods inherited from class org.apache.xerces.parsers.AbstractDOMParser
abort, attributeDecl, characters, comment, createAttrNode, createElementNode, doctypeDecl, elementDecl, emptyElement, endAttlist, endCDATA, endConditional, endDocument, endDTD, endElement, endExternalSubset, endGeneralEntity, endParameterEntity, externalEntityDecl, getDocument, getDocumentClassName, handleBaseURI, handleBaseURI, ignorableWhitespace, ignoredCharacters, internalEntityDecl, notationDecl, processingInstruction, setCharacterData, setDocumentClassName, setLocale, startAttlist, startCDATA, startConditional, startDocument, startDTD, startElement, startExternalSubset, startGeneralEntity, startParameterEntity, textDecl, unparsedEntityDecl, xmlDecl
 
Methods inherited from class org.apache.xerces.parsers.AbstractXMLDocumentParser
any, element, empty, endContentModel, endGroup, getDocumentSource, getDTDContentModelSource, getDTDSource, occurrence, pcdata, separator, setDocumentSource, setDTDContentModelSource, setDTDSource, startContentModel, startGroup
 
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
 
Methods inherited from interface org.w3c.dom.ls.DOMBuilder
abort
 

Field Detail

NAMESPACES

protected static final java.lang.String NAMESPACES
Feature identifier: namespaces.

See Also:
Constant Field Values

VALIDATION_FEATURE

protected static final java.lang.String VALIDATION_FEATURE
Feature id: validation.

See Also:
Constant Field Values

XMLSCHEMA

protected static final java.lang.String XMLSCHEMA
XML Schema validation

See Also:
Constant Field Values

DYNAMIC_VALIDATION

protected static final java.lang.String DYNAMIC_VALIDATION
Dynamic validation

See Also:
Constant Field Values

NORMALIZE_DATA

protected static final java.lang.String NORMALIZE_DATA
Feature identifier: expose schema normalized value

See Also:
Constant Field Values

SYMBOL_TABLE

protected static final java.lang.String SYMBOL_TABLE
See Also:
Constant Field Values

PSVI_AUGMENT

protected static final java.lang.String PSVI_AUGMENT
See Also:
Constant Field Values

fSchemaType

protected java.lang.String fSchemaType

fBusy

protected boolean fBusy

DEBUG

protected static final boolean DEBUG
See Also:
Constant Field Values
Constructor Detail

DOMBuilderImpl

public DOMBuilderImpl(java.lang.String configuration,
                      java.lang.String schemaType)
Constructs a DOM Builder using the standard parser configuration.


DOMBuilderImpl

public DOMBuilderImpl(org.apache.xerces.xni.parser.XMLParserConfiguration config)
Constructs a DOM Builder using the specified parser configuration.


DOMBuilderImpl

public DOMBuilderImpl(SymbolTable symbolTable)
Constructs a DOM Builder using the specified symbol table.


DOMBuilderImpl

public DOMBuilderImpl(SymbolTable symbolTable,
                      org.apache.xerces.xni.grammars.XMLGrammarPool grammarPool)
Constructs a DOM Builder using the specified symbol table and grammar pool.

Method Detail

reset

public void reset()
Resets the parser state.

Overrides:
reset in class AbstractDOMParser
Throws:
SAXException - Thrown on initialization error.

getConfig

public org.apache.xerces.dom3.DOMConfiguration getConfig()
Description copied from interface: org.w3c.dom.ls.DOMBuilder
The configuration used when a document is loaded. The values of parameters used to load a document are not passed automatically to the DOMConfiguration object used by the Document nodes. The DOM application is responsible for passing the parameters values from the DOMConfiguration object referenced from the DOMBuilder to the DOMConfiguration object referenced from the Document node.
In addition to the boolean parameters and parameters recognized in the Core module, the DOMConfiguration objects for DOMBuider adds the following boolean parameters:
"entity-resolver"
[required] A DOMEntityResolver object. If this parameter has been specified, each time a reference to an external entity is encountered the implementation will pass the public and system IDs to the entity resolver, which can then specify the actual source of the entity. If this parameter is not set, the resolution of entities in the document is implementation dependent.

Note: When the features "LS-Load" or "LS-Save" are supported, this parameter may also be supported by the DOMConfiguration object referenced from the Document node.

"certified"
true
[optional] Assume, when XML 1.1 is supported, that the input is certified (see section 2.13 in [XML 1.1]).
false
[required] (default) Don't assume that the input is certified (see section 2.13 in [XML 1.1]).
"charset-overrides-xml-encoding"
true
[required] (default) If a higher level protocol such as HTTP [IETF RFC 2616] provides an indication of the character encoding of the input stream being processed, that will override any encoding specified in the XML declaration or the Text declaration (see also [XML 1.0] 4.3.3 "Character Encoding in Entities"). Explicitly setting an encoding in the DOMInputSource overrides encodings from the protocol.
false
[required] Any character set encoding information from higher level protocols is ignored by the parser.
"supported-mediatypes-only"
true
[optional] Check that the media type of the parsed resource is a supported media type. If an unsupported media type is encountered, a fatal error of type "unsupported-media-type" will be raised. The media types defined in [IETF RFC 3023] must always be accepted.
false
[required] (default) Accept any media type.
"unknown-characters"
true
[required] (default) If, while verifying full normalization when [XML 1.1] is supported, a processor encounters characters for which it cannot determine the normalization properties, then the processor will ignore any possible denormalizations caused by these characters. This parameter is ignored [XML 1.0].
false
[optional] Report an fatal error if a character is encountered for which the processor can not determine the normalization properties.

Specified by:
getConfig in interface org.w3c.dom.ls.DOMBuilder

getFilter

public org.w3c.dom.ls.DOMBuilderFilter getFilter()
When the application provides a filter, the parser will call out to the filter at the completion of the construction of each Element node. The filter implementation can choose to remove the element from the document being constructed (unless the element is the document element) or to terminate the parse early. If the document is being validated when it's loaded the validation happens before the filter is called.

Specified by:
getFilter in interface org.w3c.dom.ls.DOMBuilder

setFilter

public void setFilter(org.w3c.dom.ls.DOMBuilderFilter filter)
When the application provides a filter, the parser will call out to the filter at the completion of the construction of each Element node. The filter implementation can choose to remove the element from the document being constructed (unless the element is the document element) or to terminate the parse early. If the document is being validated when it's loaded the validation happens before the filter is called.

Specified by:
setFilter in interface org.w3c.dom.ls.DOMBuilder

setParameter

public void setParameter(java.lang.String name,
                         java.lang.Object value)
                  throws org.w3c.dom.DOMException
Set parameters and properties

Specified by:
setParameter in interface org.apache.xerces.dom3.DOMConfiguration
Parameters:
name - The name of the parameter to set.
value - The new value or null if the user wishes to unset the parameter. While the type of the value parameter is defined as DOMUserData, the object type must match the type defined by the definition of the parameter. For example, if the parameter is "error-handler", the value must be of type DOMErrorHandler. Should we allow implementations to raise exception if the type does not match? INVALID_ACCESS_ERR seems the closest exception code...
Throws:
org.w3c.dom.DOMException - NOT_SUPPORTED_ERR: Raised when the parameter name is recognized but the requested value cannot be set.
NOT_FOUND_ERR: Raised when the parameter name is not recognized.

getParameter

public java.lang.Object getParameter(java.lang.String name)
                              throws org.w3c.dom.DOMException
Look up the value of a feature or a property.

Specified by:
getParameter in interface org.apache.xerces.dom3.DOMConfiguration
Parameters:
name - The name of the parameter.
Returns:
The current object associated with the specified parameter or null if no object has been associated or if the parameter is not supported. "by a DOM application" prevents a DOM implementation to return its default behavior (such as the default "schema-type") if any.
Throws:
org.w3c.dom.DOMException - NOT_FOUND_ERR: Raised when the parameter name is not recognized.

canSetParameter

public boolean canSetParameter(java.lang.String name,
                               java.lang.Object value)
Description copied from interface: org.apache.xerces.dom3.DOMConfiguration
Check if setting a parameter to a specific value is supported.

Specified by:
canSetParameter in interface org.apache.xerces.dom3.DOMConfiguration
Parameters:
name - The name of the parameter to check.
value - An object. if null, the returned value is true.
Returns:
true if the parameter could be successfully set to the specified value, or false if the parameter is not recognized or the requested value is not supported. This does not change the current value of the parameter itself.

parseURI

public org.w3c.dom.Document parseURI(java.lang.String uri)
Parse an XML document from a location identified by an URI reference. If the URI contains a fragment identifier (see section 4.1 in ), the behavior is not defined by this specification.

Specified by:
parseURI in interface org.w3c.dom.ls.DOMBuilder
Parameters:
uri - The location of the XML document to be read.
Returns:
If the DOMBuilder is a synchronous DOMBuilder, the newly created and populated Document is returned. If the DOMBuilder is asynchronous, null is returned since the document object may not yet be constructed when this method returns.

parse

public org.w3c.dom.Document parse(org.w3c.dom.ls.DOMInputSource is)
Parse an XML document from a resource identified by an DOMInputSource.

Specified by:
parse in interface org.w3c.dom.ls.DOMBuilder
Parameters:
is - The DOMInputSource from which the source of the document is to be read.
Returns:
If the DOMBuilder is a synchronous DOMBuilder, the newly created and populated Document is returned. If the DOMBuilder is asynchronous, null is returned since the document object may not yet be constructed when this method returns.

parseWithContext

public org.w3c.dom.Node parseWithContext(org.w3c.dom.ls.DOMInputSource is,
                                         org.w3c.dom.Node cnode,
                                         short action)
                                  throws org.w3c.dom.DOMException
Parse an XML document or fragment from a resource identified by an DOMInputSource and insert the content into an existing document at the position epcified with the contextNode and action arguments. When parsing the input stream the context node is used for resolving unbound namespace prefixes.

Specified by:
parseWithContext in interface org.w3c.dom.ls.DOMBuilder
Parameters:
is - The DOMInputSource from which the source document is to be read.
cnode - The Node that is used as the context for the data that is being parsed.
action - This parameter describes which action should be taken between the new set of node being inserted and the existing children of the context node. The set of possible actions is defined above.
Returns:
Return the node that is the result of the parse operation. If the result is more than one top-level node, the first one is returned.
Throws:
org.w3c.dom.DOMException - HIERARCHY_REQUEST_ERR: Thrown if this action results in an invalid hierarchy (i.e. a Document with more than one document element).

getAsync

public boolean getAsync()
Description copied from interface: org.w3c.dom.ls.DOMBuilder
True if the DOMBuider is asynchronous, false if it is synchronous.

Specified by:
getAsync in interface org.w3c.dom.ls.DOMBuilder
See Also:
DOMBuilder.getAsync()

getBusy

public boolean getBusy()
Description copied from interface: org.w3c.dom.ls.DOMBuilder
True if the DOMBuider is currently busy loading a document, otherwise false.

Specified by:
getBusy in interface org.w3c.dom.ls.DOMBuilder
See Also:
DOMBuilder.getBusy()


Copyright ? 1999-2003 Apache XML Project. All Rights Reserved.