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.
  • Class
    Description
    Represents the path from the root of an XDM tree to a specific node, as a sequence of (name, position) pairs
    Inner class representing one step in the path
    A 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 safety
    Interface 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) method
    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.
    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 AttributeMap
    A 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 implementation
    The Genre of an item is the top-level classification of its item type: one of Atomic, Node, Function, Map, Array, or External
    A value that exists in memory and that can be directly addressed
    A class that wraps a GroundedValue as a Java Iterable
    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 attribute
    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.
    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 document
    An 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 exceeded
    Represents the binding of a prefix to a URI.
    Represents a set of namespace bindings
    Holds 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 Saxon NodeInfo.
    A whitespace stripping rule that retains all whitespace text nodes
    An implementation of NodeName for the common case of a name in no namespace
    A set of declared notations (in the sense of XSD xs:notation)
    One<T extends Item>
    A sequence containing exactly one item.
    OneOrMore<T extends 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 malformed
    Parser 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 attribute
    An 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 stripped
    Well-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 stylesheets
    This 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.
    ZeroOrOne<T extends Item>
    A value that is a sequence containing zero or one items.