Saxon extensions to the W3C XSLT/XQuery specifications
The extension function
saxon:serialize() has been enhanced. As an alternative to the existing
format, the second argument may now be a (dynamically-constructed)
xsl:output element, allowing
full access to all serialization properties, and allowing all the properties to be defined dynamically. This
works in both XSLT and XQuery.
A new extension function
saxon:generate-id() is available. The semantics are identical to the XSLT
function generate-id(): the function returns an ASCII alphanumeric string that uniquely identifies the node
supplied as the argument (there must always be exactly one argument). This extension function is made available
to provide the same capability as generate-id() in non-XSLT environments, for example in XQuery.
The extension functions
which have long been deprecated,
are now dropped from the product.
saxon:evaluate() function under XSLT, the default
namespace for elements and types is taken from the value of the
attribute in the stylesheet, if present. Previously it was taken from the default namespace declared
xmlns="xyz.uri", which was a bug. (In XQuery the net effect is no change, because
there is only one default namespace.)
The documentation of other extension functions involving sequences of nodes, such as
has been changed to reflect the fact that the sequences of nodes on which they operate may contain duplicates
and might not be in document order. The implementation of these functions has not been changed, the documentation
has been corrected to describe the current behavior.