XSLT 3.0 implementation

XSLT 3.0 is now supported from Saxon-HE upwards. All Saxon editions support the basic conformance level. Other optional conformance features are supported as follows:

Previous Saxon releases supported 1.0 Compatibility mode in Saxon-HE as well as PE and EE. This support has been dropped. Users still running 1.0 stylesheets therefore have three options:

The xsl:stream instruction has been generalized to xsl:source-document. For the time being xsl:stream is still recognized, and is interpreted as <xsl:source-document streamable="yes">.

Streamable stylesheet functions are implemented, as defined in the XSLT 3.0 specification. The test coverage for this feature is somewhat sparse, so the implementation might turn out to need more work.

Type checking on maps has been improved. In particular, the static type of the expression map:get(M, K) (or equivalent constructs such as M(K) or M?K is now deduced from the type of the map if known. The checking is even stronger if the new (Saxon-specific) mechanism of tuple types (now renamed "record types") is used: see Record Types.