Contact Information: see
http://www.saxonica.com/contact.html
|
This is the home page for the Open Source SAXON XSLT processor developed by Michael Kay.
See also the project page for Saxon.
The latest version of Saxon is version 9.1.0.2. This is a complete and conformant implementation of the XSLT 2.0, XQuery 1.0, and XPath 2.0 Recommendations published on 23 January 2007 by W3C.
Saxon 9.1.0.2 is released simultaneously by Saxonica on the Java and .NET platforms. Changes since Saxon 9.0 are listed in the change log. For the bug fixes in each successive maintenance release, see the Release Notes and Change Notes for the release on the SourceForge downloads page. Known bugs, including details of their clearance, are listed in the Bugs tracker on the SourceForge project page.
Saxon comes in two packages: Saxon-B implements the "basic" conformance level for XSLT 2.0 and XQuery, while Saxon-SA is a schema-aware XSLT and XQuery processor. Both packages are available on both platforms (Java and .NET). Saxon-B is an open source product available from this site; Saxon-SA is a commercial product available from Saxonica Limited. A free 30-day evaluation license is available.
The most obvious difference between Saxon-SA and Saxon-B is that Saxon-SA is schema-aware: it 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-standing XML Schema validator.
In addition Saxon-SA incorporates some advanced extensions and optimizations not available in the Saxon-B product:
Saxon-SA is able to compile XQuery code directly into Java classes.
Saxon-SA has an advanced optimizer which recognizes joins in XPath expressions, XQuery FLOWR expressions,
and in XSLT templates (nested xsl:for-each instructions). Whereas Saxon-B always implements
these as nested loops, Saxon-SA uses a variety of strategies including indexes and hash joins. This can give
dramatic improvements in execution time for large documents: some of the queries in the XMark benchmark
improve by a factor of 300 (from 16 seconds to 45 milliseconds) to process a 10Mbyte source file.
Saxon-SA has a facility to process large documents in streaming mode. This enables documents to be handled that are too large to hold in memory (it has been tested up to 20Gb).
Additional extensions available in Saxon-SA 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.
The Saxon XSLT 1.0 processor remains available. The latest version is version 6.5.5. Version 6.5.5 is a maintenance release, produced in November 2005. The main purpose of the maintenance release was to fix a problem that arises when using Saxon 6.5.x with Java JDK 5. This version of Saxon is no longer actively developed.
Saxon 6.5.4 dropped support for certain rarely-used features of Saxon 6.5.3, notably support for JDK 1.1 and the Microsoft Java VM, support for FOP integration, and the applet interface. Users requiring these features should continue to use version 6.5.3.
The full list of open-source Saxon versions available for download is available on the SourceForge project pages. Technical documentation (including JavaDoc specifications) is available on the Saxonica web site.
The commercial schema-aware implementation of XSLT 2.0, XPath 2.0, XQuery 1.0, and XML Schema 1.0 from Saxonica Limited. This version reflects the syntax of the final XSLT 2.0, XQuery 1.0, and XPath 2.0 Recommendations of 23 January 2007.
Note that although the download files are linked below, they cannot be used without first obtaining license from the Saxonica site
Source code for Saxon-SA is not available.
The latest open-source implementation of XSLT 2.0 and XPath 2.0, and XQuery 1.0. This provides the "basic" conformance level of these languages: in effect, this provides all the features of the languages except schema-aware processing. This version reflects the syntax of the final XSLT 2.0, XQuery 1.0, and XPath 2.0 Recommendations of 23 January 2007.
There are three files available: one containing executable code for the Java platform, one containing executable code for the .NET platform, and one containing documentation, source code, and sample applications applicable to both platforms. (Documentation is also available online)
Note that bug fixes are typically made available in Subversion as soon as they are available, and are then consolidated periodically into a maintenance release. Source code under development is not held in Subversion, and is not available until a tested release is issued. Sometimes prereleases of new facility releases are made available for testing; these are announced on the saxon-help mailing list but will not generally be advertised here.
The latest maintanence release of Saxon's implementation of XSLT 1.0. This product is mature and stable, and further developments are unlikely.
The download includes documentation, source code, Java executables, and sample code.
Known limitations of this release are listed here. This page will be updated with information about any new bugs that come to light.
The previous release of Saxon's implementation of XSLT 1.0. This product remains available because it runs in some environments that are not supported by Saxon 6.5.5, notably under JDK 1.1.
The download includes documentation, source code, Java executables, and sample code.
Known limitations of this release are listed here. No further updates will be made to this page.
The most recent version of the Instant Saxon product. Instant Saxon was built using the same source code as Saxon 6.5.3, but was packaged for ease of installation when using the Microsoft Java VM. Since the Microsoft Java VM is no longer a standard component of the Windows platform, this release has outlived its usefulness, but it remains available for download by existing users.
Note that Saxon performs considerably better using Sun JDK 1.4 than using the Microsoft Java VM, so for production use, the full product should be downloaded.
There is a custom Ant task for invoking Saxon XSLT transformations. This was previously issued as part of the Saxon product but has now been separated into a separate package under the Saxon SourceForge project, so it can be released under its own license conditions and in its own timescales. The download is here.
The Ælfred XML Parser that was bundled with Saxon versions up to version 7.1 is now available as a separate download. There are some situations where it is preferred to the Crimson parser that comes as part of JDK 1.4.
Also available on this site is the DTDGenerator program. This was formerly produced as a Saxon demonstration application, but has since been adapted to work as a pure SAX application, with no dependencies on the Saxon software.
Documentation for earlier releases remains present on the SourceForge web site: 6.4.2, 6.4.3, 6.5, 6.5.1, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 7.0, 7.1, 7.2, 7.3, 7.3.1, 7.4, 7.5, 7.5.1, 7.6, 7.7, 7.8, 7.9, 7.9.1
For releases from 8.0 onwards, the documentation is not available directly on the web site, but can be obtained by downloading the software.
Michael H. Kay
9 September 2008