xsl-list
[Top] [All Lists]

[xsl] [ANN] Saxon 10.0 (today's other news..)

2020-03-16 14:22:42
Saxon 10.0 is released today for the Java platform: 
http://www.saxonica.com/download/java.xml

10.0 feels like a special number, and marks something of a milestone, although 
to be honest it's only called 10.0 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 documentation on 
the web site, but to save you time, here are the "top ten" highlights that we 
think
will be most popular: 

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

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

* 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.

* 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.

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

* 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.

* 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".

* Saxon 10.0 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.

* 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.

* 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.

Saxon 10.0 requires Java 8 or higher. A .NET version will follow later. Saxon 
10.0 can export compiled stylesheets in the form of SEF files
suitable for reading either by Saxon 10.0, or by Saxon-JS 2 (which will be 
released in the next few weeks); 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 next maintenance release 10.1.

The number of tests we run increases every time we release; it's now close to a 
million. But we know from experience that some of you will still find bugs. 
We're therefore recommending production users to stick with 9.9 (which has 
become very stable and reliable) for the time being, while testing your 
applications
on 10.0 and reporting any issues you encounter. 

Michael Kay
Saxonica
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>