XSLT 3.0 conformance

The XSLT 3.0 specification is far from complete, so at the time of writing it is not meaningful to discuss conformance in fine detail.

Broadly speaking:

For information on streaming, see Streaming of large source documents.

At the time of writing, the latest published working draft is XSLT 3.0 published on 10 July 2012. Since then the WG has produced many internal drafts, and some of the new features appear in Saxon 9.5 ahead of publication by W3C.

XSLT 3.0 features are not available unless explicitly requested. The request can be by setting -xsltversion:3.0 on the command line, by calling setXsltLanguageVersion() on the XsltCompiler object, or by use of the configuration setting FeatureKeys.XSLT_VERSION. Setting version="3.0" on the xsl:stylesheet element is recommended, but is not sufficient on its own.

The exception to the above is that new functions in separate namespaces (the map and math namespaces in particular) do not require XSLT 3.0 to be enabled, since a conformant 2.0 processor can handle them as extension functions.

When XSLT 3.0 is activated, XPath expressions in the stylesheet may use all constructs defined in the Candidate Recommendation XPath 3.0 draft of 29 January 2013.

Additional XSLT 3.0 features implemented in Saxon 9.5 include the following:

Maps, as defined in the draft XSLT 3.0 specification, are implemented as an extension to XPath 3.0. For details see Maps in XPath 3.0.

Some of the new XSLT 3.0 features that are NOT yet implemented include: