javax.imageio.metadata

## Class IIOMetadataNode

- java.lang.Object
- - javax.imageio.metadata.IIOMetadataNode

- All Implemented Interfaces:
    Element, Node, NodeList

      public class IIOMetadataNode
      extends Object
      implements Element, NodeList

  A class representing a node in a meta-data tree, which implements the `org.w3c.dom.Element` interface and additionally allows for the storage of non-textual objects via the `getUserObject` and `setUserObject` methods.

  This class is not intended to be used for general XML processing. In particular, `Element` nodes created within the Image I/O API are not compatible with those created by Sun's standard implementation of the `org.w3.dom` API. In particular, the implementation is tuned for simple uses and may not perform well for intensive processing.

  Namespaces are ignored in this implementation. The terms "tag name" and "node name" are always considered to be synonymous. Note: The DOM Level 3 specification added a number of new methods to the `Node`, `Element` and `Attr` interfaces that are not of value to the `IIOMetadataNode` implementation or specification. Calling such methods on an `IIOMetadataNode`, or an `Attr` instance returned from an `IIOMetadataNode` will result in a `DOMException` being thrown.

  See Also:
    `IIOMetadata.getAsTree(java.lang.String)`, `IIOMetadata.setFromTree(java.lang.String, org.w3c.dom.Node)`, `IIOMetadata.mergeTree(java.lang.String, org.w3c.dom.Node)`

- - ### Field Summary

    - ### 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 | Description
    --- | ---
    `IIOMetadataNode()` | Constructs an empty `IIOMetadataNode`.
    `IIOMetadataNode(String nodeName)` | Constructs an `IIOMetadataNode` with a given node name.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Node` | `appendChild(Node newChild)` | Adds the node `newChild` to the end of the list of children of this node.
    `Node` | `cloneNode(boolean deep)` | Returns a duplicate of this node.
    `short` | `compareDocumentPosition(Node other)` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `String` | `getAttribute(String name)` | Retrieves an attribute value by name.
    `Attr` | `getAttributeNode(String name)` | Retrieves an attribute node by name.
    `Attr` | `getAttributeNodeNS(String namespaceURI, String localName)` | Equivalent to `getAttributeNode(localName)`.
    `String` | `getAttributeNS(String namespaceURI, String localName)` | Equivalent to `getAttribute(localName)`.
    `NamedNodeMap` | `getAttributes()` | Returns a `NamedNodeMap` containing the attributes of this node.
    `String` | `getBaseURI()` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `NodeList` | `getChildNodes()` | Returns a `NodeList` that contains all children of this node.
    `NodeList` | `getElementsByTagName(String name)` | Returns a `NodeList` of all descendant `Elements` with a given tag name, in document order.
    `NodeList` | `getElementsByTagNameNS(String namespaceURI, String localName)` | Equivalent to `getElementsByTagName(localName)`.
    `Object` | `getFeature(String feature, String version)` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `Node` | `getFirstChild()` | Returns the first child of this node, or `null` if the node has no children.
    `Node` | `getLastChild()` | Returns the last child of this node, or `null` if the node has no children.
    `int` | `getLength()` | The number of nodes in the list.
    `String` | `getLocalName()` | Equivalent to `getNodeName`.
    `String` | `getNamespaceURI()` | Returns `null`, since namespaces are not supported.
    `Node` | `getNextSibling()` | Returns the next sibling of this node, or `null` if the node has no next sibling.
    `String` | `getNodeName()` | Returns the node name associated with this node.
    `short` | `getNodeType()` | Returns the node type, which is always `ELEMENT_NODE`.
    `String` | `getNodeValue()` | Returns the value associated with this node.
    `Document` | `getOwnerDocument()` | Returns `null`, since `IIOMetadataNode`s do not belong to any `Document`.
    `Node` | `getParentNode()` | Returns the parent of this node.
    `String` | `getPrefix()` | Returns `null`, since namespaces are not supported.
    `Node` | `getPreviousSibling()` | Returns the previous sibling of this node, or `null` if this node has no previous sibling.
    `TypeInfo` | `getSchemaTypeInfo()` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `String` | `getTagName()` | Equivalent to `getNodeName`.
    `String` | `getTextContent()` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `Object` | `getUserData(String key)` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `Object` | `getUserObject()` | Returns the `Object` value associated with this node.
    `boolean` | `hasAttribute(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(String namespaceURI, String localName)` | Equivalent to `hasAttribute(localName)`.
    `boolean` | `hasAttributes()` | Returns whether this node (if it is an element) has any attributes.
    `boolean` | `hasChildNodes()` | Returns `true` if this node has child nodes.
    `Node` | `insertBefore(Node newChild, Node refChild)` | Inserts the node `newChild` before the existing child node `refChild`.
    `boolean` | `isDefaultNamespace(String namespaceURI)` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `boolean` | `isEqualNode(Node node)` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `boolean` | `isSameNode(Node node)` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `boolean` | `isSupported(String feature, String version)` | Returns `false` since DOM features are not supported.
    `Node` | `item(int index)` | Returns the `index`th item in the collection.
    `String` | `lookupNamespaceURI(String prefix)` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `String` | `lookupPrefix(String namespaceURI)` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `void` | `normalize()` | Does nothing, since `IIOMetadataNode`s do not contain `Text` children.
    `void` | `removeAttribute(String name)` | Removes an attribute by name.
    `Attr` | `removeAttributeNode(Attr oldAttr)` | Removes the specified attribute node.
    `void` | `removeAttributeNS(String namespaceURI, String localName)` | Equivalent to `removeAttribute(localName)`.
    `Node` | `removeChild(Node oldChild)` | Removes the child node indicated by `oldChild` from the list of children, and returns it.
    `Node` | `replaceChild(Node newChild, Node oldChild)` | Replaces the child node `oldChild` with `newChild` in the list of children, and returns the `oldChild` node.
    `void` | `setAttribute(String name, String value)` | Adds a new attribute.
    `Attr` | `setAttributeNode(Attr newAttr)` | Adds a new attribute node.
    `Attr` | `setAttributeNodeNS(Attr newAttr)` | Equivalent to `setAttributeNode(newAttr)`.
    `void` | `setAttributeNS(String namespaceURI, String qualifiedName, String value)` | Equivalent to `setAttribute(qualifiedName, value)`.
    `void` | `setIdAttribute(String name, boolean isId)` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `void` | `setIdAttributeNode(Attr idAttr, boolean isId)` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `void` | `setIdAttributeNS(String namespaceURI, String localName, boolean isId)` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `void` | `setNodeValue(String nodeValue)` | Sets the `String` value associated with this node.
    `void` | `setPrefix(String prefix)` | Does nothing, since namespaces are not supported.
    `void` | `setTextContent(String textContent)` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `Object` | `setUserData(String key, Object data, UserDataHandler handler)` | This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
    `void` | `setUserObject(Object userObject)` | Sets the value associated with this node.

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

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

- - ### Constructor Detail

    - #### IIOMetadataNode

          public IIOMetadataNode()

      Constructs an empty `IIOMetadataNode`.

    - #### IIOMetadataNode

          public IIOMetadataNode(String nodeName)

      Constructs an `IIOMetadataNode` with a given node name.
      Parameters:
        `nodeName` - the name of the node, as a `String`.

  - ### Method Detail

    - #### getNodeName

          public String getNodeName()

      Returns the node name associated with this node.
      Specified by:
        `getNodeName` in interface `Node`
      Returns:
        the node name, as a `String`.

    - #### getNodeValue

          public String getNodeValue()

      Returns the value associated with this node.
      Specified by:
        `getNodeValue` in interface `Node`
      Returns:
        the node value, as a `String`.

    - #### setNodeValue

          public void setNodeValue(String nodeValue)

      Sets the `String` value associated with this node.
      Specified by:
        `setNodeValue` in interface `Node`

    - #### getNodeType

          public short getNodeType()

      Returns the node type, which is always `ELEMENT_NODE`.
      Specified by:
        `getNodeType` in interface `Node`
      Returns:
        the `short` value `ELEMENT_NODE`.

    - #### getParentNode

          public Node getParentNode()

      Returns the parent of this node. A `null` value indicates that the node is the root of its own tree. To add a node to an existing tree, use one of the `insertBefore`, `replaceChild`, or `appendChild` methods.
      Specified by:
        `getParentNode` in interface `Node`
      Returns:
        the parent, as a `Node`.
      See Also:
        `insertBefore(org.w3c.dom.Node, org.w3c.dom.Node)`, `replaceChild(org.w3c.dom.Node, org.w3c.dom.Node)`, `appendChild(org.w3c.dom.Node)`

    - #### getChildNodes

          public NodeList getChildNodes()

      Returns a `NodeList` that contains all children of this node. If there are no children, this is a `NodeList` containing no nodes.
      Specified by:
        `getChildNodes` in interface `Node`
      Returns:
        the children as a `NodeList`

    - #### getFirstChild

          public Node getFirstChild()

      Returns the first child of this node, or `null` if the node has no children.
      Specified by:
        `getFirstChild` in interface `Node`
      Returns:
        the first child, as a `Node`, or `null`

    - #### getLastChild

          public Node getLastChild()

      Returns the last child of this node, or `null` if the node has no children.
      Specified by:
        `getLastChild` in interface `Node`
      Returns:
        the last child, as a `Node`, or `null`.

    - #### getPreviousSibling

          public Node getPreviousSibling()

      Returns the previous sibling of this node, or `null` if this node has no previous sibling.
      Specified by:
        `getPreviousSibling` in interface `Node`
      Returns:
        the previous sibling, as a `Node`, or `null`.

    - #### getNextSibling

          public Node getNextSibling()

      Returns the next sibling of this node, or `null` if the node has no next sibling.
      Specified by:
        `getNextSibling` in interface `Node`
      Returns:
        the next sibling, as a `Node`, or `null`.

    - #### getAttributes

          public NamedNodeMap getAttributes()

      Returns a `NamedNodeMap` containing the attributes of this node.
      Specified by:
        `getAttributes` in interface `Node`
      Returns:
        a `NamedNodeMap` containing the attributes of this node.

    - #### getOwnerDocument

          public Document getOwnerDocument()

      Returns `null`, since `IIOMetadataNode`s do not belong to any `Document`.
      Specified by:
        `getOwnerDocument` in interface `Node`
      Returns:
        `null`.

    - #### insertBefore

          public Node insertBefore(Node newChild,
                                   Node refChild)

      Inserts the node `newChild` before the existing child node `refChild`. If `refChild` is `null`, insert `newChild` at the end of the list of children.
      Specified by:
        `insertBefore` in interface `Node`
      Parameters:
        `newChild` - the `Node` to insert.
        `refChild` - the reference `Node`.
      Returns:
        the node being inserted.
      Throws:
        `IllegalArgumentException` - if `newChild` is `null`.

    - #### replaceChild

          public Node replaceChild(Node newChild,
                                   Node oldChild)

      Replaces the child node `oldChild` with `newChild` in the list of children, and returns the `oldChild` node.
      Specified by:
        `replaceChild` in interface `Node`
      Parameters:
        `newChild` - the `Node` to insert.
        `oldChild` - the `Node` to be replaced.
      Returns:
        the node replaced.
      Throws:
        `IllegalArgumentException` - if `newChild` is `null`.

    - #### removeChild

          public Node removeChild(Node oldChild)

      Removes the child node indicated by `oldChild` from the list of children, and returns it.
      Specified by:
        `removeChild` in interface `Node`
      Parameters:
        `oldChild` - the `Node` to be removed.
      Returns:
        the node removed.
      Throws:
        `IllegalArgumentException` - if `oldChild` is `null`.

    - #### appendChild

          public Node appendChild(Node newChild)

      Adds the node `newChild` to the end of the list of children of this node.
      Specified by:
        `appendChild` in interface `Node`
      Parameters:
        `newChild` - the `Node` to insert.
      Returns:
        the node added.
      Throws:
        `IllegalArgumentException` - if `newChild` is `null`.

    - #### hasChildNodes

          public boolean hasChildNodes()

      Returns `true` if this node has child nodes.
      Specified by:
        `hasChildNodes` in interface `Node`
      Returns:
        `true` if this node has children.

    - #### cloneNode

          public Node cloneNode(boolean deep)

      Returns a duplicate of this node. The duplicate node has no parent (`getParentNode` returns `null`). If a shallow clone is being performed (`deep` is `false`), the new node will not have any children or siblings. If a deep clone is being performed, the new node will form the root of a complete cloned subtree.
      Specified by:
        `cloneNode` in interface `Node`
      Parameters:
        `deep` - if `true`, recursively clone the subtree under the specified node; if `false`, clone only the node itself.
      Returns:
        the duplicate node.

    - #### normalize

          public void normalize()

      Does nothing, since `IIOMetadataNode`s do not contain `Text` children.
      Specified by:
        `normalize` in interface `Node`

    - #### isSupported

          public boolean isSupported(String feature,
                                     String version)

      Returns `false` since DOM features are not supported.
      Specified by:
        `isSupported` in interface `Node`
      Parameters:
        `feature` - a `String`, which is ignored.
        `version` - a `String`, which is ignored.
      Returns:
        `false`.

    - #### getNamespaceURI

          public String getNamespaceURI()
                                 throws DOMException

      Returns `null`, since namespaces are not supported.
      Specified by:
        `getNamespaceURI` in interface `Node`
      Throws:
        `DOMException`

    - #### getPrefix

          public String getPrefix()

      Returns `null`, since namespaces are not supported.
      Specified by:
        `getPrefix` in interface `Node`
      Returns:
        `null`.
      See Also:
        `setPrefix(java.lang.String)`

    - #### setPrefix

          public void setPrefix(String prefix)

      Does nothing, since namespaces are not supported.
      Specified by:
        `setPrefix` in interface `Node`
      Parameters:
        `prefix` - a `String`, which is ignored.
      See Also:
        `getPrefix()`

    - #### getLocalName

          public String getLocalName()

      Equivalent to `getNodeName`.
      Specified by:
        `getLocalName` in interface `Node`
      Returns:
        the node name, as a `String`.

    - #### getTagName

          public String getTagName()

      Equivalent to `getNodeName`.
      Specified by:
        `getTagName` in interface `Element`
      Returns:
        the node name, as a `String`

    - #### getAttribute

          public String getAttribute(String name)

      Retrieves an attribute value by name.
      Specified by:
        `getAttribute` in interface `Element`
      Parameters:
        `name` - The 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.

    - #### getAttributeNS

          public String getAttributeNS(String namespaceURI,
                                       String localName)

      Equivalent to `getAttribute(localName)`.
      Specified by:
        `getAttributeNS` in interface `Element`
      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.
      See Also:
        `setAttributeNS(java.lang.String, java.lang.String, java.lang.String)`

    - #### setAttribute

          public void setAttribute(String name,
                                   String value)

      Description copied from interface: `Element`
      Adds a new attribute. If an attribute with that name is already present in the element, its value is changed to be that of the value parameter. This value is a simple string; it is not parsed as it is being set. So any markup (such as syntax to be recognized as an entity reference) is treated as literal text, and needs to be appropriately escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an `Attr` node plus any `Text` and `EntityReference` nodes, build the appropriate subtree, and use `setAttributeNode` to assign it as the value of an attribute.
      To set an attribute with a qualified name and namespace URI, use the `setAttributeNS` method.
      Specified by:
        `setAttribute` in interface `Element`
      Parameters:
        `name` - The name of the attribute to create or alter.
        `value` - Value to set in string form.

    - #### setAttributeNS

          public void setAttributeNS(String namespaceURI,
                                     String qualifiedName,
                                     String value)

      Equivalent to `setAttribute(qualifiedName, value)`.
      Specified by:
        `setAttributeNS` in interface `Element`
      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.
      See Also:
        `getAttributeNS(java.lang.String, java.lang.String)`

    - #### removeAttribute

          public void removeAttribute(String name)

      Description copied from interface: `Element`
      Removes an attribute by name. If a default value for the removed attribute is defined in the DTD, a new attribute immediately appears with the default value as well as the corresponding namespace URI, local name, and prefix when applicable. The implementation may handle default values from other schemas similarly but applications should use `Document.normalizeDocument()` to guarantee this information is up-to-date.
      If no attribute with this name is found, this method has no effect.
      To remove an attribute by local name and namespace URI, use the `removeAttributeNS` method.
      Specified by:
        `removeAttribute` in interface `Element`
      Parameters:
        `name` - The name of the attribute to remove.

    - #### removeAttributeNS

          public void removeAttributeNS(String namespaceURI,
                                        String localName)

      Equivalent to `removeAttribute(localName)`.
      Specified by:
        `removeAttributeNS` in interface `Element`
      Parameters:
        `namespaceURI` - The namespace URI of the attribute to remove.
        `localName` - The local name of the attribute to remove.

    - #### getAttributeNode

          public Attr getAttributeNode(String name)

      Description copied from interface: `Element`
      Retrieves an attribute node by name.
      To retrieve an attribute node by qualified name and namespace URI, use the `getAttributeNodeNS` method.
      Specified by:
        `getAttributeNode` in interface `Element`
      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.

    - #### getAttributeNodeNS

          public Attr getAttributeNodeNS(String namespaceURI,
                                         String localName)

      Equivalent to `getAttributeNode(localName)`.
      Specified by:
        `getAttributeNodeNS` in interface `Element`
      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.
      See Also:
        `setAttributeNodeNS(org.w3c.dom.Attr)`

    - #### setAttributeNode

          public Attr setAttributeNode(Attr newAttr)
                                throws DOMException

      Description copied from interface: `Element`
      Adds a new attribute node. If an attribute with that name ( `nodeName`) is already present in the element, it is replaced by the new one. Replacing an attribute node by itself has no effect.
      To add a new attribute node with a qualified name and namespace URI, use the `setAttributeNodeNS` method.
      Specified by:
        `setAttributeNode` in interface `Element`
      Parameters:
        `newAttr` - The `Attr` node to add to the attribute list.
      Returns:
        If the `newAttr` attribute replaces an existing attribute, the replaced `Attr` node is returned, otherwise `null` is returned.
      Throws:
        `DOMException` - WRONG_DOCUMENT_ERR: Raised if `newAttr` was created from a different document than the one that created the element.
        NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
        INUSE_ATTRIBUTE_ERR: Raised if `newAttr` is already an attribute of another `Element` object. The DOM user must explicitly clone `Attr` nodes to re-use them in other elements.

    - #### setAttributeNodeNS

          public Attr setAttributeNodeNS(Attr newAttr)

      Equivalent to `setAttributeNode(newAttr)`.
      Specified by:
        `setAttributeNodeNS` in interface `Element`
      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.
      See Also:
        `getAttributeNodeNS(java.lang.String, java.lang.String)`

    - #### removeAttributeNode

          public Attr removeAttributeNode(Attr oldAttr)

      Description copied from interface: `Element`
      Removes the specified attribute node. If a default value for the removed `Attr` node is defined in the DTD, a new node immediately appears with the default value as well as the corresponding namespace URI, local name, and prefix when applicable. The implementation may handle default values from other schemas similarly but applications should use `Document.normalizeDocument()` to guarantee this information is up-to-date.
      Specified by:
        `removeAttributeNode` in interface `Element`
      Parameters:
        `oldAttr` - The `Attr` node to remove from the attribute list.
      Returns:
        The `Attr` node that was removed.

    - #### getElementsByTagName

          public NodeList getElementsByTagName(String name)

      Description copied from interface: `Element`
      Returns a `NodeList` of all descendant `Elements` with a given tag name, in document order.
      Specified by:
        `getElementsByTagName` in interface `Element`
      Parameters:
        `name` - The name of the tag to match on. The special value "*" matches all tags.
      Returns:
        A list of matching `Element` nodes.

    - #### getElementsByTagNameNS

          public NodeList getElementsByTagNameNS(String namespaceURI,
                                                 String localName)

      Equivalent to `getElementsByTagName(localName)`.
      Specified by:
        `getElementsByTagNameNS` in interface `Element`
      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`.

    - #### hasAttributes

          public boolean hasAttributes()

      Description copied from interface: `Node`
      Returns whether this node (if it is an element) has any attributes.
      Specified by:
        `hasAttributes` in interface `Node`
      Returns:
        Returns `true` if this node has any attributes, `false` otherwise.

    - #### hasAttribute

          public boolean hasAttribute(String name)

      Description copied from interface: `Element`
      Returns `true` when an attribute with a given name is specified on this element or has a default value, `false` otherwise.
      Specified by:
        `hasAttribute` in interface `Element`
      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.

    - #### hasAttributeNS

          public boolean hasAttributeNS(String namespaceURI,
                                        String localName)

      Equivalent to `hasAttribute(localName)`.
      Specified by:
        `hasAttributeNS` in interface `Element`
      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.

    - #### getLength

          public int getLength()

      Description copied from interface: `NodeList`
      The number of nodes in the list. The range of valid child node indices is 0 to `length-1` inclusive.
      Specified by:
        `getLength` in interface `NodeList`

    - #### item

          public Node item(int index)

      Description copied from interface: `NodeList`
      Returns the `index`th item in the collection. If `index` is greater than or equal to the number of nodes in the list, this returns `null`.
      Specified by:
        `item` in interface `NodeList`
      Parameters:
        `index` - Index into the collection.
      Returns:
        The node at the `index`th position in the `NodeList`, or `null` if that is not a valid index.

    - #### getUserObject

          public Object getUserObject()

      Returns the `Object` value associated with this node.
      Returns:
        the user `Object`.
      See Also:
        `setUserObject(java.lang.Object)`

    - #### setUserObject

          public void setUserObject(Object userObject)

      Sets the value associated with this node.
      Parameters:
        `userObject` - the user `Object`.
      See Also:
        `getUserObject()`

    - #### setIdAttribute

          public void setIdAttribute(String name,
                                     boolean isId)
                              throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `setIdAttribute` in interface `Element`
      Parameters:
        `name` - The name of the attribute.
        `isId` - Whether the attribute is a of type ID.
      Throws:
        `DOMException` - - always.

    - #### setIdAttributeNS

          public void setIdAttributeNS(String namespaceURI,
                                       String localName,
                                       boolean isId)
                                throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `setIdAttributeNS` in interface `Element`
      Parameters:
        `namespaceURI` - The namespace URI of the attribute.
        `localName` - The local name of the attribute.
        `isId` - Whether the attribute is a of type ID.
      Throws:
        `DOMException` - - always.

    - #### setIdAttributeNode

          public void setIdAttributeNode(Attr idAttr,
                                         boolean isId)
                                  throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `setIdAttributeNode` in interface `Element`
      Parameters:
        `idAttr` - The attribute node.
        `isId` - Whether the attribute is a of type ID.
      Throws:
        `DOMException` - - always.

    - #### getSchemaTypeInfo

          public TypeInfo getSchemaTypeInfo()
                                     throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `getSchemaTypeInfo` in interface `Element`
      Throws:
        `DOMException` - - always.

    - #### setUserData

          public Object setUserData(String key,
                                    Object data,
                                    UserDataHandler handler)
                             throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `setUserData` in interface `Node`
      Parameters:
        `key` - The key to associate the object to.
        `data` - The object to associate to the given key, or `null` to remove any existing association to that key.
        `handler` - The handler to associate to that key, or `null`.
      Returns:
        Returns the `DOMUserData` previously associated to the given key on this node, or `null` if there was none.
      Throws:
        `DOMException` - - always.

    - #### getUserData

          public Object getUserData(String key)
                             throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `getUserData` in interface `Node`
      Parameters:
        `key` - The key the object is associated to.
      Returns:
        Returns the `DOMUserData` associated to the given key on this node, or `null` if there was none.
      Throws:
        `DOMException` - - always.

    - #### getFeature

          public Object getFeature(String feature,
                                   String version)
                            throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `getFeature` in interface `Node`
      Parameters:
        `feature` - The name of the feature requested. Note that any plus sign "+" prepended to the name of the feature will be ignored since it is not significant in the context of this method.
        `version` - This is the version number of the feature to test.
      Returns:
        Returns an object which implements the specialized APIs of the specified feature and version, if any, or `null` if there is no object which implements interfaces associated with that feature. If the `DOMObject` returned by this method implements the `Node` interface, it must delegate to the primary core `Node` and not return results inconsistent with the primary core `Node` such as attributes, childNodes, etc.
      Throws:
        `DOMException` - - always.

    - #### isSameNode

          public boolean isSameNode(Node node)
                             throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `isSameNode` in interface `Node`
      Parameters:
        `node` - The node to test against.
      Returns:
        Returns `true` if the nodes are the same, `false` otherwise.
      Throws:
        `DOMException` - - always.

    - #### isEqualNode

          public boolean isEqualNode(Node node)
                              throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `isEqualNode` in interface `Node`
      Parameters:
        `node` - The node to compare equality with.
      Returns:
        Returns `true` if the nodes are equal, `false` otherwise.
      Throws:
        `DOMException` - - always.

    - #### lookupNamespaceURI

          public String lookupNamespaceURI(String prefix)
                                    throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `lookupNamespaceURI` in interface `Node`
      Parameters:
        `prefix` - The prefix to look for. If this parameter is `null`, the method will return the default namespace URI if any.
      Returns:
        Returns the associated namespace URI or `null` if none is found.
      Throws:
        `DOMException` - - always.

    - #### isDefaultNamespace

          public boolean isDefaultNamespace(String namespaceURI)
                                     throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `isDefaultNamespace` in interface `Node`
      Parameters:
        `namespaceURI` - The namespace URI to look for.
      Returns:
        Returns `true` if the specified `namespaceURI` is the default namespace, `false` otherwise.
      Throws:
        `DOMException` - - always.

    - #### lookupPrefix

          public String lookupPrefix(String namespaceURI)
                              throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `lookupPrefix` in interface `Node`
      Parameters:
        `namespaceURI` - The namespace URI to look for.
      Returns:
        Returns an associated namespace prefix if found or `null` if none is found. If more than one prefix are associated to the namespace prefix, the returned namespace prefix is implementation dependent.
      Throws:
        `DOMException` - - always.

    - #### getTextContent

          public String getTextContent()
                                throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `getTextContent` in interface `Node`
      Throws:
        `DOMException` - - always.

    - #### setTextContent

          public void setTextContent(String textContent)
                              throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `setTextContent` in interface `Node`
      Throws:
        `DOMException` - - always.

    - #### compareDocumentPosition

          public short compareDocumentPosition(Node other)
                                        throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `compareDocumentPosition` in interface `Node`
      Parameters:
        `other` - The node to compare against the reference node.
      Returns:
        Returns how the node is positioned relatively to the reference node.
      Throws:
        `DOMException` - - always.

    - #### getBaseURI

          public String getBaseURI()
                            throws DOMException

      This DOM Level 3 method is not supported for `IIOMetadataNode` and will throw a `DOMException`.
      Specified by:
        `getBaseURI` in interface `Node`
      Throws:
        `DOMException` - - always.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.