XSLT 2.0 implementation
The [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
use-when
condition.
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 xsl:sort
.
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.
The 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
erratum) because xsl:fallback
is only evaluated when its sibling instructions are not
evaluated.
Changes affecting xsl:number
in backwards-compatible mode have been implemented. The effect
is essentially that NaN is output when invalid values are supplied in the value
attribute.
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.