Packaging, installation, and licensing changes

While Saxon is primarily a maintenance release, the increment in the third part of the version number indicates that there are also some small functionality changes. Specifically:

  1. Some recent changes in the W3C specification of XPath 3.0 functions are implemented:

    • fn:map is renamed fn:for-each, and its arguments are reordered

    • fn:map-pairs is renamed fn:for-each-pair, and its arguments are reordered

    • fn:filter, fn:fold-left, and fn:fold-right have their arguments reordered

  2. The EXPath ZIP module is no longer packaged with the product. The source code can be separately downloaded and installed in the same way as a user extension function library. This change is made because of the relative immaturity of both the specification and the code, and the absence of a comprehensive test suite; furthermore, one Saxonica customer has raised licensing concerns about the code (concerns we believe to be unfounded).

  3. The XSD 1.1 type xs:error is recognized, and is used as the "bottom" of the type hierarchy (a type that can have no instances, and is therefore a subtype of every other type)

  4. Support for the require-feature and prohibit-feature declarations in XQuery 3.0 has been dropped, following a decision of the W3C XQuery Working Group on 18 June 2013.

  5. The current (as yet unpublished) XSLT 3.0 specification includes a new form of pattern syntax. In the first draft, implemented in, this took the form match="?{. = 3}, but in the latest draft it has changed to match=".[. = 3]. Saxon 9.5.1 implements this latter version (but with the restriction that there must be exactly one predicate).

For details of the bugs cleared in each Saxon maintenance release, see, applying a search filter on the field "Fixed in version".