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).