XPath 3.1 implementation

Whether in XSLT, XPath, or XQuery, previous releases of Saxon allowed sorting operations to mix untypedAtomic sort keys with keys of a more specific type, converting the untypedAtomic values to the other type if required. This has never been permitted by any of the specifications, and Saxon has now been changed to report a type error for such cases. This change is required for conformance with the W3C specifications, but it may cause existing applications to break.

The Saxon XPath processor now supports XPath 2.0, 3.0, and 3.1, plus the version of XPath (3.0 with enhancements) defined in the XSLT 3.0 specification. Whichever version is chosen, XPath 1.0 backwards compatibility mode can be optionally enabled.

Enhancements to the fn:transform() function: