Michael Kay has released version 9.0 of Saxon, his XSLT 2.0 and XQuery processor for Java and .NET. This is a bug fix release. According to Kay,
There is a new Java API, called s9api. Existing APIs remain supported.
The command line interfaces have received a revamp, while retaining backwards compatibility for most options.
The schema processor now supports assertions, as defined in XML Schema 1.1.
A new extension function allows multiple document output in XQuery.
It is now possible to save a compiled schema (the schema component model) as XML.
There is a new model for pull-based evaluation of queries., improving the ability to integrate into a pull-based pipeline architecture.
The latest draft of the XQJ specification (XQuery API for Java) is implemented
Number and date formatting has been added for a number of additional European languages including Belgian French, Flemish, Dutch, Danish, Swedish, and Italian
A number of new optimizations have been introduced. These include function and variable inlining, wider use of automatic indexing, wider use of tail call optimization, hashing for large xsl:choose expressions, and a speed-up of the DOM interface.
Document projection analyzes a query and discards the parts of the source tree that are not needed to answer the query, giving a significant saving in tree-building time and memory.
Optimized expression trees can now be output ("explained") in an XML format, making it amenable to processing or graphical rendition.
Please note that queries compiled into Java code are not backwards-compatible at this release; they must be recompiled.
Saxon is published in two versions for both of which Java 1.4 or later (or .NET) is required. Saxon 9.0B is an open source product published under the Mozilla Public License 1.0 that "implements the 'basic' conformance level for XSLT 2.0 and XQuery." Saxon 9.0 SA is a £250.00 payware version that "allows stylesheets and queries to import an XML Schema, to validate input and output trees against a schema, and to select elements and attributes based on their schema-defined type. Saxon-SA also incorporates a free-standard XML Schema validator. In addition Saxon-SA incorporates some advanced extensions not available in the Saxon-B product. These include a try/catch capability for catching dynamic errors, improved error diagnostics, support for higher-order functions, and additional facilities in XQuery including support for grouping, advanced regular expression analysis, and formatting of dates and numbers."