## Package com.icl.saxon.tree

This package defines the implementation of the Saxon tree structure.

See:
Description

Interface Summary
NodeFactory: Interface NodeFactory.

Class Summary
AttributeCollection: AttributeCollection is an implementation of the SAX2 interface Attributes that also provides the ability to manipulate namespaces and to convert attributes into Nodes.
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.
ElementWithAttributes: A node in the XML parse tree representing an XML element.
LineNumberMap: Line numbers are not held in nodes in the tree, because they are not usually needed.
NodeImpl: A node in the XML parse tree representing an XML element, character content, or attribute.
SystemIdMap: System IDs are not held in nodes in the tree, because they are usually the same for a whole document.
TreeBuilder: The Builder class is responsible for taking a stream of SAX events and constructing a Document tree.

Exception Summary
DOMExceptionImpl: DOM operations only raise exceptions in "exceptional" circumstances, i.e., when an operation is impossible to perform (either for logical reasons, because data is lost, or because the implementation has become unstable).

## Package com.icl.saxon.tree Description

This package defines the implementation of the Saxon tree structure. This structure is used to represent both the source document and the stylesheet.

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.

Also in this package is the Builder, used to construct the tree, the Stripper, used to strip whitespace nodes from the tree, and the NamePool, which contains a pool of Name objects, so that different nodes with the same name can share the same Name object.

Michael H. Kay
21 July 2000