Changes to XSLT 2.0 support
[xsl:]use-when attribute, which allows conditional inclusion/exclusion of sections
of a stylesheet, is implemented.
There are some very minor restrictions described in the conformance section. Note that the Saxon
implementation of the
system-property() function allows Java system properties to
be read, which provides a convenient way of supplying information that can be tested in the
The standard attribute
[xsl:]default-collation is implemented. This may appear
on any instruction in the stylesheet (prefixed xsl if the instruction is not in the XSLT namespace). Its value is
a URI that indicates the default collation to be used on that element and its descendants. Note that this doesn't affect
the collation used by
The revised rules for constructing the content of simple-valued nodes (attributes, text nodes, comments, etc)
are implemented. The rules are now the same whether the content is constructed using a content constructor or a
select attribute, and if the supplied content includes adjacent text nodes, these are concatenated
without inserting a separator. Anticipating a change in the specification, these rules have also been implemented
for attribute value templates.
xsl:import-schema may now contain an inline schema (that is, it may have an
xs:schema element as a child).
A local variable is no longer visible within an
xsl:fallback instruction that is a sibling of the variable
declaration. This change has been made to the specification (and will be made to XSLT 1.0 by means of an
xsl:fallback is only evaluated when its sibling instructions are not
xsl:number in backwards-compatible mode have been implemented. The effect
is essentially that NaN is output when invalid values are supplied in the
Error conditions affecting
xsl:decimal-format are now checked more rigorously, as described
in the latest W3C specification.
When the XSLT processor is run from the command line, the base output URI now defaults to the current working
directory. It is therefore no longer necessary to use the -o option in order to use a relative URI with
<xsl:result-document>. For security reasons this change does not apply when invoking Saxon using the
Java API, unless the application sets it explicitly.