Package net.sf.saxon.om
package net.sf.saxon.om
This package defines the interface to the Saxon tree structure. This structure is used to represent both the source document and the stylesheet. Essentially, this class represents Saxon's realization of the XPath data model.
The classes in the package are rather a miscellany. What they have in common is that
they describe the way the Saxon tree structure is accessed, in a way that it independent
of the two tree implementations (in packages net.sf.saxon.tree
and
net.sf.saxon.tinytree
).
Broadly speaking, the classes fall into four categories:
- Interface classes: DocumentInfo, NodeInfo, Item, ValueRepresentation. These describe the interface offered by the object model to the rest of the system, including the application.
- Iterator classes: SequenceIterator, AxisIterator, ArrayIterator, EmptyIterator, SingletonIterator, and others. These classes provide mechanisms for iterating over sequences. The most general, and the one which applications are most likely to use, is the SequenceIterator interface itself. AxisIterator is a specialization of this interface whose main difference is that it cannot throw exceptions. The other classes are implementations of SequenceIterator for use in particular circumstances.
- Shared implementation classes: DocumentPool, NamePool, Navigator, XMLChar.
These contain functionality that is shared between the various tree implementations. (However, there is
also some shared functionality in the
net.sf.saxon.tree
package). These classes are not generally needed by applications, with the exception of NamePool, which complex applications may need to manipulate. - Information classes: Axis, NamespaceConstant. These contain constants.
-
ClassDescriptionRepresents the path from the root of an XDM tree to a specific node, as a sequence of (name, position) pairsInner class representing one step in the pathA functional interface that simply encapsulates a callback action of any kind, allowing the action to fail with an XPathException.A whitespace stripping rule that strips all elements unless xml:space indicates that whitespace should be preserved.A sequence of atomic values, implemented using an underlying arrayList.An integer that can be incremented atomically with thread safetyInterface representing a sequence of atomic values.Interface implemented by an iterator that can deliver atomized results.This class contains immutable information about an attribute.AttributeInfo.Deleted is a subclass used to mark a deleted attribute (in XQuery Update)AttributeMap represents an immutable collection of attributes available on a particular element node.An axis, that is a direction of navigation in the document structure.An implementation of NodeName that encapsulates an integer fingerprint, a string prefix, and a reference to the NamePool from which the fingerprint was allocated.Non-instantiable class to define options for the
NodeInfo.copy(net.sf.saxon.event.Receiver, int, net.sf.saxon.s9api.Location)
methodThis class encapsulates a string used as the value of the document-uri() property of a document, together with a normalized representation of the string used for equality comparisons.An object representing the collection of documents handled during a single transformation.The Durability of a node affects how it is handled for the purposes of caching by memo functions.An implementation of AtomicSequence that contains no items.An implementation of AttributeMap representing an empty AttributeMapA couple of utility methods for handling EnumSet objects.A QName triple (prefix, URI, local) with the additional ability to hold an integer fingerprint.An iterator that maintains the values of position() and current(), typically implemented as a wrapper over an iterator which does not maintain these values itself.An iterator that maintains the values of position() and current(), as a wrapper over an iterator which does not maintain these values itself.XDM 3.0 introduces a third kind of item, beyond nodes and atomic values: the function.A generic (model-independent) implementation of the TreeInfo interface, suitable for use with all tree models where the object representing the document node does not itself act as the TreeInfo implementationThe Genre of an item is the top-level classification of its item type: one of Atomic, Node, Function, Map, Array, or ExternalA value that exists in memory and that can be directly addressedA class that wraps aGroundedValue
as a JavaIterable
The IdentityComparable class provides a way to compare objects for strong equality.A whitespace stripping rule that strips whitespace text node children from all elements having an element-only content model, regardless of the value of the xml:space attributeAn Item is an object that can occur as a member of a sequence.ItemConsumer<T extends Item>A FunctionalInterface for any method that processes individual items, and which may generate exceptions.Class IteratorWrapper - provides a SequenceIterator over a Java Iterator.An implementation of AttributeMap suitable for larger collections of attributes (say, more than five).A sequence that wraps an iterator, without being materialized.A Sequence implementation that represents a lazy evaluation of a supplied iterator.A ProgressiveIterator starts by reading any items already held in the reservoir; when the reservoir is exhausted, it reads further items from the inputIterator, copying them into the reservoir as they are read.Interface representing the document node of a mutable documentAn extension of the NodeInfo interface defining a node that can be updated.The NameChecker performs validation and analysis of XML names.An implementation of NodeName that gets the name of an existing NodeInfo object.A NamePool holds a collection of expanded names, each containing a namespace URI, and a local name.Unchecked Exception raised when some limit in the design of the name pool is exceededRepresents the binding of a prefix to a URI.Represents a set of namespace bindingsHolds a set of namespace bindings as a simple immutable map from prefixes to URIs.Holds a set of namespace bindings as a simple immutable map from prefixes to URIs.Abstract class that supports lookup of a lexical QName to get the expanded QName.This class represents a URI used as a namespace name.The NodeInfo interface represents a node in Saxon's implementation of the XPath 2.0 data model.This interface represents a node name.A JAXP Source object representing a SaxonNodeInfo
.A whitespace stripping rule that retains all whitespace text nodesAn implementation of NodeName for the common case of a name in no namespaceA set of declared notations (in the sense of XSD xs:notation)A sequence containing exactly one item.A value that is a sequence containing one or more items.A prefix pool maintains a two-way mapping from namespace prefixes (as strings) to integer prefix codes.A QNameException represents an error condition whereby a QName (for example a variable name or template name) is malformedParser to handle QNames in either lexical QName or EQName syntax, including resolving any prefix against a URIResolver.A whitespace stripping rule that strips elected elements unless xml:space indicates that whitespace should be preserved.This interface represents an XDM Value, that is, a sequence of items.A SequenceIterator is used to iterate over any XPath 2 sequence (of values or nodes).Utility class for manipulating sequences.An implementation of AttributeMap for use when there is exactly one attributeAn implementation of AttributeMap suitable for small collections of attributes (typically, up to five).Interface for deciding whether a particular element is to have whitespace text nodes strippedWell-known names used in XSLT processing.This class provides an economical representation of a QName triple (prefix, URI, and localname).A whitespace stripping rule that strips whitespace according to the rules defined for XSLT stylesheetsThis interface represents information about a tree as a whole.A TreeModel represents an implementation of the Saxon NodeInfo interface, which itself is essentially an implementation of the XDM model defined in W3C specifications (except that Saxon's NodeInfo understands the 13 XPath axes, rather than merely supporting parent and child properties).ZeroOrMore<T extends Item>A sequence value implemented extensionally.A value that is a sequence containing zero or one items.