Re: [xsl] how to sort a union using number()?

Subject: Re: [xsl] how to sort a union using number()?
From: David Carlisle <davidc@xxxxxxxxx>
Date: Thu, 15 Mar 2007 23:56:16 GMT
> Error on line 228 of file:/e:/schema.xsl:
>   XPTY0004: A sequence of more than one item is not allowed as the first 
> argument of number()

that means that NumberString|$associations/NumberString selected more
than one node, in xslt1 the other nodes would have been silently
discarded, but in xslt2 its an error.

NumberString|$associations/NumberString/number(.)

would avoid that, but return a sequence of numbers and again (in xslt2)
this is an error.

If you just want to sort on the first NumberString descendent of each
item you can use [1] to ensure the path just selects one item.
There is something strange about your sort key though

$associations/NumberString/number(.)

starts with a variable, so in particular it does not depend on the item
being sorted, so the sort key (from this branch of the union) is a
constant value (within this scope). Sorting a list with a constant sort
key is a non-op?

David

Current Thread