This section lists all known incompatibilities with XSLT 3.0, that is, situations
where a stylesheet that is error-free
according to the XSLT 3.0 specification and where all elements have an effective version
of 3.0
or less, will produce different results depending on whether it is
run under an XSLT 3.0 processor or an XSLT 4.0 processor.
The rules for comparing values in xsl:for-each-group
now reference
the rules for distinct-values
, which have themselves changed
to reference op:same-key
. This change eliminates the intransitivity
in the previous specification, which meant that in edge cases involving rounding of numeric values
of different types, two items in different groups could compare equal. Any change in behavior
is confined to this edge case.
This specification also corrects a number of errors and omissions in XSLT 3.0, in a way that might create incompatibilities for some processors, depending on how they interpreted the XSLT 3.0 specification:
XSLT 3.0 (and earlier releases) did not fully define the evaluation context for the
default values of template parameters. For example, if the default value of a parameter of a
template rule invoked xsl:next-match
, it was not specified whether the
current template rule should be the calling template or the called template. This omission has
been corrected.