Saxonica: Latest releases

Latest Releases

This page contains release information about the latest Saxon product releases:

For information on older products, see Older Releases.

Saxon 11

SaxonCS 11.0 released 5 October 2021.

Product Headlines

SaxonCS is our first product produced from the version 11 source code, and our first product for .NET 5. Java products built from the same code base will follow.

The first release of SaxonCS delivers the functionality of Saxon Enterprise Edition: it is a commercial product and you will need a license key to activate it. 30-day evaluation licenses are available.

For further details, see the Saxon 11 Feature Matrix.

Although the product is built from the established and mature Java code base, the build process is entirely new (we developed a transpiler to convert Java source code to C#) and there's a lot of new code to interface with the .NET 5 platform, so we're keen to get feedback from early users about any teething troubles encountered. You can email us privately, but we prefer it if you share your experiences with the wider user community by making entries in the appropriate section of the bug tracker database.

The product has been tested on .NET 5 only, on Windows, MacOS, and Linux. If you want to try it out on any other platform, please let us know how you get on.

Upgrading

Saxon-EE licenses issued after will work with SaxonCS. Older licenses will also work, if you purchased more than the standard one-year upgrade entitlement. License keys are compatible across Java and .NET. If your upgrade entitlement has ended within the last year, please supply the existing license number when you reorder, and we will refund its residual value, based on when it was purchased (see Upgrades for more details).

License

We're making an important change to the business model: in line with what is now the general industry practice, licenses for SaxonCS are 1-year fixed-term rather than perpetual. When purchasing an annual license from the online shop, you have the option of either buying a one-off term license, or signing up for an annual subscription payment to receive a new license key automatically once a year. New license keys will carry an expiry date; existing licenses will be treated as expiring when the upgrade entitlement ends, which is normally after one year. See Annual Term and Subscription Licenses for more information.

Changes

The overall structure of the C# API is closely based on the API for the older Saxon 10 product on .NET, but there are many minor changes as we have tried to modernize the interface to take full advantage of C# features such as generics and delegates. Existing applications will therefore need some changes at the C# level. XSLT, XQuery, and XPath code should normally run without change. A few features of the older product have not (yet) been carried forward: the most noticeable omissions are probably in the area of localization (formatting of dates, times, and numbers according the conventions of languages other than English). Changes in the functionality of the product in successive releases are documented in the Change History section of the documentation.

Installation and Download

You can install SaxonCS using the nuget package manager at nuget.org. Typically all you need to do is to add a dependency to the package (saxonica/SaxonCS 11.0.1) to your application in Visual Studio or JetBrains Rider, and the rest of the installation process is automatic. But the code won't execute until you install a license key.

With the SaxonCS nuget package installed, you can run transformations and queries from the command line using a command such as "dotnet SaxonCS transform -s:src.xml -xsl:style.xsl". Alternatively you can install platform-specific executables (for Windows, Linux, and MacOS) that run directly from the command line (rather than as subcommands of dotnet): see .NET Platform Downloads.

Bugs and fixes

Bug fixes are documented in the bug tracker database; you can search for bugs cleared in a particular maintenance release.

Saxon 10

Saxon 10.6 maintenance release for Java and .NET, released 16 September 2021.

Saxon 10.5 maintenance release for Java and .NET, released 14 April 2021.

Saxon 10.3 maintenance release for Java and .NET, released 28 October 2020. With this release, we are now recommending Saxon 10 as the most stable and reliable release for production use.

Saxon 10.2 maintenance release for Java, and first release for .NET, released 26 August 2020.

Saxon 10.1 maintenance release for Java, released 14 May 2020.

Saxon 10.0, the first release in this series for Java, released 16 March 2020.

Product Headlines

10 feels like a special number, and marks something of a milestone, although to be honest it's only called 10 because it happens to be the 31st major release since 7.0 came out back in 2002. Think of it as the culmination of 18 years' work, think of it as the dawn of a new era, or just think of it as Saxonica carrying on doing what we're good at.

As always there's a minutely detailed list of changes in the Change History section of the documentation, but to save you time, here are the "top ten" highlights that we think will be most popular:

  1. Higher order functions and xsl:evaluate are now available in Saxon-HE.

  2. An interactive command-line utility named Gizmo is available for ad-hoc querying and updating of documents.

  3. A new API is provided for easy and efficient tree construction, based on modern API design ideas using fluent and immutable objects. These complement the stream-based API introduced in 9.9 for tree navigation.

  4. XSLT and XPath provide an optional switch to allow unprefixed names to ignore namespaces, so the path /a/b/c matches elements with local names "a", "b", and "c" regardless of namespace. Ideal for ad-hoc queries where namespaces just get in the way, as well as queries on single-namespace documents.

  5. HTML serialization now generates HTML5 by default (support for html-version="4" is retained if explicitly requested).

  6. Saxon now integrates with the new date-and-time handling features in Java 8, including a new extension function saxon:parse-dateTime() that builds on Java date parsing capabilities.

  7. Many new extension functions are available, most of them taking advantage of the power of higher-order functions. For example, saxon:replace-with("Chapter 13", "[0-9]+", function($x){number($x)+1}) returns "Chapter 14".

  8. Saxon 10 includes experimental implementations of a number of powerful new XSLT and XPath features, which Saxonica has put forward for inclusion in a new version 4.0 of the standards. These include tuple types, named item types, streamlined syntax for inline functions and conditional instructions, XSLT instructions to handle arrays, and enhancements to XSLT patterns to make JSON transformation much easier. These features are only available if explicitly enabled.

  9. A number of extensions to XML Schema 1.1 are provided: list data types can be constrained to be distinct and/or ordered, and can use a separator other than whitespace; elements in a sequence can also be constrained to appear in ascending or descending order.

  10. As always, there has been significant internal re-engineering to keep the code performant and maintainable. A significant change is in the way namespaces are represented both in the tree model (the NodeInfo interface) and in the push pipeline (the Receiver interface): both now deliver namespace maps representing complete sets of namespace bindings, rather than individual namespace declarations and undeclarations. The main benefit is that copying of trees with many namespaces is significantly faster.

For further details, see the Saxon 10 Feature Matrix.

Saxon 10 requires Java 8 or higher. (A .NET version is available from 10.2.) Saxon 10 can export compiled stylesheets in the form of SEF files suitable for reading either by Saxon 10, or by Saxon-JS 2; SEF files cannot be used with earlier releases.

In future we intend to use two-part version numbers rather than four-part: the next major release will be 11.0, the first maintenance release 10.1.

Upgrading

Saxon-EE and Saxon-PE licenses issued after will work with the current maintenance release. For those with earlier licenses, simply enter the existing license number when you reorder, and we will refund its residual value, based on when it was purchased (see Upgrades for more details).

Changes and fixes

Changes in the functionality of the product in successive releases are documented in the Change History section of the documentation. Bug fixes are documented in the bug tracker database; you can search for bugs cleared in a particular maintenance release.

Saxon/C 1.2

Saxon/C 1.2.1 maintenance release for C/C++, PHP and Python, released 28 October 2019.

Saxon/C 1.2.0, the first release in this series for the C/C++, PHP and Python programming languages, built from Saxon 9.9.1.5, released 16 October 2019.

APIs are available to run XSLT 3.0, XQuery 3.1, XPath 3.1, and Schema Validation from C/C++, PHP or Python applications. Saxon/C 1.2.0 is built from the Saxon 9.9 Java product using the Excelsior JET Enterprise tool (version 15.3 MP1).

Saxon-C is available in the standard Saxon range of editions: the open-source product Saxon-HE/C, and the commercial products Saxon-PE/C and Saxon-EE/C. Separate downloads are available to run on Linux, Mac OS X and Windows. For further information see Saxon/C.

Saxon-JS 2

Saxon-JS 2.3 maintenance release 20 August 2021.

Saxon-JS 2.2 maintenance release 11 May 2021.

Saxon-JS 2.1 maintenance release 2 March 2021.

Saxon-JS 2.0 first release 12 June 2020.

Saxon-JS is a high-performance XSLT 3.0 processor that runs either in the browser, or on Node.js. It conforms with the latest W3C specifications (notably XSLT 3.0 and XPath 3.1), together with extensions designed to meet the needs of modern web applications. The latest version, Saxon-JS 2, is a major upgrade. Stylesheets can be compiled to SEF using the internal compiler in Saxon-JS for Node.js, or using Saxon-EE (10.0 or later).

For further information see Saxon-JS.

Quick links:


On this page: