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.
-
Interface Summary Interface Description Action A functional interface that simply encapsulates a callback action of any kind, allowing the action to fail with an XPathException.AtomicSequence Interface representing a sequence of atomic values.AtomizedValueIterator Interface implemented by an iterator that can deliver atomized results.AttributeMap AttributeMap represents an immutable collection of attributes available on a particular element node.FocusIterator 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.FunctionItem XDM 3.0 introduces a third kind of item, beyond nodes and atomic values: the function.GroundedValue A value that exists in memory and that can be directly addressedIdentityComparable The IdentityComparable class provides a way to compare objects for strong equality.Item An 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.MutableDocumentInfo Interface representing the document node of a mutable documentMutableNodeInfo An extension of the NodeInfo interface defining a node that can be updated.NamespaceBindingSet Represents a set of namespace bindingsNamespaceResolver Abstract class that supports lookup of a lexical QName to get the expanded QName.NodeInfo The NodeInfo interface represents a node in Saxon's implementation of the XPath 2.0 data model.NodeName This interface represents a node name.NotationSet A set of declared notations (in the sense of XSD xs:notation)Sequence This interface represents an XDM Value, that is, a sequence of items.SequenceIterator A SequenceIterator is used to iterate over any XPath 2 sequence (of values or nodes).SpaceStrippingRule Interface for deciding whether a particular element is to have whitespace text nodes strippedTreeInfo This interface represents information about a tree as a whole. -
Class Summary Class Description AbsolutePath Represents the path from the root of an XDM tree to a specific node, as a sequence of (name, position) pairsAbsolutePath.PathElement Inner class representing one step in the pathAllElementsSpaceStrippingRule A whitespace stripping rule that strips all elements unless xml:space indicates that whitespace should be preserved.AtomicArray A sequence of atomic values, implemented using an underlying arrayList.AtomicCounter An integer that can be incremented atomically with thread safetyAttributeInfo This class contains immutable information about an attribute.AttributeInfo.Deleted AttributeInfo.Deleted is a subclass used to mark a deleted attribute (in XQuery Update)AxisInfo An axis, that is a direction of navigation in the document structure.CodedName An implementation of NodeName that encapsulates an integer fingerprint, a string prefix, and a reference to the NamePool from which the fingerprint was allocated.CopyOptions Non-instantiable class to define options for theNodeInfo.copy(net.sf.saxon.event.Receiver, int, net.sf.saxon.s9api.Location)
methodDocumentKey This 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.DocumentPool An object representing the collection of documents handled during a single transformation.EmptyAtomicSequence An implementation of AtomicSequence that contains no items.EmptyAttributeMap An implementation of AttributeMap representing an empty AttributeMapEnumSetTool A couple of utility methods for handling EnumSet objects.FingerprintedQName A QName triple (prefix, URI, local) with the additional ability to hold an integer fingerprint.FocusTrackingIterator An iterator that maintains the values of position() and current(), as a wrapper over an iterator which does not maintain these values itself.GenericTreeInfo 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 implementationGroundedValueAsIterable A class that wraps aGroundedValue
as a JavaIterable
IgnorableSpaceStrippingRule 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 attributeIteratorWrapper Class IteratorWrapper - provides a SequenceIterator over a Java Iterator.LargeAttributeMap An implementation of AttributeMap suitable for larger collections of attributes (say, more than five).LazySequence A sequence that wraps an iterator, without being materialized.MemoSequence A Sequence implementation that represents a lazy evaluation of a supplied iterator.MemoSequence.ProgressiveIterator 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.NameChecker The NameChecker performs validation and analysis of XML names.NameOfNode An implementation of NodeName that gets the name of an existing NodeInfo object.NamePool A NamePool holds a collection of expanded names, each containing a namespace URI, and a local name.NamespaceBinding Represents the binding of a prefix to a URI.NamespaceDeltaMap Holds a set of namespace bindings as a simple immutable map from prefixes to URIs.NamespaceMap Holds a set of namespace bindings as a simple immutable map from prefixes to URIs.NamespaceUri This class represents a URI used as a namespace name.NodeSource A JAXP Source object representing a SaxonNodeInfo
.NoElementsSpaceStrippingRule A whitespace stripping rule that retains all whitespace text nodesNoNamespaceName An implementation of NodeName for the common case of a name in no namespaceOne<T extends Item> A sequence containing exactly one item.OneOrMore<T extends Item> A value that is a sequence containing one or more items.PrefixPool A prefix pool maintains a two-way mapping from namespace prefixes (as strings) to integer prefix codes.QNameParser Parser to handle QNames in either lexical QName or EQName syntax, including resolving any prefix against a URIResolver.SelectedElementsSpaceStrippingRule A whitespace stripping rule that strips elected elements unless xml:space indicates that whitespace should be preserved.SequenceTool Utility class for manipulating sequences.SingletonAttributeMap An implementation of AttributeMap for use when there is exactly one attributeSmallAttributeMap An implementation of AttributeMap suitable for small collections of attributes (typically, up to five).StandardNames Well-known names used in XSLT processing.StructuredQName This class provides an economical representation of a QName triple (prefix, URI, and localname).StylesheetSpaceStrippingRule A whitespace stripping rule that strips whitespace according to the rules defined for XSLT stylesheetsTreeModel 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.ZeroOrOne<T extends Item> A value that is a sequence containing zero or one items. -
Enum Summary Enum Description Durability The Durability of a node affects how it is handled for the purposes of caching by memo functions.Genre The Genre of an item is the top-level classification of its item type: one of Atomic, Node, Function, Map, Array, or External -
Exception Summary Exception Description NamePool.NamePoolLimitException Unchecked Exception raised when some limit in the design of the name pool is exceededQNameException A QNameException represents an error condition whereby a QName (for example a variable name or template name) is malformed