XSLT 2.0 implementation
Implemented the xsl:analyze-string instruction, which supports regular expression
matching.
Where an embedded expression within an attribute value template yields a sequence of more than one
item, the string values of all the items are now output, separated by spaces. This is incompatible
with XSLT 1.0, which ignored all but the first node in a node-set. If this causes compatibility
problems (a) you can fix it by using the filter [1] after the expression, (b) please
let me know: the XSL WG wants to know whether this incompatible change is likely to cause problems
in practice.
The elements xsl:variable, xsl:param, and xsl:result may
now take a type attribute indicating the required type of the value. The supplied value
will be converted to this type if necessary. The value of the attribute is the same subset of the
XPath SequenceType production as is implemented for "cast as" and "instance of" expressions: basically,
the fixed types such as "item" and "element" and the built-in types such as xs:string and xs:date, followed
by an optional occurrence indicator.
Parameters to xsl:function may no longer specify a default value: all arguments
must be supplied in the function call.
An xsl:message instruction may now appear inside an xsl:function.
The xsl:text instruction may now contain other instructions, such as xsl:value-of.
Pending resolution of issue 132 in the spec, avoid using disable-output-escaping with nested xsl:text
elements. The effect is unlikely to be what you expected..
It is now an error to specify the mode or priority attributes on an
xsl:template element with no match attribute.
Match patterns using the id() and key() functions can now reference global
variables or parameters for the value of the id or key.
The attributes version, exclude-result-prefixes, and extension-element-prefixes
may now appear on any element in the XSLT namespace. Note that these attributes are prefixed xsl:
when used on a literal result element, but have no prefix when used on an XSLT element.
The attribute [xsl:]default-xpath-namespace is now available on all elements. It defines the defualt
namespace to be used for unprefixed element names in path expressions and patterns.
The xsl:apply-templates element now allows mode="#current" and
mode="#default". The xsl:template allows the mode attribute
to be a list of mode names, optionally including #default to match the default mode.
The disable-output-escaping attribute of xsl:attribute is implemented, replacing
the saxon:disable-output-escaping extension, which is no longer available.
The xsl:destination element is renamed xsl:principal-result-document. (This was
misdocumented in version 7.1).
Implemented the unparsed-text() function (with the second argument being mandatory).