# XSLT 2.0 conformance

This release of Saxon implements many facilities defined in the draft XSLT 2.0 specification. This implementation is not yet complete, though most features defined in the working draft of 12 November 2003 are available. Some minor changes agreed by the Working Group since that publication have also been implemented.

Saxon-B 8.0 acts as a Basic XSLT Processor, while Saxon-SA 8.0 acts as a Schema-Aware XSLT Processor. The distinction is that a Basic XSLT Processor does not allow schemas to be imported and does not support validation of source or result documents or reference to user-defined types. These correspond to the two conformance levels defined in the XSLT 2.0 specification.

The XSLT 2.0 specification defines two optional conformance features, the serialization feature and the backwards compatibility feature. These optional features are implemented in both Saxon variants.

Known restrictions, relative to the conformance rules for a basic XSLT processor, include the following:

- The new `xsl:output` option `normalize-unicode` is not implemented.

- The `xhtml` output method does not follow all the rules for XHTML formatting in the serialization specification.

- If `key()` is called in a match pattern, the argument must be a string literal.

- The semantics of patterns when applied to nodes in non-document trees are not yet properly implemented.

- When the source document is supplied as a pre-built tree (in any format), Saxon strips whitespace text nodes as requested by the stylesheet, but takes no account of any `xml:space` attributes present in the tree.

- The error codes defined in the specification are not used.

- The rule that in forwards compatibility mode, an optional attribute should be ignored if its value is not one of the values that is allowed for the attribute, is not implemented. (At any rate, it is not implemented for all such cases).

- Some restrictions that should apply in a basic XSL processor are not currently enforced. For example, all the built-in atomic types are available, and attribute nodes may acquire type annotations derived from their definitions in a DTD.

- The new `input-type-annotations` switch is not implemented.

- The new `[xsl]:use-when` facility for compile-time conditional inclusion is not implemented.

In the schema-aware XSLT processor, the following restrictions apply:

- The `type` attribute of `xsl:document`, `xsl:result-document`, and instructions that copy document nodes, is not implemented.

Expand | Next