Package nu.xom

Class Namespace


  • public final class Namespace
    extends Node

    Represents a namespace in scope. It is used by XOM's XPath implementation for the namespace axis. However, it is not really part of the XOM data model. Namespace objects are only created as needed when evaluating XPath. While a namespace node has a parent element (which may be null), that element does not know about these namespace nodes and cannot remove them. (This is an inconsistency in the XPath data model, and is shared with attributes which also have parents but are not children.)

    Version:
    1.1b3
    Author:
    Elliotte Rusty Harold
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static String XML_NAMESPACE
      Namespace URI specified for xml prefix
    • Constructor Summary

      Constructors 
      Constructor Description
      Namespace​(String prefix, String URI, Element parent)
      Create a new namespace node.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Node copy()
      Returns a copy of this namespace which has the same prefix and URI, but no parent.
      void detach()
      Removes this namespace node from its parent.
      Node getChild​(int position)
      Throws IndexOutOfBoundsException because namespaces do not have children.
      int getChildCount()
      Returns 0 because namespaces do not have children.
      String getPrefix()
      Returns the namespace prefix, or the empty string if this node is the default namespace.
      String getValue()
      Returns the namespace URI.
      String toString()
      Returns a string form of the Namespace suitable for debugging and diagnosis.
      String toXML()
      Returns a string containing the actual XML form of the namespace declaration represented by this object.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • XML_NAMESPACE

        public static final String XML_NAMESPACE
        Namespace URI specified for xml prefix
        See Also:
        Constant Field Values
    • Constructor Detail

      • Namespace

        public Namespace​(String prefix,
                         String URI,
                         Element parent)

        Create a new namespace node.

        Parameters:
        prefix - the prefix for the namespace; may be the empty string or a non-colonized name
        URI - the namespace URI
        parent - the element that possesses this namespace node
        Throws:
        MalformedURIException - if URI is not an RFC 3986 URI reference
        IllegalNameException - if
        • The prefix is xmlns.
        • The prefix is not the empty string, and the URI is null or the empty string.
        NamespaceConflictException - if
        • The prefix is the empty string, and the URI is null or the empty string.
        • The prefix is xml, and the URI is not http://www.w3.org/XML/1998/namespace.
        • The prefix is not xml, and the URI is http://www.w3.org/XML/1998/namespace.
    • Method Detail

      • getPrefix

        public String getPrefix()

        Returns the namespace prefix, or the empty string if this node is the default namespace.

        Returns:
        the namespace prefix
      • getValue

        public String getValue()

        Returns the namespace URI.

        Specified by:
        getValue in class Node
        Returns:
        the namespace URI
      • getChild

        public Node getChild​(int position)

        Throws IndexOutOfBoundsException because namespaces do not have children.

        Specified by:
        getChild in class Node
        Parameters:
        position - the index of the child node to return
        Returns:
        never returns because document type declarations do not have children. Always throws an exception.
        Throws:
        IndexOutOfBoundsException - because document type declarations do not have children
      • getChildCount

        public int getChildCount()

        Returns 0 because namespaces do not have children.

        Specified by:
        getChildCount in class Node
        Returns:
        zero
      • copy

        public Node copy()

        Returns a copy of this namespace which has the same prefix and URI, but no parent.

        Specified by:
        copy in class Node
        Returns:
        a copy of this Namespace that is not part of a document
      • detach

        public void detach()

        Removes this namespace node from its parent.

        Overrides:
        detach in class Node
        See Also:
        Node.detach()
      • toXML

        public String toXML()

        Returns a string containing the actual XML form of the namespace declaration represented by this object. For example, xmlns:pre="http://www.example.org/".

        Specified by:
        toXML in class Node
        Returns:
        a String containing an XML namespace declaration
      • toString

        public String toString()

        Returns a string form of the Namespace suitable for debugging and diagnosis. It deliberately does not return an actual XML namespace declaration.

        Overrides:
        toString in class Object
        Returns:
        a string representation of this object