org.apache.xalan.lib.sql

## Class DTMDocument

- java.lang.Object
- - org.apache.xml.dtm.ref.DTMDefaultBase
  - - org.apache.xml.dtm.ref.DTMDefaultBaseTraversers
    - - org.apache.xml.dtm.ref.DTMDefaultBaseIterators
      - - org.apache.xalan.lib.sql.DTMDocument

- All Implemented Interfaces:
    DTM
  Direct Known Subclasses:
    SQLDocument, SQLErrorDocument

      public class DTMDocument
      extends DTMDefaultBaseIterators

  The SQL Document is the main controlling class the executesa SQL Query

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static interface` | `DTMDocument.CharacterNodeHandler`

    - ### Nested classes/interfaces inherited from class org.apache.xml.dtm.ref.DTMDefaultBaseIterators

      `DTMDefaultBaseIterators.AncestorIterator, DTMDefaultBaseIterators.AttributeIterator, DTMDefaultBaseIterators.ChildrenIterator, DTMDefaultBaseIterators.DescendantIterator, DTMDefaultBaseIterators.FollowingIterator, DTMDefaultBaseIterators.FollowingSiblingIterator, DTMDefaultBaseIterators.InternalAxisIteratorBase, DTMDefaultBaseIterators.NamespaceAttributeIterator, DTMDefaultBaseIterators.NamespaceChildrenIterator, DTMDefaultBaseIterators.NamespaceIterator, DTMDefaultBaseIterators.NthDescendantIterator, DTMDefaultBaseIterators.ParentIterator, DTMDefaultBaseIterators.PrecedingIterator, DTMDefaultBaseIterators.PrecedingSiblingIterator, DTMDefaultBaseIterators.RootIterator, DTMDefaultBaseIterators.SingletonIterator, DTMDefaultBaseIterators.TypedAncestorIterator, DTMDefaultBaseIterators.TypedAttributeIterator, DTMDefaultBaseIterators.TypedChildrenIterator, DTMDefaultBaseIterators.TypedDescendantIterator, DTMDefaultBaseIterators.TypedFollowingIterator, DTMDefaultBaseIterators.TypedFollowingSiblingIterator, DTMDefaultBaseIterators.TypedNamespaceIterator, DTMDefaultBaseIterators.TypedPrecedingIterator, DTMDefaultBaseIterators.TypedPrecedingSiblingIterator, DTMDefaultBaseIterators.TypedRootIterator, DTMDefaultBaseIterators.TypedSingletonIterator`

  - ### Field Summary

    - ### Fields inherited from class org.apache.xml.dtm.ref.DTMDefaultBase

      `DEFAULT_BLOCKSIZE, DEFAULT_NUMBLOCKS, DEFAULT_NUMBLOCKS_SMALL, m_mgr, ROOTNODE`

    - ### Fields inherited from interface org.apache.xml.dtm.DTM

      `ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NAMESPACE_NODE, NOTATION_NODE, NTYPES, NULL, PROCESSING_INSTRUCTION_NODE, ROOT_NODE, TEXT_NODE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DTMDocument(DTMManager mgr, int ident)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `appendChild(int parm1, boolean parm2, boolean parm3)` Append a child to the end of the document.
    `void` | `appendTextChild(java.lang.String parm1)` Append a text node child that will be constructed from a string, to the end of the document.
    `void` | `dispatchCharactersEvents(int nodeHandle, org.xml.sax.ContentHandler ch, boolean normalize)` Directly call the characters method on the passed ContentHandler for the string-value of the given node (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value).
    `void` | `dispatchToEvents(int parm1, org.xml.sax.ContentHandler parm2)` Directly create SAX parser events from a subtree.
    `void` | `dumpDTM()`
    `int` | `getAttributeNode(int parm1, java.lang.String parm2, java.lang.String parm3)` Retrieves an attribute node by by qualified name and namespace URI.
    `DTMAxisIterator` | `getAxisIterator(int parm1)` This is a shortcut to the iterators that implement the XPath axes.
    `DTMAxisTraverser` | `getAxisTraverser(int parm1)` This returns a stateless "traverser", that can navigate over an XPath axis, though perhaps not in document order.
    `org.xml.sax.ContentHandler` | `getContentHandler()` Return this DTM's content handler, if it has one.
    `org.xml.sax.ext.DeclHandler` | `getDeclHandler()` Return this DTM's DeclHandler, if it has one.
    `int` | `getDocument()` Find the Document node handle for the document currently under construction.
    `boolean` | `getDocumentAllDeclarationsProcessed()` Return an indication of whether the processor has read the complete DTD.
    `java.lang.String` | `getDocumentBaseURI()` Return the base URI of the document entity.
    `java.lang.String` | `getDocumentEncoding(int parm1)` Return the name of the character encoding scheme in which the document entity is expressed.
    `java.lang.String` | `getDocumentStandalone(int parm1)` Return an indication of the standalone status of the document, either "yes" or "no".
    `java.lang.String` | `getDocumentSystemIdentifier(int parm1)` Return the system identifier of the document entity.
    `java.lang.String` | `getDocumentTypeDeclarationPublicIdentifier()` Return the public identifier of the external subset, normalized as described in 4.2.2 External Entities [XML].
    `java.lang.String` | `getDocumentTypeDeclarationSystemIdentifier()` A document type declaration information item has the following properties: 1.
    `java.lang.String` | `getDocumentVersion(int parm1)` Return a string representing the XML version of the document.
    `org.xml.sax.DTDHandler` | `getDTDHandler()` Return this DTM's DTDHandler, if it has one.
    `int` | `getElementById(java.lang.String parm1)` Returns the `Element` whose `ID` is given by `elementId`.
    `org.xml.sax.EntityResolver` | `getEntityResolver()` Return this DTM's EntityResolver, if it has one.
    `org.xml.sax.ErrorHandler` | `getErrorHandler()` Return this DTM's ErrorHandler, if it has one.
    `int` | `getExpandedTypeID(int parm1)` Given a node handle, return an ID that represents the node's expanded name.
    `int` | `getExpandedTypeID(java.lang.String parm1, java.lang.String parm2, int parm3)` Given an expanded name, return an ID.
    `int` | `getFirstAttribute(int parm1)` Given a node handle, get the index of the node's first attribute.
    `int` | `getFirstChild(int parm1)` Given a node handle, get the handle of the node's first child.
    `int` | `getFirstNamespaceNode(int parm1, boolean parm2)` Given a node handle, get the index of the node's first child.
    `int` | `getLastChild(int parm1)` Given a node handle, advance to its last child.
    `short` | `getLevel(int parm1)` Get the depth level of this node in the tree (equals 1 for a parentless node).
    `org.xml.sax.ext.LexicalHandler` | `getLexicalHandler()` Return this DTM's lexical handler, if it has one.
    `java.lang.String` | `getLocalName(int parm1)` Given a node handle, return its XPath-style localname.
    `java.lang.String` | `getLocalNameFromExpandedNameID(int parm1)` Given an expanded-name ID, return the local name part.
    `java.lang.String` | `getNamespaceFromExpandedNameID(int parm1)` Given an expanded-name ID, return the namespace URI part.
    `int` | `getNamespaceType(int parm1)` Returns the namespace type of a specific node
    `java.lang.String` | `getNamespaceURI(int parm1)` Given a node handle, return its DOM-style namespace URI (As defined in Namespaces, this is the declared URI which this node's prefix -- or default in lieu thereof -- was mapped to.)
    `int` | `getNextAttribute(int parm1)` Given a node handle, advance to the next attribute.
    `int` | `getNextNamespaceNode(int parm1, int parm2, boolean parm3)` Given a namespace handle, advance to the next namespace.
    `int` | `getNextSibling(int parm1)` Given a node handle, advance to its next sibling.
    `org.w3c.dom.Node` | `getNode(int parm1)` Return an DOM node for the given node.
    `java.lang.String` | `getNodeName(int parm1)` Given a node handle, return its DOM-style node name.
    `java.lang.String` | `getNodeNameX(int parm1)` Given a node handle, return the XPath node name.
    `short` | `getNodeType(int parm1)` Given a node handle, return its DOM-style node type.
    `java.lang.String` | `getNodeValue(int parm1)` Given a node handle, return its node value.
    `int` | `getOwnerDocument(int parm1)` Given a node handle, find the owning document node.
    `int` | `getParent(int parm1)` Given a node handle, find its parent node.
    `java.lang.String` | `getPrefix(int parm1)` Given a namespace handle, return the prefix that the namespace decl is mapping.
    `int` | `getPreviousSibling(int parm1)` Given a node handle, find its preceeding sibling.
    `javax.xml.transform.SourceLocator` | `getSourceLocatorFor(int node)` No source information is available for DOM2DTM, so return `null` here.
    `XMLString` | `getStringValue(int nodeHandle)` Get the string-value of a node as a String object (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value).
    `char[]` | `getStringValueChunk(int parm1, int parm2, int[] parm3)` Get a character array chunk in the string-value of a node.
    `int` | `getStringValueChunkCount(int parm1)` Get number of character array chunks in the string-value of a node.
    `DTMAxisIterator` | `getTypedAxisIterator(int parm1, int parm2)` Get an iterator that can navigate over an XPath Axis, predicated by the extended type ID.
    `java.lang.String` | `getUnparsedEntityURI(java.lang.String parm1)` The getUnparsedEntityURI function returns the URI of the unparsed entity with the specified name in the same document as the context node (see [3.3 Unparsed Entities]).
    `boolean` | `hasChildNodes(int parm1)` Given a node handle, test if it has child nodes.
    `boolean` | `isAttributeSpecified(int parm1)` 5.
    `boolean` | `isCharacterElementContentWhitespace(int parm1)` 2.
    `boolean` | `isDocumentAllDeclarationsProcessed(int parm1)` 10.
    `boolean` | `isNodeAfter(int parm1, int parm2)` Figure out whether nodeHandle2 should be considered as being later in the document than nodeHandle1, in Document Order as defined by the XPath model.
    `boolean` | `isSupported(java.lang.String parm1, java.lang.String parm2)` Tests whether DTM DOM implementation implements a specific feature and that feature is supported by this node.
    `boolean` | `needsTwoThreads()`
    `void` | `setDocumentBaseURI(java.lang.String parm1)` Set the base URI of the document entity.
    `void` | `setFeature(java.lang.String parm1, boolean parm2)` Set an implementation dependent feature.
    `void` | `setProperty(java.lang.String property, java.lang.Object value)` For the moment all the run time properties are ignored by this class.
    `boolean` | `supportsPreStripping()` Event overriding for Debug

    - ### Methods inherited from class org.apache.xml.dtm.ref.DTMDefaultBase

      `documentRegistration, documentRelease, dumpDTM, dumpNode, getDocumentRoot, getDTMIDs, getManager, getNodeHandle, getNodeIdent, getTypedFirstChild, getTypedNextSibling, makeNodeHandle, makeNodeIdentity, migrateTo`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DTMDocument

          public DTMDocument(DTMManager mgr,
                             int ident)

      Parameters:
        `mgr` -
        `ident` -

  - ### Method Detail

    - #### getFirstAttribute

          public int getFirstAttribute(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, get the index of the node's first attribute.
      Specified by:
        `getFirstAttribute` in interface `DTM`
      Overrides:
        `getFirstAttribute` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        Handle of first attribute, or DTM.NULL to indicate none exists.

    - #### getNodeValue

          public java.lang.String getNodeValue(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, return its node value. This is mostly as defined by the DOM, but may ignore some conveniences.

      Specified by:
        `getNodeValue` in interface `DTM`
      Specified by:
        `getNodeValue` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        String Value of this node, or null if not meaningful for this node type.

    - #### getStringValue

          public XMLString getStringValue(int nodeHandle)

      Get the string-value of a node as a String object (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value).
      Specified by:
        `getStringValue` in interface `DTM`
      Specified by:
        `getStringValue` in class `DTMDefaultBase`
      Parameters:
        `nodeHandle` - The node ID.
      Returns:
        A string object that represents the string-value of the given node.

    - #### getNextAttribute

          public int getNextAttribute(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, advance to the next attribute. If an attr, we advance to the next attr on the same node. If not an attribute, we return NULL.
      Specified by:
        `getNextAttribute` in interface `DTM`
      Overrides:
        `getNextAttribute` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        int DTM node-number of the resolved attr, or DTM.NULL to indicate none exists.

    - #### dumpDTM

          public void dumpDTM()

    - #### setProperty

          public void setProperty(java.lang.String property,
                                  java.lang.Object value)

      For the moment all the run time properties are ignored by this class.
      Parameters:
        `property` - a `String` value
        `value` - an `Object` value

    - #### getSourceLocatorFor

          public javax.xml.transform.SourceLocator getSourceLocatorFor(int node)

      No source information is available for DOM2DTM, so return `null` here.
      Parameters:
        `node` - an `int` value
      Returns:
        null

    - #### getAttributeNode

          public int getAttributeNode(int parm1,
                                      java.lang.String parm2,
                                      java.lang.String parm3)

      Description copied from class: `DTMDefaultBase`
      Retrieves an attribute node by by qualified name and namespace URI.
      Specified by:
        `getAttributeNode` in interface `DTM`
      Specified by:
        `getAttributeNode` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
        `parm2` -
        `parm3` -
      Returns:
        The attribute node handle with the specified name ( `nodeName`) or `DTM.NULL` if there is no such attribute.

    - #### getLocalName

          public java.lang.String getLocalName(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, return its XPath-style localname. (As defined in Namespaces, this is the portion of the name after any colon character).
      Specified by:
        `getLocalName` in interface `DTM`
      Specified by:
        `getLocalName` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        String Local name of this node.

    - #### getNodeName

          public java.lang.String getNodeName(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, return its DOM-style node name. This will include names such as #text or #document.
      Specified by:
        `getNodeName` in interface `DTM`
      Specified by:
        `getNodeName` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        String Name of this node, which may be an empty string. %REVIEW% Document when empty string is possible... %REVIEW-COMMENT% It should never be empty, should it?

    - #### isAttributeSpecified

          public boolean isAttributeSpecified(int parm1)

      Description copied from class: `DTMDefaultBase`
      5. [specified] A flag indicating whether this attribute was actually specified in the start-tag of its element, or was defaulted from the DTD.
      Specified by:
        `isAttributeSpecified` in interface `DTM`
      Specified by:
        `isAttributeSpecified` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        `true` if the attribute was specified; `false` if it was defaulted.

    - #### getUnparsedEntityURI

          public java.lang.String getUnparsedEntityURI(java.lang.String parm1)

      Description copied from class: `DTMDefaultBase`
      The getUnparsedEntityURI function returns the URI of the unparsed entity with the specified name in the same document as the context node (see [3.3 Unparsed Entities]). It returns the empty string if there is no such entity.

      XML processors may choose to use the System Identifier (if one is provided) to resolve the entity, rather than the URI in the Public Identifier. The details are dependent on the processor, and we would have to support some form of plug-in resolver to handle this properly. Currently, we simply return the System Identifier if present, and hope that it a usable URI or that our caller can map it to one. TODO: Resolve Public Identifiers... or consider changing function name.

      If we find a relative URI reference, XML expects it to be resolved in terms of the base URI of the document. The DOM doesn't do that for us, and it isn't entirely clear whether that should be done here; currently that's pushed up to a higher level of our application. (Note that DOM Level 1 didn't store the document's base URI.) TODO: Consider resolving Relative URIs.

      (The DOM's statement that "An XML processor may choose to completely expand entities before the structure model is passed to the DOM" refers only to parsed entities, not unparsed, and hence doesn't affect this function.)

      Specified by:
        `getUnparsedEntityURI` in interface `DTM`
      Specified by:
        `getUnparsedEntityURI` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        String containing the URI of the Unparsed Entity, or an empty string if no such entity exists.

    - #### getDTDHandler

          public org.xml.sax.DTDHandler getDTDHandler()

      Description copied from interface: `DTM`
      Return this DTM's DTDHandler, if it has one.
      Returns:
        null if this model doesn't respond to SAX dtd events.

    - #### getPrefix

          public java.lang.String getPrefix(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a namespace handle, return the prefix that the namespace decl is mapping. Given a node handle, return the prefix used to map to the namespace.

      %REVIEW% Are you sure you want "" for no prefix?

      %REVIEW-COMMENT% I think so... not totally sure. -sb

      Specified by:
        `getPrefix` in interface `DTM`
      Specified by:
        `getPrefix` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        String prefix of this node's name, or "" if no explicit namespace prefix was given.

    - #### getEntityResolver

          public org.xml.sax.EntityResolver getEntityResolver()

      Description copied from interface: `DTM`
      Return this DTM's EntityResolver, if it has one.
      Returns:
        null if this model doesn't respond to SAX entity ref events.

    - #### getDocumentTypeDeclarationPublicIdentifier

          public java.lang.String getDocumentTypeDeclarationPublicIdentifier()

      Description copied from class: `DTMDefaultBase`
      Return the public identifier of the external subset, normalized as described in 4.2.2 External Entities [XML]. If there is no external subset or if it has no public identifier, this property has no value.
      Specified by:
        `getDocumentTypeDeclarationPublicIdentifier` in interface `DTM`
      Specified by:
        `getDocumentTypeDeclarationPublicIdentifier` in class `DTMDefaultBase`
      Returns:
        the public identifier String object, or null if there is none.

    - #### getLexicalHandler

          public org.xml.sax.ext.LexicalHandler getLexicalHandler()

      Description copied from interface: `DTM`
      Return this DTM's lexical handler, if it has one. %REVIEW% Should this return null if constrution already done/begun?
      Returns:
        null if this model doesn't respond to lexical SAX events.

    - #### needsTwoThreads

          public boolean needsTwoThreads()

      Returns:
        true iff we're building this model incrementally (eg we're partnered with a CoroutineParser) and thus require that the transformation and the parse run simultaneously. Guidance to the DTMManager.

    - #### getContentHandler

          public org.xml.sax.ContentHandler getContentHandler()

      Description copied from interface: `DTM`
      Return this DTM's content handler, if it has one.
      Returns:
        null if this model doesn't respond to SAX events.

    - #### dispatchToEvents

          public void dispatchToEvents(int parm1,
                                       org.xml.sax.ContentHandler parm2)
                                throws org.xml.sax.SAXException

      Description copied from class: `DTMDefaultBase`
      Directly create SAX parser events from a subtree.
      Specified by:
        `dispatchToEvents` in interface `DTM`
      Specified by:
        `dispatchToEvents` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
        `parm2` -
      Throws:
        `org.xml.sax.SAXException`

    - #### getNamespaceURI

          public java.lang.String getNamespaceURI(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, return its DOM-style namespace URI (As defined in Namespaces, this is the declared URI which this node's prefix -- or default in lieu thereof -- was mapped to.)

      %REVIEW% Null or ""? -sb

      Specified by:
        `getNamespaceURI` in interface `DTM`
      Specified by:
        `getNamespaceURI` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        String URI value of this node's namespace, or null if no namespace was resolved.

    - #### dispatchCharactersEvents

          public void dispatchCharactersEvents(int nodeHandle,
                                               org.xml.sax.ContentHandler ch,
                                               boolean normalize)
                                        throws org.xml.sax.SAXException

      Description copied from class: `DTMDefaultBase`
      Directly call the characters method on the passed ContentHandler for the string-value of the given node (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value). Multiple calls to the ContentHandler's characters methods may well occur for a single call to this method.
      Specified by:
        `dispatchCharactersEvents` in interface `DTM`
      Specified by:
        `dispatchCharactersEvents` in class `DTMDefaultBase`
      Parameters:
        `nodeHandle` -
        `ch` -
        `normalize` -
      Throws:
        `org.xml.sax.SAXException`

    - #### supportsPreStripping

          public boolean supportsPreStripping()

      Event overriding for Debug
      Specified by:
        `supportsPreStripping` in interface `DTM`
      Overrides:
        `supportsPreStripping` in class `DTMDefaultBase`
      Returns:
        true if this DTM supports prestripping.

    - #### getNode

          public org.w3c.dom.Node getNode(int parm1)

      Description copied from class: `DTMDefaultBase`
      Return an DOM node for the given node.
      Specified by:
        `getNode` in interface `DTM`
      Overrides:
        `getNode` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        A node representation of the DTM node.

    - #### getPreviousSibling

          public int getPreviousSibling(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, find its preceeding sibling. WARNING: DTM is asymmetric; this operation is resolved by search, and is relatively expensive.
      Specified by:
        `getPreviousSibling` in interface `DTM`
      Overrides:
        `getPreviousSibling` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        int Node-number of the previous sib, or DTM.NULL to indicate none exists.

    - #### getDocumentStandalone

          public java.lang.String getDocumentStandalone(int parm1)

      Description copied from class: `DTMDefaultBase`
      Return an indication of the standalone status of the document, either "yes" or "no". This property is derived from the optional standalone document declaration in the XML declaration at the beginning of the document entity, and has no value if there is no standalone document declaration.
      Specified by:
        `getDocumentStandalone` in interface `DTM`
      Overrides:
        `getDocumentStandalone` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        the document standalone String object, either "yes", "no", or null.

    - #### getNodeNameX

          public java.lang.String getNodeNameX(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, return the XPath node name. This should be the name as described by the XPath data model, NOT the DOM-style name.
      Specified by:
        `getNodeNameX` in interface `DTM`
      Overrides:
        `getNodeNameX` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        String Name of this node, which may be an empty string.

    - #### setFeature

          public void setFeature(java.lang.String parm1,
                                 boolean parm2)

      Description copied from class: `DTMDefaultBase`
      Set an implementation dependent feature.

      %REVIEW% Do we really expect to set features on DTMs?

      Specified by:
        `setFeature` in interface `DTM`
      Overrides:
        `setFeature` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
        `parm2` -

    - #### isNodeAfter

          public boolean isNodeAfter(int parm1,
                                     int parm2)

      Description copied from class: `DTMDefaultBase`
      Figure out whether nodeHandle2 should be considered as being later in the document than nodeHandle1, in Document Order as defined by the XPath model. This may not agree with the ordering defined by other XML applications.

      There are some cases where ordering isn't defined, and neither are the results of this function -- though we'll generally return false.

      Specified by:
        `isNodeAfter` in interface `DTM`
      Overrides:
        `isNodeAfter` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
        `parm2` -
      Returns:
        true if node1 comes before node2, otherwise return false. You can think of this as `(node1.documentOrderPosition <= node2.documentOrderPosition)`.

    - #### getNamespaceType

          public int getNamespaceType(int parm1)

      Description copied from class: `DTMDefaultBase`
      Returns the namespace type of a specific node
      Overrides:
        `getNamespaceType` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        the ID of the namespace.

    - #### getDocumentVersion

          public java.lang.String getDocumentVersion(int parm1)

      Description copied from class: `DTMDefaultBase`
      Return a string representing the XML version of the document. This property is derived from the XML declaration optionally present at the beginning of the document entity, and has no value if there is no XML declaration.
      Specified by:
        `getDocumentVersion` in interface `DTM`
      Overrides:
        `getDocumentVersion` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        the document version String object.

    - #### isSupported

          public boolean isSupported(java.lang.String parm1,
                                     java.lang.String parm2)

      Description copied from class: `DTMDefaultBase`
      Tests whether DTM DOM implementation implements a specific feature and that feature is supported by this node.
      Specified by:
        `isSupported` in interface `DTM`
      Overrides:
        `isSupported` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
        `parm2` -
      Returns:
        Returns `true` if the specified feature is supported on this node, `false` otherwise.

    - #### getDocumentEncoding

          public java.lang.String getDocumentEncoding(int parm1)

      Description copied from class: `DTMDefaultBase`
      Return the name of the character encoding scheme in which the document entity is expressed.
      Specified by:
        `getDocumentEncoding` in interface `DTM`
      Overrides:
        `getDocumentEncoding` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        the document encoding String object.

    - #### appendChild

          public void appendChild(int parm1,
                                  boolean parm2,
                                  boolean parm3)

      Description copied from class: `DTMDefaultBase`
      Append a child to the end of the document. Please note that the node is always cloned if it is owned by another document.

      %REVIEW% "End of the document" needs to be defined more clearly. Does it become the last child of the Document? Of the root element?

      Specified by:
        `appendChild` in interface `DTM`
      Overrides:
        `appendChild` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
        `parm2` -
        `parm3` -

    - #### getLevel

          public short getLevel(int parm1)

      Description copied from class: `DTMDefaultBase`
      Get the depth level of this node in the tree (equals 1 for a parentless node).
      Specified by:
        `getLevel` in interface `DTM`
      Overrides:
        `getLevel` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        the number of ancestors, plus one

    - #### getDocumentBaseURI

          public java.lang.String getDocumentBaseURI()

      Description copied from class: `DTMDefaultBase`
      Return the base URI of the document entity. If it is not known (because the document was parsed from a socket connection or from standard input, for example), the value of this property is unknown.
      Specified by:
        `getDocumentBaseURI` in interface `DTM`
      Overrides:
        `getDocumentBaseURI` in class `DTMDefaultBase`
      Returns:
        the document base URI String object or null if unknown.

    - #### getNextNamespaceNode

          public int getNextNamespaceNode(int parm1,
                                          int parm2,
                                          boolean parm3)

      Description copied from class: `DTMDefaultBase`
      Given a namespace handle, advance to the next namespace.
      Specified by:
        `getNextNamespaceNode` in interface `DTM`
      Overrides:
        `getNextNamespaceNode` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
        `parm2` -
        `parm3` -
      Returns:
        handle of next namespace, or DTM.NULL to indicate none exists.

    - #### appendTextChild

          public void appendTextChild(java.lang.String parm1)

      Description copied from class: `DTMDefaultBase`
      Append a text node child that will be constructed from a string, to the end of the document.

      %REVIEW% "End of the document" needs to be defined more clearly. Does it become the last child of the Document? Of the root element?

      Specified by:
        `appendTextChild` in interface `DTM`
      Overrides:
        `appendTextChild` in class `DTMDefaultBase`
      Parameters:
        `parm1` -

    - #### getFirstNamespaceNode

          public int getFirstNamespaceNode(int parm1,
                                           boolean parm2)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, get the index of the node's first child. If not yet resolved, waits for more nodes to be added to the document and tries again
      Specified by:
        `getFirstNamespaceNode` in interface `DTM`
      Overrides:
        `getFirstNamespaceNode` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
        `parm2` -
      Returns:
        handle of first namespace, or DTM.NULL to indicate none exists.

    - #### getStringValueChunkCount

          public int getStringValueChunkCount(int parm1)

      Description copied from class: `DTMDefaultBase`
      Get number of character array chunks in the string-value of a node. (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value). Note that a single text node may have multiple text chunks.
      Specified by:
        `getStringValueChunkCount` in interface `DTM`
      Overrides:
        `getStringValueChunkCount` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        number of character array chunks in the string-value of a node.

    - #### getLastChild

          public int getLastChild(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, advance to its last child. If not yet resolved, waits for more nodes to be added to the document and tries again.
      Specified by:
        `getLastChild` in interface `DTM`
      Overrides:
        `getLastChild` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        int Node-number of last child, or DTM.NULL to indicate none exists.

    - #### hasChildNodes

          public boolean hasChildNodes(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, test if it has child nodes.

      %REVIEW% This is obviously useful at the DOM layer, where it would permit testing this without having to create a proxy node. It's less useful in the DTM API, where (dtm.getFirstChild(nodeHandle)!=DTM.NULL) is just as fast and almost as self-evident. But it's a convenience, and eases porting of DOM code to DTM.

      Specified by:
        `hasChildNodes` in interface `DTM`
      Overrides:
        `hasChildNodes` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        int true if the given node has child nodes.

    - #### getNodeType

          public short getNodeType(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, return its DOM-style node type.

      %REVIEW% Generally, returning short is false economy. Return int? %REVIEW% Make assumption that node has already arrived. Is OK?

      Specified by:
        `getNodeType` in interface `DTM`
      Overrides:
        `getNodeType` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        int Node type, as per the DOM's Node._NODE constants.

    - #### isCharacterElementContentWhitespace

          public boolean isCharacterElementContentWhitespace(int parm1)

      Description copied from class: `DTMDefaultBase`
      2. [element content whitespace] A boolean indicating whether the character is white space appearing within element content (see [XML], 2.10 "White Space Handling"). Note that validating XML processors are required by XML 1.0 to provide this information. If there is no declaration for the containing element, this property has no value for white space characters. If no declaration has been read, but the [all declarations processed] property of the document information item is false (so there may be an unread declaration), then the value of this property is unknown for white space characters. It is always false for characters that are not white space.
      Specified by:
        `isCharacterElementContentWhitespace` in interface `DTM`
      Overrides:
        `isCharacterElementContentWhitespace` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        `true` if the character data is whitespace; `false` otherwise.

    - #### getFirstChild

          public int getFirstChild(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, get the handle of the node's first child. If not yet resolved, waits for more nodes to be added to the document and tries again.
      Specified by:
        `getFirstChild` in interface `DTM`
      Overrides:
        `getFirstChild` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        int DTM node-number of first child, or DTM.NULL to indicate none exists.

    - #### getDocumentSystemIdentifier

          public java.lang.String getDocumentSystemIdentifier(int parm1)

      Description copied from class: `DTMDefaultBase`
      Return the system identifier of the document entity. If it is not known, the value of this property is unknown.
      Specified by:
        `getDocumentSystemIdentifier` in interface `DTM`
      Overrides:
        `getDocumentSystemIdentifier` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        the system identifier String object or null if unknown.

    - #### getNamespaceFromExpandedNameID

          public java.lang.String getNamespaceFromExpandedNameID(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given an expanded-name ID, return the namespace URI part.
      Specified by:
        `getNamespaceFromExpandedNameID` in interface `DTM`
      Overrides:
        `getNamespaceFromExpandedNameID` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        String URI value of this node's namespace, or null if no namespace was resolved.

    - #### getLocalNameFromExpandedNameID

          public java.lang.String getLocalNameFromExpandedNameID(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given an expanded-name ID, return the local name part.
      Specified by:
        `getLocalNameFromExpandedNameID` in interface `DTM`
      Overrides:
        `getLocalNameFromExpandedNameID` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        String Local name of this node.

    - #### getExpandedTypeID

          public int getExpandedTypeID(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, return an ID that represents the node's expanded name.
      Specified by:
        `getExpandedTypeID` in interface `DTM`
      Overrides:
        `getExpandedTypeID` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        the expanded-name id of the node.

    - #### getDocument

          public int getDocument()

      Description copied from class: `DTMDefaultBase`
      Find the Document node handle for the document currently under construction. PLEASE NOTE that most people should use getOwnerDocument(nodeHandle) instead; this version of the operation is primarily intended for use during negotiation with the DTM Manager.
      Specified by:
        `getDocument` in interface `DTM`
      Overrides:
        `getDocument` in class `DTMDefaultBase`
      Returns:
        int Node handle of document, which should always be valid.

    - #### isDocumentAllDeclarationsProcessed

          public boolean isDocumentAllDeclarationsProcessed(int parm1)

      Description copied from class: `DTMDefaultBase`
      10. [all declarations processed] This property is not strictly speaking part of the infoset of the document. Rather it is an indication of whether the processor has read the complete DTD. Its value is a boolean. If it is false, then certain properties (indicated in their descriptions below) may be unknown. If it is true, those properties are never unknown.
      Specified by:
        `isDocumentAllDeclarationsProcessed` in interface `DTM`
      Overrides:
        `isDocumentAllDeclarationsProcessed` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        `true` if all declarations were processed; `false` otherwise.

    - #### getOwnerDocument

          public int getOwnerDocument(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, find the owning document node. This has the exact same semantics as the DOM Document method of the same name, in that if the nodeHandle is a document node, it will return NULL.

      %REVIEW% Since this is DOM-specific, it may belong at the DOM binding layer. Included here as a convenience function and to aid porting of DOM code to DTM.

      Specified by:
        `getOwnerDocument` in interface `DTM`
      Overrides:
        `getOwnerDocument` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        int Node handle of owning document, or -1 if the node was a Docment
      See Also:
        `DTM.getDocumentRoot(int nodeHandle)`

    - #### getNextSibling

          public int getNextSibling(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, advance to its next sibling. If not yet resolved, waits for more nodes to be added to the document and tries again.
      Specified by:
        `getNextSibling` in interface `DTM`
      Overrides:
        `getNextSibling` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        int Node-number of next sibling, or DTM.NULL to indicate none exists.

    - #### getDocumentAllDeclarationsProcessed

          public boolean getDocumentAllDeclarationsProcessed()

      Description copied from class: `DTMDefaultBase`
      Return an indication of whether the processor has read the complete DTD. Its value is a boolean. If it is false, then certain properties (indicated in their descriptions below) may be unknown. If it is true, those properties are never unknown.
      Specified by:
        `getDocumentAllDeclarationsProcessed` in interface `DTM`
      Overrides:
        `getDocumentAllDeclarationsProcessed` in class `DTMDefaultBase`
      Returns:
        `true` if all declarations were processed; `false` otherwise.

    - #### getParent

          public int getParent(int parm1)

      Description copied from class: `DTMDefaultBase`
      Given a node handle, find its parent node.
      Specified by:
        `getParent` in interface `DTM`
      Overrides:
        `getParent` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        int Node-number of parent, or DTM.NULL to indicate none exists.

    - #### getExpandedTypeID

          public int getExpandedTypeID(java.lang.String parm1,
                                       java.lang.String parm2,
                                       int parm3)

      Description copied from class: `DTMDefaultBase`
      Given an expanded name, return an ID. If the expanded-name does not exist in the internal tables, the entry will be created, and the ID will be returned. Any additional nodes that are created that have this expanded name will use this ID.
      Specified by:
        `getExpandedTypeID` in interface `DTM`
      Overrides:
        `getExpandedTypeID` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
        `parm2` -
        `parm3` -
      Returns:
        the expanded-name id of the node.

    - #### setDocumentBaseURI

          public void setDocumentBaseURI(java.lang.String parm1)

      Description copied from class: `DTMDefaultBase`
      Set the base URI of the document entity.
      Specified by:
        `setDocumentBaseURI` in interface `DTM`
      Overrides:
        `setDocumentBaseURI` in class `DTMDefaultBase`
      Parameters:
        `parm1` -

    - #### getStringValueChunk

          public char[] getStringValueChunk(int parm1,
                                            int parm2,
                                            int[] parm3)

      Description copied from class: `DTMDefaultBase`
      Get a character array chunk in the string-value of a node. (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value). Note that a single text node may have multiple text chunks.
      Specified by:
        `getStringValueChunk` in interface `DTM`
      Overrides:
        `getStringValueChunk` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
        `parm2` -
        `parm3` -
      Returns:
        The character array reference where the chunk occurs.

    - #### getAxisTraverser

          public DTMAxisTraverser getAxisTraverser(int parm1)

      Description copied from class: `DTMDefaultBaseTraversers`
      This returns a stateless "traverser", that can navigate over an XPath axis, though perhaps not in document order.
      Specified by:
        `getAxisTraverser` in interface `DTM`
      Overrides:
        `getAxisTraverser` in class `DTMDefaultBaseTraversers`
      Parameters:
        `parm1` -
      Returns:
        A DTMAxisTraverser, or null if the given axis isn't supported.

    - #### getTypedAxisIterator

          public DTMAxisIterator getTypedAxisIterator(int parm1,
                                                      int parm2)

      Description copied from class: `DTMDefaultBaseIterators`
      Get an iterator that can navigate over an XPath Axis, predicated by the extended type ID. Returns an iterator that must be initialized with a start node (using iterator.setStartNode()).
      Specified by:
        `getTypedAxisIterator` in interface `DTM`
      Overrides:
        `getTypedAxisIterator` in class `DTMDefaultBaseIterators`
      Parameters:
        `parm1` -
        `parm2` -
      Returns:
        A DTMAxisIterator, or null if the given axis isn't supported.

    - #### getAxisIterator

          public DTMAxisIterator getAxisIterator(int parm1)

      Description copied from class: `DTMDefaultBaseIterators`
      This is a shortcut to the iterators that implement the XPath axes. Returns a bare-bones iterator that must be initialized with a start node (using iterator.setStartNode()).
      Specified by:
        `getAxisIterator` in interface `DTM`
      Overrides:
        `getAxisIterator` in class `DTMDefaultBaseIterators`
      Parameters:
        `parm1` -
      Returns:
        A DTMAxisIterator, or null if the given axis isn't supported.

    - #### getElementById

          public int getElementById(java.lang.String parm1)

      Description copied from class: `DTMDefaultBase`
      Returns the `Element` whose `ID` is given by `elementId`. If no such element exists, returns `DTM.NULL`. Behavior is not defined if more than one element has this `ID`. Attributes (including those with the name "ID") are not of type ID unless so defined by DTD/Schema information available to the DTM implementation. Implementations that do not know whether attributes are of type ID or not are expected to return `DTM.NULL`.

      %REVIEW% Presumably IDs are still scoped to a single document, and this operation searches only within a single document, right? Wouldn't want collisions between DTMs in the same process.

      Specified by:
        `getElementById` in interface `DTM`
      Specified by:
        `getElementById` in class `DTMDefaultBase`
      Parameters:
        `parm1` -
      Returns:
        The handle of the matching element.

    - #### getDeclHandler

          public org.xml.sax.ext.DeclHandler getDeclHandler()

      Description copied from interface: `DTM`
      Return this DTM's DeclHandler, if it has one.
      Returns:
        null if this model doesn't respond to SAX Decl events.

    - #### getErrorHandler

          public org.xml.sax.ErrorHandler getErrorHandler()

      Description copied from interface: `DTM`
      Return this DTM's ErrorHandler, if it has one.
      Returns:
        null if this model doesn't respond to SAX error events.

    - #### getDocumentTypeDeclarationSystemIdentifier

          public java.lang.String getDocumentTypeDeclarationSystemIdentifier()

      Description copied from class: `DTMDefaultBase`
      A document type declaration information item has the following properties: 1. [system identifier] The system identifier of the external subset, if it exists. Otherwise this property has no value.
      Specified by:
        `getDocumentTypeDeclarationSystemIdentifier` in interface `DTM`
      Specified by:
        `getDocumentTypeDeclarationSystemIdentifier` in class `DTMDefaultBase`
      Returns:
        the system identifier String object, or null if there is none.

Copyright © 2023 Apache XML Project. All Rights Reserved.