The Saxon package is a collection of tools for processing XML documents. The main components are:
So you can use Saxon by writing XSLT stylesheets, by writing XQuery queries by writing Java applications, or by combinations of the approaches.
Saxon implements the XSLT 1.0 recommendation, including XPath 1.0, in its entirety. Saxon 7.x also implements most of the features defined in the XSLT 2.0, XPath 2.0, and XQuery 1.0 working drafts, in particular:
xsl:result-document
if
, for
,
some
and every
Saxon does not yet implement all of XSLT 2.0, XPath 2.0, or XQuery 1.0. The most notable omission is support for XML Schema data typing. Most of the important built-in types are supported, but not user-defined types. Development of a schema-aware version of Saxon is well advanced; this will be available as a commercial product from Saxonica Limited.
In addition, Saxon provides an extensive library of extension elements and extension functions, all implemented in conformance with the XSLT Recommendation to ensure that portable stylesheets can be written. These include the EXSLT extension libraries common, sets, math, and dates-and-times. Many of these extensions were pioneered in Saxon and have since become available in other products.
These functions are in general accessible from XQuery as well as XSLT, except where they depend on stylesheet information.
Saxon also provides an API allowing a Java application to execute XPath and XQuery expressions and process the results. The XPath API is modelled on the proposed DOM Level 3 API, but adapted to the requirements of XPath 2.0. A separate API is available for XQuery 1.0, reflecting differences in the way the context is set up.