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.