# Package net.sf.saxon.tree.util

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

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  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 both the SAX2 interface Attributes and the Saxon equivalent AttributeCollection.
  DiagnosticNamePool | This class provides a diagnostic wrapper for the real NamePool.
  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.
  NamespaceIterator | This class provides an iterator over the namespace codes representing the in-scope namespaces of any node.
  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.BaseEnumeration | BaseEnumeration is an abstract implementation of an AxisIterator, it simplifies the implementation of the underlying AxisIterator by requiring it to provide only two methods: advance(), and getAnother().
  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 | An iterator over the descendant or descendant-or-self axis

## Package net.sf.saxon.tree.util Description

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.

Michael H. Kay
Saxonica Limited
28 November 2011

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.