# XSLT 2.0 Changes

If the third argument of the `key()` function is specified, the function now returns only nodes that are in the subtree rooted at that node. Previously it returned all nodes in the same document as the node specified in the third argument. This represents a change recently agreed to the XSLT 2.0 specification.

The `input-type-annotations` attribute on the `xsl:stylesheet` element is implemented.

The `undeclare-namespaces` attribute of `xsl:output` and `xsl:result-document` is renamed `undeclare-prefixes`.

The `use-character-maps` attribute is now supported on `xsl:result-document`.

The `collation` attribute of `xsl:sort` can now be an attribute value template.

The default format for the minutes and seconds components of the time in the `format-time()` function is now "01" rather than "1": that is, a leading zero is included by default.

Representation of ordinal numbers in dates output by `format-date()` can now be localized (through a new method in the `Numberer` interface).

The `xsl:result-document` instruction now enforces the rule that a transformation cannot write two result trees to the same URI.

There is no longer an upper limit on the size of numbers that can be formatted using `<xsl:number>` with format token "1".

Error XT0275 is now detected: using xsl:strip-space on an element defined in the schema to have simple content.

Next