Package net.sf.saxon.s9api

This package provides a Java API for Saxon that hides as much as possible of the detail of the implementation.

See:
          Description

Interface Summary
Destination A Destination represents a place where XML can be sent.
 

Class Summary
DocumentBuilder A document builder holds properties controlling how a Saxon document tree should be built, and provides methods to invoke the tree construction.
DOMDestination This class represents a Destination (for example, the destination of the output of a transformation) in which the results are written to a newly constructed DOM tree in memory.
ItemType An item type, as defined in the XPath/XQuery specifications.
ItemTypeFactory This class is used for creating ItemType objects.
Processor The Processor class serves three purposes: it allows global Saxon configuration options to be set; it acts as a factory for generating XQuery, XPath, and XSLT compilers; and it owns certain shared resources such as the Saxon NamePool and compiled schemas.
QName The QName class represents an instance of xs:QName, as defined in the XPath 2.0 data model.
SAXDestination This class represents a Destination (for example, the destination of the output of a transformation) in which events representing the XML document are sent to a user-supplied SAX2 ContentHandler, as if the ContentHandler were receiving the document directly from an XML parser.
SchemaManager  
SchemaValidator A SchemaValidator is an object that is used for validating instance documents against a schema.
Serializer A Serializer takes a tree representation of XML and turns it into lexical XML markup.
XdmAtomicValue The class XdmAtomicValue represents an item in an XPath 2.0 sequence that is an atomic value.
XdmDestination An XdmDestination is a Destination in which an XdmNode is constructed to hold the output of a query or transformation: that is, a tree using Saxon's implementation of the XDM data model
XdmEmptySequence The class XdmEmptySequence represents an empty sequence in the XDM Data Model.
XdmItem The class XdmItem represents an item in a sequence, as defined by the XDM data model.
XdmNode This class represents a node in the XDM data model.
XdmSequenceIterator An iterator over an XPath sequence.
XdmValue An value in the XDM data model.
XPathCompiler An XPathCompiler object allows XPath queries to be compiled.
XPathExecutable An XPathExecutable represents the compiled form of an XPath expression.
XPathSelector An XPathSelector represents a compiled and loaded XPath expression ready for execution.
XQueryCompiler An XQueryCompiler object allows XQuery 1.0 queries to be compiled.
XQueryEvaluator An XQueryEvaluator represents a compiled and loaded stylesheet ready for execution.
XQueryExecutable An XQueryExecutable represents the compiled form of a query.
XsltCompiler An XsltCompiler object allows XSLT 2.0 stylesheets to be compiled.
XsltExecutable An XsltExecutable represents the compiled form of a stylesheet.
XsltTransformer An XsltTransformer represents a compiled and loaded stylesheet ready for execution.
 

Enum Summary
Axis This is an enumeration class containaing constants representing the thirteen XPath axes
OccurrenceIndicator Represents one of the possible occurrence indicators in a SequenceType.
Serializer.Property  
WhitespaceStrippingPolicy WhitespaceStrippingPolicy is an enumeration class defining the possible policies for handling whitespace text nodes in a source document.
XdmNodeKind Enumeration class defining the seven kinds of node defined in the XDM model
 

Exception Summary
SaxonApiException An exception thrown by the Saxon s9api API.
SaxonApiUncheckedException An unchecked exception thrown by the Saxon API.
 

Package net.sf.saxon.s9api Description

This package provides a Java API for Saxon that hides as much as possible of the detail of the implementation. However, the API architecture faithfully reflects the internal architecture of the Saxon product, unlike standard APIs such as JAXP and XQJ which in many cases force compromises in the design of the application.

An application starts by loading a Processor, which allows configuration options to be set. As far as possible, an application should instantiate a single Processor.

The interfaces for XSLT, XQuery, and XPath processing all follow the same pattern. There is a three-stage execution model: first a compiler is created using a factory method in the Processor object. The compiler holds compile-time options and the static context information. Then the compiler's compile() method is called to create an executable, a representation of the compiled stylesheet, query, or expression. This is thread-safe and immutable once created. To run the query or transformation, first call the load() method to create a run-time object called variously an XsltTransformer, XQueryEvaluator, or XPathSelector. This holds run-time context information such as parameter settings and the initial context node; the object is therefore not shareable and should only be run in a single thread; indeed it should normally only be used once. This object also provides methods allowing the transformation or query to be executed.

In the schema-aware product the Processor owns a SchemaManager that holds the cache of schema components and can be used to load new schema components from source schema documents. It can also be used to create a SchemaValidator, which in turn is used to validate instance documents.

Source documents can be constructed using a DocumentBuilder, which holds all the options and parameters to control document building.

The output of a transformation, or of any other process that generates an XML tree, can be sent to a Destination. There are a number of implementations of this interface, including a Serializer which translates the XML document tree into lexical XML form.

There are classes to represent the objects of the XDM data model, including XDMValue, XDMItem, XDMNode, and XDMAtomicValue.

The s9api interface is designed to take advantage of Java 5 constructs such as generics and iterables. Although the main Saxon run-time continues to work under JDK 1.4, the s9api interface cannot be used without upgrading to Java 5. For this reason it is in a separate JAR file.


Michael H. Kay
Saxonica Limited
27 September 2007



Copyright (C) Michael H. Kay. All rights reserved.