Class ElementOverNodeInfo

java.lang.Object
net.sf.saxon.dom.NodeOverNodeInfo
net.sf.saxon.dom.ElementOverNodeInfo
All Implemented Interfaces:
Element, Node

public class ElementOverNodeInfo extends NodeOverNodeInfo implements Element
This class is an implementation of the DOM Element class that wraps a Saxon NodeInfo representation of an element node.

The class provides read-only access to the tree; methods that request updates all fail with an UnsupportedOperationException.

Note that contrary to the DOM specification, this implementation does not expose namespace declarations as attributes.

  • Constructor Details

    • ElementOverNodeInfo

      public ElementOverNodeInfo()
  • Method Details

    • getTagName

      public String getTagName()
      The name of the element (DOM interface).
      Specified by:
      getTagName in interface Element
    • getElementsByTagName

      public NodeList getElementsByTagName(String name)
      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) throws DOMException
      Returns a NodeList of all the descendant Elements with a given local name and namespace URI in document order.
      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.
      Throws:
      DOMException - NOT_SUPPORTED_ERR: May be raised if the implementation does not support the feature "XML" and the language exposed through the Document does not support XML Namespaces (such as [HTML 4.01]).
      Since:
      DOM Level 2
    • getAttributes

      public NamedNodeMap getAttributes()
      Return a NamedNodeMap containing the attributes of this node (if it is an Element) or null otherwise. Note that namespace declarations are treated as attributes.
      Specified by:
      getAttributes in interface Node
      Overrides:
      getAttributes in class NodeOverNodeInfo
    • getAttribute

      public String getAttribute(String name)
      Retrieves an attribute value by name.
      Specified by:
      getAttribute in interface Element
      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 Attr getAttributeNode(String name)
      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.
    • setAttributeNode

      public Attr setAttributeNode(Attr newAttr) throws DOMException
      Adds a new attribute node. Always fails
      Specified by:
      setAttributeNode in interface Element
      Throws:
      DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    • removeAttribute

      public void removeAttribute(String oldAttr) throws DOMException
      Removes the specified attribute. Always fails
      Specified by:
      removeAttribute in interface Element
      Throws:
      DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    • removeAttributeNode

      public Attr removeAttributeNode(Attr oldAttr) throws DOMException
      Removes the specified attribute node. Always fails
      Specified by:
      removeAttributeNode in interface Element
      Throws:
      DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    • getAttributeNS

      public String getAttributeNS(String namespaceURI, String localName)
      Retrieves an attribute value by local name and namespace URI. This implementation does not expose namespace nodes as attributes.
      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.
      Since:
      DOM Level 2
    • setAttribute

      public void setAttribute(String name, String value) throws DOMException
      Adds a new attribute. Always fails
      Specified by:
      setAttribute in interface Element
      Parameters:
      name - The name of the attribute to create or alter.
      value - Value to set in string form.
      Throws:
      DOMException - INVALID_CHARACTER_ERR: Raised if the specified name is not an XML name according to the XML version in use specified in the Document.xmlVersion attribute.
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    • setAttributeNS

      public void setAttributeNS(String namespaceURI, String qualifiedName, String value) throws DOMException
      Adds a new attribute. Always fails.
      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.
      Throws:
      DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    • removeAttributeNS

      public void removeAttributeNS(String namespaceURI, String localName) throws DOMException
      Removes an attribute by local name and namespace URI. Always fails
      Specified by:
      removeAttributeNS in interface Element
      Throws:
      DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
      Since:
      DOM Level 2
    • getAttributeNodeNS

      public Attr getAttributeNodeNS(String namespaceURI, String localName)
      Retrieves an Attr node by local name and namespace URI. This implementation does not expose namespace nodes as attributes.
      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.
      Since:
      DOM Level 2
    • setAttributeNodeNS

      public Attr setAttributeNodeNS(Attr newAttr) throws DOMException
      Add a new attribute. Always fails.
      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.
      Throws:
      DOMException -
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
      Since:
      DOM Level 2
    • hasAttribute

      public 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.
      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.
      Since:
      DOM Level 2
    • hasAttributeNS

      public boolean hasAttributeNS(String namespaceURI, 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.
      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.
      Since:
      DOM Level 2
    • setIdAttribute

      public void setIdAttribute(String name, boolean isId) throws UnsupportedOperationException
      Mark an attribute as an ID. Always fails.
      Specified by:
      setIdAttribute in interface Element
      Throws:
      UnsupportedOperationException - always
    • setIdAttributeNS

      public void setIdAttributeNS(String namespaceURI, String localName, boolean isId) throws UnsupportedOperationException
      Mark an attribute as an ID. Always fails.
      Specified by:
      setIdAttributeNS in interface Element
      Throws:
      UnsupportedOperationException - always
    • setIdAttributeNode

      public void setIdAttributeNode(Attr idAttr, boolean isId) throws UnsupportedOperationException
      Mark an attribute as an ID. Always fails.
      Specified by:
      setIdAttributeNode in interface Element
      Throws:
      UnsupportedOperationException - always
    • getSchemaTypeInfo

      public TypeInfo getSchemaTypeInfo()
      Get the schema type information for this node.
      Specified by:
      getSchemaTypeInfo in interface Element
      Returns:
      the type information. Returns null for an untyped node.