## net.sf.saxon.om
Class AbstractNode

    java.lang.Object
      |
      +--net.sf.saxon.om.AbstractNode

All Implemented Interfaces:
  javax.xml.transform.dom.DOMLocator, FingerprintedNode, Item, org.w3c.dom.Node, NodeInfo, javax.xml.transform.Source, javax.xml.transform.SourceLocator

Direct Known Subclasses:
  NodeImpl, TextFragmentValue, net.sf.saxon.tinytree.TinyNodeImpl

public abstract class AbstractNode
extends java.lang.Object
implements org.w3c.dom.Node, NodeInfo, FingerprintedNode, javax.xml.transform.SourceLocator, javax.xml.transform.dom.DOMLocator

This class is an abstract implementation of the Saxon NodeInfo interface; it also contains concrete implementations of most of the DOM methods in terms of the NodeInfo methods. These include all the methods defined on the DOM Node class itself, and most of those defined on subclasses such as Document, Text, and Comment: because of the absence of multiple inheritance, this is the only way of making these methods reusable by multiple implementations. The class contains no data, and can be used as a common superclass for different implementations of Node and NodeInfo.

Field Summary
`static char[]` `NODE_LETTER` Chararacteristic letters to identify each type of node, indexed using the node type values.

Fields inherited from interface org.w3c.dom.Node
`ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE`

Fields inherited from interface net.sf.saxon.om.NodeInfo
`ALL_NAMESPACES, LOCAL_NAMESPACES, NO_NAMESPACES`

Constructor Summary
`AbstractNode()`

Method Summary
`org.w3c.dom.Node` `appendChild(org.w3c.dom.Node newChild)` Adds the node `newChild` to the end of the list of children of this node.
`void` `appendData(java.lang.String arg)` Append the string to the end of the character data of the node.
`org.w3c.dom.Node` `cloneNode(boolean deep)` Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes.
`short` `compareDocumentPosition(org.w3c.dom.Node other)` Compare the position of the (other) node in document order with the reference node (this node).
`abstract int` `compareOrder(NodeInfo other)` Determine the relative position of this node and another node, in document order.
`org.w3c.dom.Attr` `createAttribute(java.lang.String name)` Create an `Attr` of the given name.
`org.w3c.dom.Attr` `createAttributeNS(java.lang.String namespaceURI, java.lang.String qualifiedName)` Create an attribute of the given qualified name and namespace URI.
`org.w3c.dom.CDATASection` `createCDATASection(java.lang.String data)` Create a `CDATASection` node whose value is the specified string.
`org.w3c.dom.Comment` `createComment(java.lang.String data)` Create a `Comment` node given the specified string.
`org.w3c.dom.DocumentFragment` `createDocumentFragment()` Creates an empty `DocumentFragment` object.
`org.w3c.dom.Element` `createElement(java.lang.String tagName)` Creates an element of the type specified.
`org.w3c.dom.Element` `createElementNS(java.lang.String namespaceURI, java.lang.String qualifiedName)` Create an element of the given qualified name and namespace URI.
`org.w3c.dom.EntityReference` `createEntityReference(java.lang.String name)` Create an `EntityReference` object.
`org.w3c.dom.ProcessingInstruction` `createProcessingInstruction(java.lang.String target, java.lang.String data)` Create a `ProcessingInstruction` node given the specified name and data strings.
`org.w3c.dom.Text` `createTextNode(java.lang.String data)` Create a `Text` node given the specified string.
`void` `deleteData(int offset, int count)` Remove a range of 16-bit units from the node.
`protected static void` `disallowUpdate()` Internal method used to indicate that update operations are not allowed
`abstract java.lang.String` `generateId()` Get a character string that uniquely identifies this node
`java.lang.String` `getAttribute(java.lang.String name)` Retrieves an attribute value by name.
`org.w3c.dom.Attr` `getAttributeNode(java.lang.String name)` Retrieves an attribute node by name.
`org.w3c.dom.Attr` `getAttributeNodeNS(java.lang.String namespaceURI, java.lang.String localName)` Retrieves an `Attr` node by local name and namespace URI.
`java.lang.String` `getAttributeNS(java.lang.String namespaceURI, java.lang.String localName)` Retrieves an attribute value by local name and namespace URI.
`org.w3c.dom.NamedNodeMap` `getAttributes()` Return a `NamedNodeMap` containing the attributes of this node (if it is an `Element` ) or `null` otherwise.
`abstract java.lang.String` `getAttributeValue(int fingerprint)` Get the value of a given attribute of this node
`abstract java.lang.String` `getBaseURI()` Get the base URI for the node.
`org.w3c.dom.NodeList` `getChildNodes()` Return a `NodeList` that contains all children of this node.
`int` `getColumnNumber()` Get the column number of the node.
`java.lang.String` `getData()` Get the character data of a Text or Comment node.
`java.lang.String` `getDisplayName()` Get the display name of this node.
`org.w3c.dom.DocumentType` `getDoctype()` Get the Document Type Declaration (see `DocumentType` ) associated with this document.
`org.w3c.dom.Element` `getDocumentElement()` Get the outermost element.
`int` `getDocumentNumber()` Get the document number of the document containing this node.
`DocumentInfo` `getDocumentRoot()` Get the root (document) node
`org.w3c.dom.Element` `getElementById(java.lang.String elementId)` Return the `Element` whose `ID` is given by `elementId` .
`org.w3c.dom.NodeList` `getElementsByTagName(java.lang.String tagname)` Return a `NodeList` of all the `Elements` with a given tag name in the order in which they are encountered in a preorder traversal of the `Document` tree.
`org.w3c.dom.NodeList` `getElementsByTagNameNS(java.lang.String namespaceURI, java.lang.String localName)` Return a `NodeList` of all the `Elements` with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the `Document` tree.
`java.lang.Object` `getFeature(java.lang.String feature, java.lang.String version)` Get a feature of this node.
`abstract int` `getFingerprint()` Get the fingerprint of the node, used for matching names
`org.w3c.dom.Node` `getFirstChild()` Get first child (DOM method)
`org.w3c.dom.DOMImplementation` `getImplementation()` Get a `DOMImplementation` object that handles this document.
`org.w3c.dom.Node` `getLastChild()` Get last child (DOM method)
`int` `getLength()` Get the length of a Text or Comment node.
`int` `getLineNumber()` Get the line number of the node within its source document entity.
`java.lang.String` `getLocalName()` Get the local name of this node, following the DOM rules
`abstract java.lang.String` `getLocalPart()` Get the local name of this node.
`java.lang.String` `getName()` Get the name of an attribute node (the QName) (DOM method)
`abstract int` `getNameCode()` Get the name code of the node, used for displaying names
`java.lang.String` `getNamespaceURI()` The namespace URI of this node, or `null` if it is unspecified.
`org.w3c.dom.Node` `getNextSibling()` Get next sibling node (DOM method)
`java.lang.String` `getNodeName()` Get the name of this node, following the DOM rules
`short` `getNodeType()` Get the type of this node (DOM method).
`java.lang.String` `getNodeValue()` Get the node value as defined in the DOM.
`org.w3c.dom.Node` `getOriginatingNode()` Get the node corresponding to this javax.xml.transform.dom.DOMLocator
`org.w3c.dom.Document` `getOwnerDocument()` Return the `Document` object associated with this node.
`org.w3c.dom.Element` `getOwnerElement()` The `Element` node this attribute is attached to or `null` if this attribute is not in use.
`abstract NodeInfo` `getParent()` Find the parent node of this node.
`org.w3c.dom.Node` `getParentNode()` Find the parent node of this node (DOM method).
`org.w3c.dom.Node` `getPreviousSibling()` Get the previous sibling of the node (DOM method)
`java.lang.String` `getPublicId()` Get the public identifier of the document entity containing this node.
`NodeInfo` `getRoot()` Get the root node (which is not necessarily a document node)
`TypeInfo` `getSchemaTypeInfo()` Get the TypeInfo for this node.
`boolean` `getSpecified()` If this attribute was explicitly given a value in the original document, this is `true` ; otherwise, it is `false`.
`abstract java.lang.String` `getStringValue()` Get the string value of the node
`abstract java.lang.String` `getSystemId()` Get the system ID for the entity containing the node.
`java.lang.String` `getTagName()` The name of the element (DOM interface).
`java.lang.String` `getTextContent()` Get the text content of a node.
`int` `getTypeAnnotation()` Get the type annotation of this node, if any
`SequenceIterator` `getTypedValue(Configuration config)` Get the typed value of this node.
`abstract java.lang.String` `getURI()` Get the URI part of the name of this node.
`java.lang.Object` `getUserData(java.lang.String key)` Get user data associated with this node.
`java.lang.String` `getValue()` Return the character value of an attribute node (DOM method)
`boolean` `hasAttribute(java.lang.String name)` Returns `true` when an attribute with a given name is specified on this element or has a default value, `false` otherwise.
`boolean` `hasAttributeNS(java.lang.String namespaceURI, java.lang.String localName)` Returns `true` when an attribute with a given local name and namespace URI is specified on this element or has a default value, `false` otherwise.
`abstract boolean` `hasAttributes()` Returns whether this node has any attributes.
`abstract boolean` `hasChildNodes()` Determine whether the node has any children.
`org.w3c.dom.Node` `importNode(org.w3c.dom.Node importedNode, boolean deep)` Import a node from another document to this document.
`org.w3c.dom.Node` `insertBefore(org.w3c.dom.Node newChild, org.w3c.dom.Node refChild)` Insert the node `newChild` before the existing child node `refChild`.
`void` `insertData(int offset, java.lang.String arg)` Insert a string at the specified character offset.
`boolean` `isDefaultNamespace(java.lang.String namespaceURI)` Test whether a particular namespace is the default namespace.
`boolean` `isEqualNode(org.w3c.dom.Node arg)` Compare whether two nodes have the same content.
`boolean` `isId()` Determine whether this (attribute) node is an ID.
`boolean` `isSameNode(org.w3c.dom.Node other)` Determine whether this is the same node as another node.
`abstract boolean` `isSameNodeInfo(NodeInfo other)` Determine whether this is the same node as another node.
`boolean` `isSupported(java.lang.String feature, java.lang.String version)` Tests whether the DOM implementation implements a specific feature and that feature is supported by this node.
`abstract AxisIterator` `iterateAxis(byte axisNumber, NodeTest nodeTest)` Return an enumeration over the nodes reached by the given axis from this node
`java.lang.String` `lookupNamespaceURI(java.lang.String prefix)` Find the URI corresponding to a given in-scope prefix
`java.lang.String` `lookupPrefix(java.lang.String namespaceURI)` Get the (first) prefix assigned to a specified namespace URI, or null if the namespace is not in scope.
`void` `normalize()` Puts all `Text` nodes in the full depth of the sub-tree underneath this `Node`, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates `Text` nodes, i.e., there are neither adjacent `Text` nodes nor empty `Text` nodes.
`void` `outputNamespaceNodes(Receiver out, boolean includeAncestors)` Output all namespace nodes associated with this element.
`void` `removeAttribute(java.lang.String oldAttr)` Removes the specified attribute.
`org.w3c.dom.Attr` `removeAttributeNode(org.w3c.dom.Attr oldAttr)` Removes the specified attribute node.
`void` `removeAttributeNS(java.lang.String namespaceURI, java.lang.String localName)` Removes an attribute by local name and namespace URI.
`org.w3c.dom.Node` `removeChild(org.w3c.dom.Node oldChild)` Remove the child node indicated by `oldChild` from the list of children, and returns it.
`org.w3c.dom.Node` `replaceChild(org.w3c.dom.Node newChild, org.w3c.dom.Node oldChild)` Replace the child node `oldChild` with `newChild` in the list of children, and returns the `oldChild` node.
`void` `replaceData(int offset, int count, java.lang.String arg)` Replace the characters starting at the specified 16-bit unit offset with the specified string.
`org.w3c.dom.Attr` `setAttributeNode(org.w3c.dom.Attr newAttr)` Adds a new attribute node.
`org.w3c.dom.Attr` `setAttributeNodeNS(org.w3c.dom.Attr newAttr)` Add a new attribute.
`void` `setAttributeNS(java.lang.String namespaceURI, java.lang.String qualifiedName, java.lang.String value)` Adds a new attribute.
`void` `setData(java.lang.String data)` Set the character data of a Text or Comment node.
`void` `setIdAttribute(java.lang.String name, boolean isId)`
`void` `setIdAttributeNode(org.w3c.dom.Attr idAttr, boolean isId)`
`void` `setIdAttributeNS(java.lang.String namespaceURI, java.lang.String localName, boolean isId)`
`void` `setNodeValue(java.lang.String nodeValue)` Set the node value.
`void` `setPrefix(java.lang.String prefix)` Set the namespace prefix of this node.
`void` `setTextContent(java.lang.String textContent)` Set the text content of a node.
`void` `setValue(java.lang.String value)` Set the value of an attribute node.
`org.w3c.dom.Text` `splitText(int offset)` Break this node into two nodes at the specified offset, keeping both in the tree as siblings.
`java.lang.String` `substringData(int offset, int count)` Extract a range of data from a Text or Comment node.
`boolean` `supports(java.lang.String feature, java.lang.String version)` Alternative to isSupported(), defined in a draft DOM spec

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.Node
`getPrefix`

Methods inherited from interface net.sf.saxon.om.NodeInfo
`copy, getNamePool, getNodeKind, iterateAxis`

Methods inherited from interface javax.xml.transform.Source
`setSystemId`

Field Detail

### NODE_LETTER

    public static final char[] NODE_LETTER

  Chararacteristic letters to identify each type of node, indexed using the node type values. These are used as the initial letter of the result of generate-id()

Constructor Detail

### AbstractNode

    public AbstractNode()

Method Detail

### isSameNodeInfo

    public abstract boolean isSameNodeInfo(NodeInfo other)

  Determine whether this is the same node as another node. Note: a.isSameNodeInfo(b) if and only if generateId(a)==generateId(b). This method has the same semantics as isSameNode() in DOM Level 3, but works on Saxon NodeInfo objects rather than DOM Node objects.

  Specified by:
    `isSameNodeInfo` in interface `NodeInfo`
  Parameters:
    `other` - the node to be compared with this node
  Returns:
    true if this NodeInfo object and the supplied NodeInfo object represent the same node in the tree.

### isSameNode

    public final boolean isSameNode(org.w3c.dom.Node other)

  Determine whether this is the same node as another node. DOM Level 3 method.

  Returns:
    true if this Node object and the supplied Node object represent the same node in the tree.

### generateId

    public abstract java.lang.String generateId()

  Get a character string that uniquely identifies this node

  Specified by:
    `generateId` in interface `NodeInfo`
  Returns:
    a string.

### getSystemId

    public abstract java.lang.String getSystemId()

  Get the system ID for the entity containing the node.

  Specified by:
    `getSystemId` in interface `NodeInfo`
  Returns:
    the System Identifier of the entity in the source document containing the node, or null if not known. Note this is not the same as the base URI: the base URI can be modified by xml:base, but the system ID cannot.

### getBaseURI

    public abstract java.lang.String getBaseURI()

  Get the base URI for the node. Default implementation for child nodes gets the base URI of the parent node.

  Specified by:
    `getBaseURI` in interface `NodeInfo`
  Returns:
    the base URI of the node

### getOriginatingNode

    public org.w3c.dom.Node getOriginatingNode()

  Get the node corresponding to this javax.xml.transform.dom.DOMLocator

  Specified by:
    `getOriginatingNode` in interface `javax.xml.transform.dom.DOMLocator`

### compareOrder

    public abstract int compareOrder(NodeInfo other)

  Determine the relative position of this node and another node, in document order. The other node will always be in the same document.

  Specified by:
    `compareOrder` in interface `NodeInfo`
  Parameters:
    `other` - The other node, whose position is to be compared with this node
  Returns:
    -1 if this node precedes the other node, +1 if it follows the other node, or 0 if they are the same node. (In this case, isSameNode() will always return true, and the two nodes will produce the same result for generateId())

### getNameCode

    public abstract int getNameCode()

  Get the name code of the node, used for displaying names

  Specified by:
    `getNameCode` in interface `NodeInfo`
  Returns:
    an integer name code, which may be used to obtain the actual node name from the name pool
  See Also:
    `allocate`, `getFingerprint`

### getFingerprint

    public abstract int getFingerprint()

  Get the fingerprint of the node, used for matching names

  Specified by:
    `getFingerprint` in interface `NodeInfo`
  Returns:
    an integer fingerprint; two nodes with the same fingerprint have the same expanded QName

### getNodeName

    public java.lang.String getNodeName()

  Get the name of this node, following the DOM rules

  Specified by:
    `getNodeName` in interface `org.w3c.dom.Node`
  Returns:
    The name of the node. For an element this is the element name, for an attribute it is the attribute name, as a QName. Other node types return conventional names such as "#text" or "#comment"

### getLocalName

    public java.lang.String getLocalName()

  Get the local name of this node, following the DOM rules

  Specified by:
    `getLocalName` in interface `org.w3c.dom.Node`
  Returns:
    The local name of the node. For an element this is the element name, for an attribute it is the attribute name, as a QName. Other node types return conventional names such as "#text" or "#comment"

### getURI

    public abstract java.lang.String getURI()

  Get the URI part of the name of this node. This is the URI corresponding to the prefix, or the URI of the default namespace if appropriate.

  Specified by:
    `getURI` in interface `NodeInfo`
  Returns:
    The URI of the namespace of this node. For an unnamed node, or for an element or attribute in the default namespace, return an empty string.

### getDisplayName

    public java.lang.String getDisplayName()

  Get the display name of this node. For elements and attributes this is [prefix:]localname. For unnamed nodes, it is an empty string.

  Specified by:
    `getDisplayName` in interface `NodeInfo`
  Returns:
    The display name of this node. For a node with no name, return an empty string.

### getLocalPart

    public abstract java.lang.String getLocalPart()

  Get the local name of this node.

  Specified by:
    `getLocalPart` in interface `NodeInfo`
  Returns:
    The local name of this node. For a node with no name, return null (as required by DOM); but for an unnamed namespace node, return "".

### getStringValue

    public abstract java.lang.String getStringValue()

  Get the string value of the node

  Specified by:
    `getStringValue` in interface `NodeInfo`
  Returns:
    the string value of the node

### getTypeAnnotation

    public int getTypeAnnotation()

  Get the type annotation of this node, if any

  Specified by:
    `getTypeAnnotation` in interface `NodeInfo`
  Returns:
    the type annotation of the node.
  See Also:
    `Type`

### getSchemaTypeInfo

    public TypeInfo getSchemaTypeInfo()

  Get the TypeInfo for this node. This is a DOM Level 3 method (though it currently uses a copy of TypeInfo in a Saxon package). This always returns a TypeInfo object in the case of element and attribute nodes, and null for other kinds of node.

### isId

    public boolean isId()

  Determine whether this (attribute) node is an ID. This method is introduced in DOM Level 3. The current implementation is simplistic; it returns true if the type annotation of the node is xs:ID (subtypes not allowed).

### hasChildNodes

    public abstract boolean hasChildNodes()

  Determine whether the node has any children.

  Specified by:
    `hasChildNodes` in interface `org.w3c.dom.Node`
  Returns:
    `true` if this node has any attributes, `false` otherwise.

### hasAttributes

    public abstract boolean hasAttributes()

  Returns whether this node has any attributes.

  Specified by:
    `hasAttributes` in interface `org.w3c.dom.Node`
  Returns:
    `true` if this node has any attributes, `false` otherwise.
  Since:
    DOM Level 2

### getAttributeValue

    public abstract java.lang.String getAttributeValue(int fingerprint)

  Get the value of a given attribute of this node

  Specified by:
    `getAttributeValue` in interface `NodeInfo`
  Parameters:
    `fingerprint` - The fingerprint of the attribute name
  Returns:
    the attribute value if it exists or null if not

### getLineNumber

    public int getLineNumber()

  Get the line number of the node within its source document entity. The default implementation returns -1, meaning unknown

  Specified by:
    `getLineNumber` in interface `NodeInfo`
  Returns:
    the line number of the node in its original source document; or -1 if not available

### getColumnNumber

    public int getColumnNumber()

  Get the column number of the node. The default implementation returns -1, meaning unknown

  Specified by:
    `getColumnNumber` in interface `javax.xml.transform.SourceLocator`

### getPublicId

    public java.lang.String getPublicId()

  Get the public identifier of the document entity containing this node. The default implementation returns null, meaning unknown

  Specified by:
    `getPublicId` in interface `javax.xml.transform.SourceLocator`

### iterateAxis

    public abstract AxisIterator iterateAxis(byte axisNumber,
                                             NodeTest nodeTest)

  Return an enumeration over the nodes reached by the given axis from this node

  Specified by:
    `iterateAxis` in interface `NodeInfo`
  Parameters:
    `axisNumber` - The axis to be used
    `nodeTest` - A pattern to be matched by the returned nodes
  Returns:
    a AxisIterator that scans the nodes reached by the axis in turn.
  See Also:
    `Axis`

### getParent

    public abstract NodeInfo getParent()

  Find the parent node of this node.

  Specified by:
    `getParent` in interface `NodeInfo`
  Returns:
    The Node object describing the containing element or root node.

### getRoot

    public NodeInfo getRoot()

  Get the root node (which is not necessarily a document node)

  Specified by:
    `getRoot` in interface `NodeInfo`
  Returns:
    the NodeInfo representing the containing document

### getDocumentRoot

    public DocumentInfo getDocumentRoot()

  Get the root (document) node

  Specified by:
    `getDocumentRoot` in interface `NodeInfo`
  Returns:
    the DocumentInfo representing the containing document. If this node is in a tree whose root is not a document node, return null.

### getDocumentNumber

    public int getDocumentNumber()

  Get the document number of the document containing this node. For a free-standing orphan node, just return the hashcode.

  Specified by:
    `getDocumentNumber` in interface `NodeInfo`

### getNodeType

    public short getNodeType()

  Get the type of this node (DOM method). Note, the numbers assigned to node kinds in Saxon (see module Type) are the same as those assigned in the DOM

  Specified by:
    `getNodeType` in interface `org.w3c.dom.Node`

### getParentNode

    public org.w3c.dom.Node getParentNode()

  Find the parent node of this node (DOM method).

  Specified by:
    `getParentNode` in interface `org.w3c.dom.Node`
  Returns:
    The Node object describing the containing element or root node.

### getPreviousSibling

    public org.w3c.dom.Node getPreviousSibling()

  Get the previous sibling of the node (DOM method)

  Specified by:
    `getPreviousSibling` in interface `org.w3c.dom.Node`
  Returns:
    The previous sibling node. Returns null if the current node is the first child of its parent.

### getNextSibling

    public org.w3c.dom.Node getNextSibling()

  Get next sibling node (DOM method)

  Specified by:
    `getNextSibling` in interface `org.w3c.dom.Node`
  Returns:
    The next sibling node. Returns null if the current node is the last child of its parent.

### getFirstChild

    public org.w3c.dom.Node getFirstChild()

  Get first child (DOM method)

  Specified by:
    `getFirstChild` in interface `org.w3c.dom.Node`
  Returns:
    the first child node of this node, or null if it has no children

### getLastChild

    public org.w3c.dom.Node getLastChild()

  Get last child (DOM method)

  Specified by:
    `getLastChild` in interface `org.w3c.dom.Node`
  Returns:
    last child of this node, or null if it has no children

### getDocumentElement

    public org.w3c.dom.Element getDocumentElement()

  Get the outermost element. (DOM method)

  Returns:
    the Element for the outermost element of the document. If the document is not well-formed, this returns the first element child of the root if there is one, otherwise null.

### getTypedValue

    public SequenceIterator getTypedValue(Configuration config)
                                   throws XPathException

  Get the typed value of this node. If there is no type annotation, we return the string value, as an instance of xdt:untypedAtomic

  Specified by:
    `getTypedValue` in interface `Item`
  Parameters:
    `config` - the configuration: this is needed because it provides access to schema information needed to interpret the type annotation
  Returns:
    the typed value of the item. In general this will be a sequence
  Throws:
    `XPathException` - where no typed value is available, e.g. for an element with complex content

### outputNamespaceNodes

    public void outputNamespaceNodes(Receiver out,
                                     boolean includeAncestors)
                              throws XPathException

  Output all namespace nodes associated with this element. Does nothing if the node is not an element.

  Specified by:
    `outputNamespaceNodes` in interface `NodeInfo`
  Parameters:
    `out` - The relevant outputter
    `includeAncestors` - True if namespaces declared on ancestor elements must be output; false if it is known that these are already on the result tree
    `XPathException`

### getNodeValue

    public java.lang.String getNodeValue()

  Get the node value as defined in the DOM. This is not necessarily the same as the XPath string-value.

  Specified by:
    `getNodeValue` in interface `org.w3c.dom.Node`

### setNodeValue

    public void setNodeValue(java.lang.String nodeValue)
                      throws org.w3c.dom.DOMException

  Set the node value. DOM method: always fails

  Specified by:
    `setNodeValue` in interface `org.w3c.dom.Node`
    `org.w3c.dom.DOMException`

### getChildNodes

    public org.w3c.dom.NodeList getChildNodes()

  Return a `NodeList` that contains all children of this node. If there are no children, this is a `NodeList` containing no nodes. DOM Method.

  Specified by:
    `getChildNodes` in interface `org.w3c.dom.Node`

### getAttributes

    public org.w3c.dom.NamedNodeMap getAttributes()

  Return a `NamedNodeMap` containing the attributes of this node (if it is an `Element` ) or `null` otherwise. (DOM method)

  Specified by:
    `getAttributes` in interface `org.w3c.dom.Node`

### getOwnerDocument

    public org.w3c.dom.Document getOwnerDocument()

  Return the `Document` object associated with this node. (DOM method)

  Specified by:
    `getOwnerDocument` in interface `org.w3c.dom.Node`

### insertBefore

    public org.w3c.dom.Node insertBefore(org.w3c.dom.Node newChild,
                                         org.w3c.dom.Node refChild)
                                  throws org.w3c.dom.DOMException

  Insert the node `newChild` before the existing child node `refChild`. DOM method: always fails.

  Specified by:
    `insertBefore` in interface `org.w3c.dom.Node`
  Parameters:
    `newChild` - The node to insert.
    `refChild` - The reference node, i.e., the node before which the new node must be inserted.
  Returns:
    The node being inserted.
  Throws:
    `org.w3c.dom.DOMException` - NO_MODIFICATION_ALLOWED_ERR: Always raised.

### replaceChild

    public org.w3c.dom.Node replaceChild(org.w3c.dom.Node newChild,
                                         org.w3c.dom.Node oldChild)
                                  throws org.w3c.dom.DOMException

  Replace the child node `oldChild` with `newChild` in the list of children, and returns the `oldChild` node. Always fails.

  Specified by:
    `replaceChild` in interface `org.w3c.dom.Node`
  Parameters:
    `newChild` - The new node to put in the child list.
    `oldChild` - The node being replaced in the list.
  Returns:
    The node replaced.
  Throws:
    `org.w3c.dom.DOMException` - NO_MODIFICATION_ALLOWED_ERR: Always raised.

### removeChild

    public org.w3c.dom.Node removeChild(org.w3c.dom.Node oldChild)
                                 throws org.w3c.dom.DOMException

  Remove the child node indicated by `oldChild` from the list of children, and returns it. DOM method: always fails.

  Specified by:
    `removeChild` in interface `org.w3c.dom.Node`
  Parameters:
    `oldChild` - The node being removed.
  Returns:
    The node removed.
  Throws:
    `org.w3c.dom.DOMException` - NO_MODIFICATION_ALLOWED_ERR: Always raised.

### appendChild

    public org.w3c.dom.Node appendChild(org.w3c.dom.Node newChild)
                                 throws org.w3c.dom.DOMException

  Adds the node `newChild` to the end of the list of children of this node. DOM method: always fails.

  Specified by:
    `appendChild` in interface `org.w3c.dom.Node`
  Parameters:
    `newChild` - The node to add.
  Returns:
    The node added.
  Throws:
    `org.w3c.dom.DOMException` -
    NO_MODIFICATION_ALLOWED_ERR: Always raised.

### cloneNode

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

  Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent. Not implemented: always returns null. (Because trees are read-only, there would be no way of using the resulting node.)

  Specified by:
    `cloneNode` in interface `org.w3c.dom.Node`
  Parameters:
    `deep` - If `true` , recursively clone the subtree under the specified node; if `false` , clone only the node itself (and its attributes, if it is an `Element` ).
  Returns:
    The duplicate node.

### normalize

    public void normalize()

  Puts all `Text` nodes in the full depth of the sub-tree underneath this `Node`, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates `Text` nodes, i.e., there are neither adjacent `Text` nodes nor empty `Text` nodes.

  Specified by:
    `normalize` in interface `org.w3c.dom.Node`
  Since:
    DOM Level 2

### isSupported

    public boolean isSupported(java.lang.String feature,
                               java.lang.String version)

  Tests whether the DOM implementation implements a specific feature and that feature is supported by this node.

  Specified by:
    `isSupported` in interface `org.w3c.dom.Node`
  Parameters:
    `feature` - The name of the feature to test. This is the same name which can be passed to the method `hasFeature` on `DOMImplementation` .
    `version` - This is the version number of the feature to test. In Level 2, version 1, this is the string "2.0". If the version is not specified, supporting any version of the feature will cause the method to return `true` .
  Returns:
    Returns `true` if the specified feature is supported on this node, `false` otherwise.
  Since:
    DOM Level 2

### supports

    public boolean supports(java.lang.String feature,
                            java.lang.String version)

  Alternative to isSupported(), defined in a draft DOM spec

### getNamespaceURI

    public java.lang.String getNamespaceURI()

  The namespace URI of this node, or `null` if it is unspecified. DOM method.
  This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time.
  For nodes of any type other than `ELEMENT_NODE` and `ATTRIBUTE_NODE` and nodes created with a DOM Level 1 method, such as `createElement` from the `Document` interface, this is always `null` . Per the Namespaces in XML Specification an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace.

  Specified by:
    `getNamespaceURI` in interface `org.w3c.dom.Node`
  Since:
    DOM Level 2

### setPrefix

    public void setPrefix(java.lang.String prefix)
                   throws org.w3c.dom.DOMException

  Set the namespace prefix of this node. Always fails.

  Specified by:
    `setPrefix` in interface `org.w3c.dom.Node`
    `org.w3c.dom.DOMException`

### compareDocumentPosition

    public short compareDocumentPosition(org.w3c.dom.Node other)
                                  throws org.w3c.dom.DOMException

  Compare the position of the (other) node in document order with the reference node (this node). DOM Level 3 method.

  Parameters:
    `other` - the other node.
  Returns:
  Throws:
    `org.w3c.dom.DOMException`
    `java.lang.UnsupportedOperationException` - (always)

### getTextContent

    public java.lang.String getTextContent()
                                    throws org.w3c.dom.DOMException

  Get the text content of a node. This is a DOM Level 3 method. The definition is the same as the definition of the string value of a node in XPath, except in the case of document nodes.

  Returns:
    the string value of the node, or null in the case of document nodes.
  Throws:
    `org.w3c.dom.DOMException`

### setTextContent

    public void setTextContent(java.lang.String textContent)
                        throws org.w3c.dom.DOMException

  Set the text content of a node. DOM Level 3 method, not supported.

  Parameters:
    `textContent` -
  Throws:
    `org.w3c.dom.DOMException`

### lookupPrefix

    public java.lang.String lookupPrefix(java.lang.String namespaceURI)

  Get the (first) prefix assigned to a specified namespace URI, or null if the namespace is not in scope. DOM Level 3 method.

  Parameters:
    `namespaceURI` - the namespace whose prefix is required
  Returns:
    the corresponding prefix

### isDefaultNamespace

    public boolean isDefaultNamespace(java.lang.String namespaceURI)

  Test whether a particular namespace is the default namespace. DOM Level 3 method.

  Parameters:
    `namespaceURI` - the namespace to be tested
  Returns:
    true if this is the default namespace

### lookupNamespaceURI

    public java.lang.String lookupNamespaceURI(java.lang.String prefix)

  Find the URI corresponding to a given in-scope prefix

  Parameters:
    `prefix` - The namespace prefix whose namespace URI is required.
  Returns:
    the corresponding namespace URI, or null if the prefix is not declared.

### isEqualNode

    public boolean isEqualNode(org.w3c.dom.Node arg)

  Compare whether two nodes have the same content. This is a DOM Level 3 method; the implementation uses the same algorithm as the XPath deep-equals() function.

  Parameters:
    `arg` - The node to be compared. This must be a Saxon NodeInfo.
  Returns:
    true if the two nodes are deep-equal.

### getFeature

    public java.lang.Object getFeature(java.lang.String feature,
                                       java.lang.String version)

  Get a feature of this node. DOM Level 3 method, always returns null.

  Parameters:
    `feature` - the required feature
    `version` - the version of the required feature
  Returns:

### getUserData

    public java.lang.Object getUserData(java.lang.String key)

  Get user data associated with this node. DOM Level 3 method, always returns null in this implementation

  Parameters:
    `key` - identifies the user data required
  Returns:
    always null in this implementation

### disallowUpdate

    protected static void disallowUpdate()
                                  throws org.w3c.dom.DOMException

  Internal method used to indicate that update operations are not allowed

    `org.w3c.dom.DOMException`

### getDoctype

    public org.w3c.dom.DocumentType getDoctype()

  Get the Document Type Declaration (see `DocumentType` ) associated with this document. For HTML documents as well as XML documents without a document type declaration this returns `null`. DOM method.

  Returns:
    null: The Saxon tree model does not include the document type information.

### getImplementation

    public org.w3c.dom.DOMImplementation getImplementation()

  Get a `DOMImplementation` object that handles this document. A DOM application may use objects from multiple implementations. DOM method.

### createElement

    public org.w3c.dom.Element createElement(java.lang.String tagName)
                                      throws org.w3c.dom.DOMException

  Creates an element of the type specified. DOM method: always fails, because the Saxon tree is not updateable.

    `org.w3c.dom.DOMException`

### createDocumentFragment

    public org.w3c.dom.DocumentFragment createDocumentFragment()

  Creates an empty `DocumentFragment` object.

  Returns:
    A new `DocumentFragment` . DOM method: returns null, because the Saxon tree is not updateable.

### createTextNode

    public org.w3c.dom.Text createTextNode(java.lang.String data)

  Create a `Text` node given the specified string. DOM method: returns null, because the Saxon tree is not updateable.

  Parameters:
    `data` - The data for the node.
  Returns:
    The new `Text` object.

### createComment

    public org.w3c.dom.Comment createComment(java.lang.String data)

  Create a `Comment` node given the specified string. DOM method: returns null, because the Saxon tree is not updateable.

  Parameters:
    `data` - The data for the node.
  Returns:
    The new `Comment` object.

### createCDATASection

    public org.w3c.dom.CDATASection createCDATASection(java.lang.String data)
                                                throws org.w3c.dom.DOMException

  Create a `CDATASection` node whose value is the specified string. DOM method: always fails, because the Saxon tree is not updateable.

  Parameters:
    `data` - The data for the `CDATASection` contents.
  Returns:
    The new `CDATASection` object.
  Throws:
    `org.w3c.dom.DOMException` - NOT_SUPPORTED_ERR: Raised if this document is an HTML document.

### createProcessingInstruction

    public org.w3c.dom.ProcessingInstruction createProcessingInstruction(java.lang.String target,
                                                                         java.lang.String data)
                                                                  throws org.w3c.dom.DOMException

  Create a `ProcessingInstruction` node given the specified name and data strings. DOM method: returns null, because the Saxon tree is not updateable.

  Parameters:
    `target` - The target part of the processing instruction.
    `data` - The data for the node.
  Returns:
    The new `ProcessingInstruction` object.
  Throws:
    `org.w3c.dom.DOMException` - INVALID_CHARACTER_ERR: Raised if the specified target contains an illegal character.
    NOT_SUPPORTED_ERR: Raised if this document is an HTML document.

### createAttribute

    public org.w3c.dom.Attr createAttribute(java.lang.String name)
                                     throws org.w3c.dom.DOMException

  Create an `Attr` of the given name. DOM method: always fails, because the Saxon tree is not updateable.

  Parameters:
    `name` - The name of the attribute.
  Returns:
    A new `Attr` object with the `nodeName` attribute set to `name` , and `localName` , `prefix` , and `namespaceURI` set to `null` .
  Throws:
    `org.w3c.dom.DOMException` - INVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.

### createEntityReference

    public org.w3c.dom.EntityReference createEntityReference(java.lang.String name)
                                                      throws org.w3c.dom.DOMException

  Create an `EntityReference` object. DOM method: returns null, because the Saxon tree is not updateable.

  Parameters:
    `name` - The name of the entity to reference.
  Returns:
    The new `EntityReference` object.
  Throws:
    `org.w3c.dom.DOMException` - INVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
    NOT_SUPPORTED_ERR: Raised if this document is an HTML document.

### getElementsByTagName

    public org.w3c.dom.NodeList getElementsByTagName(java.lang.String tagname)

  Return a `NodeList` of all the `Elements` with a given tag name in the order in which they are encountered in a preorder traversal of the `Document` tree.

  Parameters:
    `tagname` - The name of the tag to match on. The special value "*" matches all tags.
  Returns:
    A new `NodeList` object containing all the matched `Elements` .

### importNode

    public org.w3c.dom.Node importNode(org.w3c.dom.Node importedNode,
                                       boolean deep)
                                throws org.w3c.dom.DOMException

  Import a node from another document to this document. DOM method: always fails, because the Saxon tree is not updateable.

  Throws:
    `org.w3c.dom.DOMException`
  Since:
    DOM Level 2

### createElementNS

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

  Create an element of the given qualified name and namespace URI. HTML-only DOM implementations do not need to implement this method. DOM method: always fails, because the Saxon tree is not updateable.

  Parameters:
    `namespaceURI` - The namespace URI of the element to create.
    `qualifiedName` - The qualified name of the element type to instantiate.
  Returns:
    A new `Element` object
  Throws:
    `org.w3c.dom.DOMException`

### createAttributeNS

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

  Create an attribute of the given qualified name and namespace URI. HTML-only DOM implementations do not need to implement this method. DOM method: returns null, because the Saxon tree is not updateable.

  Parameters:
    `namespaceURI` - The namespace URI of the attribute to create.
    `qualifiedName` - The qualified name of the attribute to instantiate.
  Returns:
    A new `Attr` object.
  Throws:
    `org.w3c.dom.DOMException`

### getElementsByTagNameNS

    public org.w3c.dom.NodeList getElementsByTagNameNS(java.lang.String namespaceURI,
                                                       java.lang.String localName)

  Return a `NodeList` of all the `Elements` with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the `Document` tree. DOM method.

  Parameters:
    `namespaceURI` - The namespace URI of the elements to match on. The special value "*" matches all namespaces.
    `localName` - The local name of the elements to match on. The special value "*" matches all local names.
  Returns:
    A new `NodeList` object containing all the matched `Elements` .
  Since:
    DOM Level 2

### getElementById

    public org.w3c.dom.Element getElementById(java.lang.String elementId)

  Return the `Element` whose `ID` is given by `elementId` . If no such element exists, returns `null` . Behavior is not defined if more than one element has this `ID` . The DOM implementation must have information that says which attributes are of type ID. Attributes with the name "ID" are not of type ID unless so defined. Implementations that do not know whether attributes are of type ID or not are expected to return `null` .

  Parameters:
    `elementId` - The unique `id` value for an element.
  Returns:
    The matching element, or null if there is none.
  Since:
    DOM Level 2

### getTagName

    public java.lang.String getTagName()

  The name of the element (DOM interface).

### getAttribute

    public java.lang.String getAttribute(java.lang.String name)

  Retrieves an attribute value by name. Namespace declarations will not be retrieved. DOM interface.

  Parameters:
    `name` - The QName of the attribute to retrieve.
  Returns:
    The `Attr` value as a string, or the empty string if that attribute does not have a specified or default value.

### getAttributeNode

    public org.w3c.dom.Attr getAttributeNode(java.lang.String name)

  Retrieves an attribute node by name. Namespace declarations will not be retrieved.
  To retrieve an attribute node by qualified name and namespace URI, use the `getAttributeNodeNS` method.

  Parameters:
    `name` - The name (`nodeName` ) of the attribute to retrieve.
  Returns:
    The `Attr` node with the specified name ( `nodeName` ) or `null` if there is no such attribute.

### setAttributeNode

    public org.w3c.dom.Attr setAttributeNode(org.w3c.dom.Attr newAttr)
                                      throws org.w3c.dom.DOMException

  Adds a new attribute node. Always fails

  Throws:
    `org.w3c.dom.DOMException` - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

### removeAttribute

    public void removeAttribute(java.lang.String oldAttr)
                         throws org.w3c.dom.DOMException

  Removes the specified attribute. Always fails

  Throws:
    `org.w3c.dom.DOMException` - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

### removeAttributeNode

    public org.w3c.dom.Attr removeAttributeNode(org.w3c.dom.Attr oldAttr)
                                         throws org.w3c.dom.DOMException

  Removes the specified attribute node. Always fails

  Throws:
    `org.w3c.dom.DOMException` - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

### getAttributeNS

    public java.lang.String getAttributeNS(java.lang.String namespaceURI,
                                           java.lang.String localName)

  Retrieves an attribute value by local name and namespace URI. HTML-only DOM implementations do not need to implement this method.

  Parameters:
    `namespaceURI` - The namespace URI of the attribute to retrieve.
    `localName` - The local name of the attribute to retrieve.
  Returns:
    The `Attr` value as a string, or the empty string if that attribute does not have a specified or default value.
  Since:
    DOM Level 2

### setAttributeNS

    public void setAttributeNS(java.lang.String namespaceURI,
                               java.lang.String qualifiedName,
                               java.lang.String value)
                        throws org.w3c.dom.DOMException

  Adds a new attribute. Always fails.

  Parameters:
    `namespaceURI` - The namespace URI of the attribute to create or alter.
    `qualifiedName` - The qualified name of the attribute to create or alter.
    `value` - The value to set in string form.
  Throws:
    `org.w3c.dom.DOMException` - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

### removeAttributeNS

    public void removeAttributeNS(java.lang.String namespaceURI,
                                  java.lang.String localName)
                           throws org.w3c.dom.DOMException

  Removes an attribute by local name and namespace URI. Always fails

  Throws:
    `org.w3c.dom.DOMException` - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  Since:
    DOM Level 2

### getAttributeNodeNS

    public org.w3c.dom.Attr getAttributeNodeNS(java.lang.String namespaceURI,
                                               java.lang.String localName)

  Retrieves an `Attr` node by local name and namespace URI. DOM method, so namespace declarations count as attributes.

  Parameters:
    `namespaceURI` - The namespace URI of the attribute to retrieve.
    `localName` - The local name of the attribute to retrieve.
  Returns:
    The `Attr` node with the specified attribute local name and namespace URI or `null` if there is no such attribute.
  Since:
    DOM Level 2

### setAttributeNodeNS

    public org.w3c.dom.Attr setAttributeNodeNS(org.w3c.dom.Attr newAttr)
                                        throws org.w3c.dom.DOMException

  Add a new attribute. Always fails.

  Parameters:
    `newAttr` - The `Attr` node to add to the attribute list.
  Returns:
    If the `newAttr` attribute replaces an existing attribute with the same local name and namespace URI , the replaced `Attr` node is returned, otherwise `null` is returned.
  Throws:
    `org.w3c.dom.DOMException` -
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  Since:
    DOM Level 2

### hasAttribute

    public boolean hasAttribute(java.lang.String name)

  Returns `true` when an attribute with a given name is specified on this element or has a default value, `false` otherwise. Namespace declarations will not be retrieved.

  Parameters:
    `name` - The name of the attribute to look for.
  Returns:
    `true` if an attribute with the given name is specified on this element or has a default value, `false` otherwise.
  Since:
    DOM Level 2

### hasAttributeNS

    public boolean hasAttributeNS(java.lang.String namespaceURI,
                                  java.lang.String localName)

  Returns `true` when an attribute with a given local name and namespace URI is specified on this element or has a default value, `false` otherwise. Namespace declarations will not be retrieved.

  Parameters:
    `namespaceURI` - The namespace URI of the attribute to look for.
    `localName` - The local name of the attribute to look for.
  Returns:
    `true` if an attribute with the given local name and namespace URI is specified or has a default value on this element, `false` otherwise.
  Since:
    DOM Level 2

### setIdAttribute

    public void setIdAttribute(java.lang.String name,
                               boolean isId)
                        throws org.w3c.dom.DOMException

    `org.w3c.dom.DOMException`

### setIdAttributeNS

    public void setIdAttributeNS(java.lang.String namespaceURI,
                                 java.lang.String localName,
                                 boolean isId)
                          throws org.w3c.dom.DOMException

    `org.w3c.dom.DOMException`

### setIdAttributeNode

    public void setIdAttributeNode(org.w3c.dom.Attr idAttr,
                                   boolean isId)
                            throws org.w3c.dom.DOMException

    `org.w3c.dom.DOMException`

### getData

    public java.lang.String getData()

  Get the character data of a Text or Comment node. DOM method.

### setData

    public void setData(java.lang.String data)
                 throws org.w3c.dom.DOMException

  Set the character data of a Text or Comment node. DOM method: always fails, Saxon tree is immutable.

    `org.w3c.dom.DOMException`

### getLength

    public int getLength()

  Get the length of a Text or Comment node. DOM method.

### substringData

    public java.lang.String substringData(int offset,
                                          int count)
                                   throws org.w3c.dom.DOMException

  Extract a range of data from a Text or Comment node. DOM method.

  Parameters:
    `offset` - Start offset of substring to extract.
    `count` - The number of 16-bit units to extract.
  Returns:
    The specified substring. If the sum of `offset` and `count` exceeds the `length` , then all 16-bit units to the end of the data are returned.
  Throws:
    `org.w3c.dom.DOMException` - INDEX_SIZE_ERR: Raised if the specified `offset` is negative or greater than the number of 16-bit units in `data` , or if the specified `count` is negative.

### appendData

    public void appendData(java.lang.String arg)
                    throws org.w3c.dom.DOMException

  Append the string to the end of the character data of the node. DOM method: always fails.

  Parameters:
    `arg` - The `DOMString` to append.
  Throws:
    `org.w3c.dom.DOMException` - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

### insertData

    public void insertData(int offset,
                           java.lang.String arg)
                    throws org.w3c.dom.DOMException

  Insert a string at the specified character offset. DOM method: always fails.

  Parameters:
    `offset` - The character offset at which to insert.
    `arg` - The `DOMString` to insert.
  Throws:
    `org.w3c.dom.DOMException`

### deleteData

    public void deleteData(int offset,
                           int count)
                    throws org.w3c.dom.DOMException

  Remove a range of 16-bit units from the node. DOM method: always fails.

  Parameters:
    `offset` - The offset from which to start removing.
    `count` - The number of 16-bit units to delete.
  Throws:
    `org.w3c.dom.DOMException`

### replaceData

    public void replaceData(int offset,
                            int count,
                            java.lang.String arg)
                     throws org.w3c.dom.DOMException

  Replace the characters starting at the specified 16-bit unit offset with the specified string. DOM method: always fails.

  Parameters:
    `offset` - The offset from which to start replacing.
    `count` - The number of 16-bit units to replace.
    `arg` - The `DOMString` with which the range must be replaced.
  Throws:
    `org.w3c.dom.DOMException` - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

### splitText

    public org.w3c.dom.Text splitText(int offset)
                               throws org.w3c.dom.DOMException

  Break this node into two nodes at the specified offset, keeping both in the tree as siblings. DOM method, always fails.

  Parameters:
    `offset` - The 16-bit unit offset at which to split, starting from 0.
  Returns:
    The new node, of the same type as this node.
  Throws:
    `org.w3c.dom.DOMException`

### getName

    public java.lang.String getName()

  Get the name of an attribute node (the QName) (DOM method)

### getValue

    public java.lang.String getValue()

  Return the character value of an attribute node (DOM method)

  Returns:
    the attribute value

### getSpecified

    public boolean getSpecified()

  If this attribute was explicitly given a value in the original document, this is `true` ; otherwise, it is `false`. (DOM method)

  Returns:
    Always true in this implementation.

### setValue

    public void setValue(java.lang.String value)
                  throws org.w3c.dom.DOMException

  Set the value of an attribute node. (DOM method). Always fails (because tree is readonly)

    `org.w3c.dom.DOMException`

### getOwnerElement

    public org.w3c.dom.Element getOwnerElement()

  The `Element` node this attribute is attached to or `null` if this attribute is not in use.

  Since:
    DOM Level 2