[xsl] [ANN] Saxon 11.1

Subject: [xsl] [ANN] Saxon 11.1
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 2 Feb 2022 09:52:09 -0000
We are delighted to announce Saxon 11.1, a raft of new products covering three
language platforms (SaxonJ, SaxonCS, and SaxonC), all built from the same
source code. The software can be downloaded from the usual places (see
www.saxonica.com) though a few corners of the website have yet to be updated.

For SaxonJ (Java), this is the first major release in nearly two years.
There's a long list of detailed changes that you can find in the
documentation, but the main highlights are:

* New functions and syntax extensions, some of them experimental. Some are
very simple, for example, "A otherwise B" selects A if it exists, otherwise it
selects B. Some are more complex and powerful, such as the saxon:update and
saxon:deep-update instructions in XSLT. Please try them out and give us
feedback.

* A new framework for resolving URIs that refer to external resources,
integrating catalog-based resolution where appropriate.

* Most callbacks are now provided via functional interfaces, allowing them to
be easily written as lambda expressions.

* Timezone handling has moved forward to the modern Java date/time libraries.

* Numerous minor changes to make JSON processing easier

Internally, there's a set of classes for handling Unicode strings. The main
motivation for this was to allow common code across Java and C#, but it also
improves speed and reduces memory requirements for many string handling
operations. The effect is not uniform however; for very simple transformations
of documents consisting exclusively of ASCII text, there is generally a memory
saving but a small overhead in processing time.

For SaxonCS (.NET 5 and 6 on Windows, Mac, and Linux), this is essentially a
bug-fixing release for 11.0. The most important issues fixed relate to
localisation (in particular, running on machines whose default Culture setting
is not English). For a full list of fixed bugs, please go to
https://saxonica.plan.io/projects/saxon/issues and filter the list of bugs for
those labelled as "fixed in maintenance release 11.1". In addition to bug
fixes, there are some functional changes:

  * As with SaxonJ, there is a new framework for resolving URIs, based on the
C# version of the catalog-based xml resolver. The use of the
System.Xml.XmlResolver interface has been largely discontinued, except where
needed for interoperation with the Microsoft parser, because of its
inflexibility in handling different kinds of resources.

  * A few new API methods are implemented to plug gaps, in response to user
feedback

  * XQuery Update is fully supported (in 11.0 the code was present but largely
untested).

SaxonCS on Mac is still awaiting notarization from Apple; until that's
achieved there may be security warnings when you download it.

For SaxonC (C++, Python, and PHP, on Windows, Mac, and Linux) this is the
first release since 2019.

* The Java code base has moved forward from 9.9 to 11.1, and the build process
is now integrated with SaxonJ and SaxonCS so that bug fixes can be applied
simultaneously to all three products.

* There are improvements in multi-threading, when multiple transformations
using the same stylesheet are executed in parallel in a web server

* Memory management of XDM objects is improved

* Localization (using ICU-J) is improved

* Handling of Unicode strings in the various language APIs is improved,
reducing the scope for encoding issues.

* There are many API extensions and improvements for all three languages (C++,
Python, and PHP)

Michael Kay
Saxonica

Current Thread