xsl:sort
Used within an xsl:for-each, xsl:apply-templates, xsl:for-each-group, or xsl:perform-sort to indicate the order in which the selected elements are processed.
Content: sequence-constructor
Permitted parent elements:
xsl:apply-templates
; xsl:for-each
; xsl:for-each-group
; xsl:perform-sort
Attributes
|
| A string expression that calculates the sort key. Default value ".". |
|
| Determines the algorithm used for alphabetic
collating, as an ISO language code such as |
|
| Determines the sort order; the default is
|
|
| The name of a collating sequence. If present it must be a collation URI recognized by Saxon: see Sorting and collations. |
|
| Permitted only on the first
|
|
| Relevant only for
|
|
| Determines whether collating is based on
alphabetic sequence or numeric sequence. The permitted values are either
|
Saxon availability
Available in XSLT 1.0 and later versions. Available in all Saxon editions. Available for all platforms.
Notes on the Saxon implementation
The SaxonJ implementation uses java.util.Arrays.sort()
: see the
Javadoc documentation for that method for information about the performance
characteristics of the sort algorithm. The SaxonCS implementation uses
System.Array.sort()
: see the .NET documentation for details of the
sort algorithm used.
Details
When using the Unicode Collation Algorithm, only the order
and
data-type
control attributes are relevant - all other controls
are attached as query parameters to the collation URI.
Several sort keys are allowed: they are written in major-to-minor order.
Examples
Example 1
Sorting with xsl:apply-templates
. This example shows a template
for a <BOOKLIST>
element which processes all the child
<BOOK>
elements in order of their child
<AUTHOR>
elements; books with the same author are in
descending order of the DATE
attribute.
Example 2
Sorting with xsl:for-each
. This example also shows a template
for a <BOOKLIST>
element which processes all the child
<BOOK>
elements in order of their child
<AUTHOR>
elements.
Example 3
Sorting with xsl:for-each
using Unicode Collation Algorithm.
<BOOK>
elements are processed in order of their child
<TITLE>
elements, sorted as if they were in French
dictionary order (where accents are compared in a reverse direction).