You need to convert the values to numbers:
> string-join(sort(xs:restriction/xs:enumeration ! number(@value)), '|')
Michael Kay
Saxonica
> On 8 Jul 2022, at 12:04, Roger L Costello costello@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Michael Kay wrote:
>
>> sort the numbers by their value rather than by their length
>
> Do you mean this:
>
> string-join(sort(xs:restriction/xs:enumeration/@value), '|')
>
> Unfortunately that produces an incorrect result:
>
> 1|10|11|12|2|3|4|5|6|7|8|9
>
> (But I do like the simplicity of the XPath expression!)
>
> /Roger
|