# Package net.sf.saxon.tree.linked

This package defines the implementation of the so-called "standard tree" structure.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  NodeFactory | Interface NodeFactory.

- Class Summary
  Class | Description
  --- | ---
  DocumentImpl | A node in the XML parse tree representing the Document itself (or equivalently, the root node of the Document).
  ElementImpl | ElementImpl implements an element with no attributes or namespace declarations.
  LineNumberMap | Line numbers are not held in nodes in the tree, because they are not usually needed.
  LinkedBuilderMonitor | Monitor construction of a TinyTree.
  LinkedTreeBuilder | The LinkedTreeBuilder class is responsible for taking a stream of Receiver events and constructing a Document tree using the linked tree implementation.
  NodeImpl | A node in the "linked" tree representing any kind of node except a namespace node.
  SystemIdMap | System IDs are not held in nodes in the tree, because they are usually the same for a whole document.
  TextImpl | A node in the XML parse tree representing character content

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

This package defines the implementation of the so-called "standard 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.

Michael H. Kay
Saxonica Limited
9 February 2005

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