Package net.sf.saxon.tree.linked

This package defines the implementation of the so-called "linked tree" structure. This structure can be used to represent both the source document and the stylesheet. It is no longer the default structure for source documents, but is always used for stylesheets and for schema documents, because it allows each element to be represented by a subclass of Element with application-specific functionality.

The classes represent the various kinds of node on the tree. Most of them are not visible outside the package, with the notable exception of ElementImpl, which can be subclassed to contain properties for a particular kind of element. This capability is exploited especially in the stylesheet tree.

As well as classes representing nodes, there are classes representing iterators over the various XPath axes, for example ChildEnumeration and PrecedingEnumeration.

The TreeBuilder performs the work of constructing a tree, from a sequence of SAX-like Receiver events.

The package also contains some helper classes such as SystemIdMap and LineNumberMap that are used also by the TinyTree implementation.