# XSLT changes

The `as` attribute in `xsl:sequence` has been dropped.

The `unparsed-text()` function returns an empty sequence if the first argument is an empty sequence.

The `xsl:number` instruction now handles numbers that are too large or too small, or values that cannot be converted to integers, as recoverable errors, as described in the current XSLT 2.0 specification. The range of values that can be formatted using the requested format picture is from 1 to 2^63; other values are output as if the string() function were used.

The rules for handling types in `xsl:key` have been brought into line with the current rules in the specification. Because of the way that `eq` is now defined in XPath, a numeric argument to the `key()` function will no longer match an untypedAtomic key value.

The use of a separate name pool for use at compile time has been discontinued. Since standard element and attribute names are no longer stored in the name pool, this technique is no longer needed.

The `xsl:for-each-group` instruction now handles heterogeneous grouping keys as defined in the current specification. Non-comparable grouping key values (for example an integer and a string) are treated as being distinct values.

In backwards compatibility mode (that is, with `version="1.0"`), attribute value templates now observe the first-item rule. That is, `<a val="{1,2,3}"/>` outputs `<a val="1 2 3"/>` in 2.0 mode, but `<a val="1"/>` in 1.0 mode.

Next