# Package net.sf.saxon.tree.util

This package defines a number of utility and helper classes for implementing tree models.

The `Navigator` class provides many utility methods, for example to implement various axes in terms of other axes, and to support numbering.

The `Orphan` class is a general-purpose implementation of a node with no parent, no attributes, and no children.

- Interface Summary
  Interface | Description
  --- | ---
  CharSequenceConsumer | Interface that accepts a string in the form of a sequence of CharSequences, which are conceptually concatenated (though in some implementations, the final string may never be materialized in memory)
  SteppingNode<N extends SteppingNode> | This interface can be implemented by an implementation of NodeInfo to take advantage of a generic implementation of the descendant axis found in class `SteppingNavigator`

- Class Summary
  Class | Description
  --- | ---
  AttributeCollectionImpl | AttributeCollectionImpl is an implementation of the SAX2 interface Attributes.
  DocumentNumberAllocator | This class (which has one instance per Configuration) is used to allocate unique document numbers.
  FastStringBuffer | A simple implementation of a class similar to StringBuffer.
  NamespaceResolverWithDefault | This class is a NamespaceResolver that modifies an underyling NamespaceResolver by changing the mapping of the null prefix to be a specified namespace, rather than the one used by the underlying namespace resolver.
  Navigator | The Navigator class provides helper classes for navigating a tree, irrespective of its implementation
  Navigator.AncestorEnumeration | General-purpose implementation of the ancestor and ancestor-or-self axes
  Navigator.AxisFilter | AxisFilter is an iterator that applies a NodeTest filter to the nodes returned by an underlying AxisIterator.
  Navigator.DescendantEnumeration | General-purpose implementation of the descendant and descendant-or-self axes, in terms of the child axis.
  Navigator.EmptyTextFilter | EmptyTextFilter is an iterator that applies removes any zero-length text nodes returned by an underlying AxisIterator.
  Navigator.FollowingEnumeration | General purpose implementation of the following axis, in terms of the ancestor, child, and following-sibling axes
  Navigator.PrecedingEnumeration | Helper method to iterate over the preceding axis, or Saxon's internal preceding-or-ancestor axis, by making use of the ancestor, descendant, and preceding-sibling axes.
  Orphan | A node (implementing the NodeInfo interface) representing an attribute, text node, comment, processing instruction, or namespace that has no parent (and of course no children).
  ProcInstParser | ProcInstParser is used to parse pseudo-attributes within Processing Instructions.
  SteppingNavigator | The SteppingNavigator is a utility class containing methods to assist with navigating a tree whose nodes implement the `SteppingNode` interface
  SteppingNavigator.DescendantAxisIterator<N extends SteppingNode<N>> | An iterator over the descendant or descendant-or-self axis