Saxon extensions to the W3C XSLT/XQuery specifications

Extension Functions

In the representation of schema information delivered by the saxon:schema() extension function, enumeration facets are now exposed using a new "typed-value" property which is an array of sequences (each sequence being one of the enumeration values). An array of sequences is needed to cater for list types, where each enumeration value can be a sequence. The existing "value" property is retained; this delivers a sequence of strings, where each value in the enumeration is reduced to a string.

Extension Attributes

The xsl:source-document instruction supports two Saxon extension attributes: saxon:line-numbering (values yes|true|1 or no|false|0) to enable line numbering for the document being read, and saxon:strip-space (values #all (strips all whitespace text nodes), #none (no whitespace stripping), #ignorable (strips whitespace in elements declared as having element-only content), and #default (follows the rules in xsl:strip-space/xsl:preserve-space declarations)).

Extension attributes in the Saxon namespace (for example, saxon:asynchronous) may now be written as shadow attributes evaluated using static expressions (for example, saxon:_asynchronous="{$ASYCH}").

A new extension attribute saxon:trace = (boolean) has been added to the xsl:mode declaration. It causes tracing of all template rules executed in the mode, showing the nodes selected by xsl:apply-templates and the rules used to process them.