Class NamespaceIterator

java.lang.Object
net.sf.saxon.tree.util.NamespaceIterator
All Implemented Interfaces:
Iterator<NamespaceBinding>

public class NamespaceIterator extends Object implements Iterator<NamespaceBinding>
This class provides an iterator over the namespace codes representing the in-scope namespaces of any node. It relies on nodes to implement the method NodeInfo.getDeclaredNamespaces(net.sf.saxon.om.NamespaceBinding[]).

The result does not include the XML namespace.

  • Field Details

  • Method Details

    • iterateNamespaces

      public static Iterator<NamespaceBinding> iterateNamespaces(NodeInfo element)
      Factory method: create an iterator over the in-scope namespace codes for an element
      Parameters:
      element - the element (or other node) whose in-scope namespaces are required. If this is not an element, the result will be an empty iterator
      Returns:
      an iterator over the namespace codes. A namespace code is an integer that represents a prefix-uri binding; the prefix and URI can be obtained by reference to the name pool. This iterator will represent all the in-scope namespaces, without duplicates, and respecting namespace undeclarations. It does not include the XML namespace.
    • sendNamespaces

      public static void sendNamespaces(NodeInfo element, Receiver receiver) throws XPathException
      Send all the in-scope namespaces for a node (except the XML namespace) to a specified receiver
      Parameters:
      element - the element in question (the method does nothing if this is not an element)
      receiver - the receiver to which the namespaces are notified
      Throws:
      XPathException
    • hasNext

      public boolean hasNext()
      Specified by:
      hasNext in interface Iterator<NamespaceBinding>
    • next

      public NamespaceBinding next()
      Specified by:
      next in interface Iterator<NamespaceBinding>
    • remove

      public void remove()
      Specified by:
      remove in interface Iterator<NamespaceBinding>