PSVIDocumentImpl (Xerces2 Implementation)
Date: 2018-10-17

org.apache.xerces.dom

## Class PSVIDocumentImpl

- java.lang.Object
- - org.apache.xerces.dom.NodeImpl
  - - org.apache.xerces.dom.ChildNode
    - - org.apache.xerces.dom.ParentNode
      - - org.apache.xerces.dom.CoreDocumentImpl
        - - org.apache.xerces.dom.DocumentImpl
          - - org.apache.xerces.dom.PSVIDocumentImpl

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, org.w3c.dom.Document, org.w3c.dom.events.DocumentEvent, org.w3c.dom.events.EventTarget, org.w3c.dom.Node, org.w3c.dom.NodeList, org.w3c.dom.ranges.DocumentRange, org.w3c.dom.traversal.DocumentTraversal

      public class PSVIDocumentImpl
      extends DocumentImpl

  Our own document implementation, which knows how to create an element with PSVI information.
  Version:
    $Id: PSVIDocumentImpl.java 699892 2008-09-28 21:08:27Z mrglavas $
  Author:
    Sandy Gao, IBM
  See Also:
    Serialized Form

  # INTERNAL:

    Usage of this class is not supported. It may be altered or removed at any time.

- - ### Field Summary

    - ### Fields inherited from class org.apache.xerces.dom.DocumentImpl

      `eventListeners, iteratorReferenceQueue, iterators, mutationEvents, rangeReferenceQueue, ranges`

    - ### Fields inherited from class org.apache.xerces.dom.CoreDocumentImpl

      `actualEncoding, allowGrammarAccess, changes, docElement, docType, encoding, errorChecking, fDocumentURI, identifiers, standalone, userData, version, xmlVersionChanged`

    - ### Fields inherited from class org.apache.xerces.dom.ParentNode

      `firstChild, fNodeListCache, ownerDocument`

    - ### Fields inherited from class org.apache.xerces.dom.ChildNode

      `nextSibling, previousSibling`

    - ### Fields inherited from class org.apache.xerces.dom.NodeImpl

      `DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_IS_CONTAINED, DOCUMENT_POSITION_PRECEDING, ELEMENT_DEFINITION_NODE, FIRSTCHILD, flags, HASSTRING, ID, IGNORABLEWS, NORMALIZED, OWNED, ownerNode, READONLY, SPECIFIED, SYNCCHILDREN, SYNCDATA, TREE_POSITION_ANCESTOR, TREE_POSITION_DESCENDANT, TREE_POSITION_DISCONNECTED, TREE_POSITION_EQUIVALENT, TREE_POSITION_FOLLOWING, TREE_POSITION_PRECEDING, TREE_POSITION_SAME_NODE`

    - ### Fields inherited from interface org.w3c.dom.Node

      `ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PSVIDocumentImpl()` Create a document.
    `PSVIDocumentImpl(org.w3c.dom.DocumentType doctype)` For DOM2 support.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `org.w3c.dom.Node` | `cloneNode(boolean deep)` Deep-clone a document, including fixing ownerDoc for the cloned children.
    `org.w3c.dom.Attr` | `createAttributeNS(java.lang.String namespaceURI, java.lang.String qualifiedName)` Create an attribute with PSVI information
    `org.w3c.dom.Attr` | `createAttributeNS(java.lang.String namespaceURI, java.lang.String qualifiedName, java.lang.String localName)` Create an attribute with PSVI information
    `org.w3c.dom.Element` | `createElementNS(java.lang.String namespaceURI, java.lang.String qualifiedName)` Create an element with PSVI information
    `org.w3c.dom.Element` | `createElementNS(java.lang.String namespaceURI, java.lang.String qualifiedName, java.lang.String localpart)` Create an element with PSVI information
    `org.w3c.dom.DOMConfiguration` | `getDomConfig()` The configuration used when `Document.normalizeDocument` is invoked.
    `org.w3c.dom.DOMImplementation` | `getImplementation()` Retrieve information describing the abilities of this particular DOM implementation.

    - ### Methods inherited from class org.apache.xerces.dom.DocumentImpl

      `addEventListener, copyEventListeners, createEvent, createNodeIterator, createNodeIterator, createRange, createTreeWalker, createTreeWalker, dispatchAggregateEvents, dispatchAggregateEvents, dispatchEvent, dispatchEventToSubtree, dispatchingEventToSubtree, getEventListeners, removeEventListener, saveEnclosingAttr, setEventListeners`

    - ### Methods inherited from class org.apache.xerces.dom.CoreDocumentImpl

      `abort, adoptNode, callUserDataHandlers, canRenameElements, changed, changes, checkDOMNSErr, checkNamespaceWF, checkQName, clearIdentifiers, clone, cloneNode, createAttribute, createCDATASection, createComment, createDocumentFragment, createDocumentType, createElement, createElementDefinition, createEntity, createEntityReference, createNotation, createProcessingInstruction, createTextNode, getAsync, getBaseURI, getDoctype, getDocumentElement, getDocumentURI, getElementById, getElementsByTagName, getElementsByTagNameNS, getEncoding, getErrorChecking, getFeature, getIdentifier, getIdentifiers, getInputEncoding, getNodeName, getNodeNumber, getNodeNumber, getNodeType, getOwnerDocument, getStandalone, getStrictErrorChecking, getTextContent, getUserData, getUserData, getUserDataRecord, getVersion, getXmlEncoding, getXmlStandalone, getXmlVersion, importNode, insertBefore, isKidOK, isValidQName, isXMLName, load, loadXML, normalizeDocument, putIdentifier, removeChild, removeIdentifier, renameNode, replaceChild, saveXML, setAsync, setDocumentURI, setEncoding, setErrorChecking, setInputEncoding, setStandalone, setStrictErrorChecking, setTextContent, setUserData, setUserData, setVersion, setXmlEncoding, setXmlStandalone, setXmlVersion, undeferChildren`

    - ### Methods inherited from class org.apache.xerces.dom.ParentNode

      `getChildNodes, getChildNodesUnoptimized, getFirstChild, getLastChild, getLength, hasChildNodes, isEqualNode, item, normalize, setOwnerDocument, setReadOnly, synchronizeChildren`

    - ### Methods inherited from class org.apache.xerces.dom.ChildNode

      `getNextSibling, getParentNode, getPreviousSibling`

    - ### Methods inherited from class org.apache.xerces.dom.NodeImpl

      `addEventListener, appendChild, compareDocumentPosition, compareTreePosition, dispatchEvent, getAttributes, getContainer, getLocalName, getNamespaceURI, getNodeValue, getPrefix, getReadOnly, getUserData, getUserData, getUserDataRecord, hasAttributes, isDefaultNamespace, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, needsSyncChildren, removeEventListener, setNodeValue, setPrefix, setUserData, setUserData, synchronizeData, toString`

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

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

    - ### Methods inherited from interface org.w3c.dom.Node

      `appendChild, compareDocumentPosition, getAttributes, getChildNodes, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeValue, getParentNode, getPrefix, getPreviousSibling, getUserData, hasAttributes, hasChildNodes, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, setNodeValue, setPrefix, setUserData`

- - ### Constructor Detail

    - #### PSVIDocumentImpl

          public PSVIDocumentImpl()

      Create a document.

    - #### PSVIDocumentImpl

          public PSVIDocumentImpl(org.w3c.dom.DocumentType doctype)

      For DOM2 support. The createDocument factory method is in DOMImplementation.

  - ### Method Detail

    - #### cloneNode

          public org.w3c.dom.Node cloneNode(boolean deep)

      Deep-clone a document, including fixing ownerDoc for the cloned children. Note that this requires bypassing the WRONG_DOCUMENT_ERR protection. I've chosen to implement it by calling importNode which is DOM Level 2.
      Specified by:
        `cloneNode` in interface `org.w3c.dom.Node`
      Overrides:
        `cloneNode` in class `DocumentImpl`
      Parameters:
        `deep` - boolean, iff true replicate children
      Returns:
        org.w3c.dom.Node
      See Also:
        `

        Example: Cloning a Text node will copy both the node and the text it contains.

        Example: Cloning something that has children -- Element or Attr, for example -- will _not_ clone those children unless a "deep clone" has been requested. A shallow clone of an Attr node will yield an empty Attr of the same name.

        NOTE: Clones will always be read/write, even if the node being cloned is read-only, to permit applications using only the DOM API to obtain editable copies of locked portions of the tree.

        `

    - #### getImplementation

          public org.w3c.dom.DOMImplementation getImplementation()

      Retrieve information describing the abilities of this particular DOM implementation. Intended to support applications that may be using DOMs retrieved from several different sources, potentially with different underlying representations.
      Specified by:
        `getImplementation` in interface `org.w3c.dom.Document`
      Overrides:
        `getImplementation` in class `DocumentImpl`

    - #### createElementNS

          public org.w3c.dom.Element createElementNS(java.lang.String namespaceURI,
                                                     java.lang.String qualifiedName)
                                              throws org.w3c.dom.DOMException

      Create an element with PSVI information
      Specified by:
        `createElementNS` in interface `org.w3c.dom.Document`
      Overrides:
        `createElementNS` in class `CoreDocumentImpl`
      Parameters:
        `namespaceURI` - The namespace URI of the element to create.
        `qualifiedName` - The qualified name of the element type to instantiate.
      Returns:
        Element A new Element object with the following attributes:
      Throws:
        `org.w3c.dom.DOMException` - INVALID_CHARACTER_ERR: Raised if the specified name contains an invalid character.

    - #### createElementNS

          public org.w3c.dom.Element createElementNS(java.lang.String namespaceURI,
                                                     java.lang.String qualifiedName,
                                                     java.lang.String localpart)
                                              throws org.w3c.dom.DOMException

      Create an element with PSVI information
      Overrides:
        `createElementNS` in class `CoreDocumentImpl`
      Parameters:
        `namespaceURI` - The namespace URI of the element to create.
        `qualifiedName` - The qualified name of the element type to instantiate.
        `localpart` - The local name of the attribute to instantiate.
      Returns:
        Element A new Element object with the following attributes:
      Throws:
        `org.w3c.dom.DOMException` - INVALID_CHARACTER_ERR: Raised if the specified name contains an invalid character.

    - #### createAttributeNS

          public org.w3c.dom.Attr createAttributeNS(java.lang.String namespaceURI,
                                                    java.lang.String qualifiedName)
                                             throws org.w3c.dom.DOMException

      Create an attribute with PSVI information
      Specified by:
        `createAttributeNS` in interface `org.w3c.dom.Document`
      Overrides:
        `createAttributeNS` in class `CoreDocumentImpl`
      Parameters:
        `namespaceURI` - The namespace URI of the attribute to create. When it is null or an empty string, this method behaves like createAttribute.
        `qualifiedName` - The qualified name of the attribute to instantiate.
      Returns:
        Attr A new Attr object.
      Throws:
        `org.w3c.dom.DOMException` - INVALID_CHARACTER_ERR: Raised if the specified name contains an invalid character.

    - #### createAttributeNS

          public org.w3c.dom.Attr createAttributeNS(java.lang.String namespaceURI,
                                                    java.lang.String qualifiedName,
                                                    java.lang.String localName)
                                             throws org.w3c.dom.DOMException

      Create an attribute with PSVI information
      Overrides:
        `createAttributeNS` in class `CoreDocumentImpl`
      Parameters:
        `namespaceURI` - The namespace URI of the attribute to create. When it is null or an empty string, this method behaves like createAttribute.
        `qualifiedName` - The qualified name of the attribute to instantiate.
        `localName` - The local name of the attribute to instantiate.
      Returns:
        Attr A new Attr object.
      Throws:
        `org.w3c.dom.DOMException` - INVALID_CHARACTER_ERR: Raised if the specified name contains an invalid character.

    - #### getDomConfig

          public org.w3c.dom.DOMConfiguration getDomConfig()

      The configuration used when `Document.normalizeDocument` is invoked.
      Specified by:
        `getDomConfig` in interface `org.w3c.dom.Document`
      Overrides:
        `getDomConfig` in class `CoreDocumentImpl`
      Since:
        DOM Level 3

Copyright © 1999-2010 The Apache Software Foundation. All Rights Reserved.