<xsl:sort> 要素

<xsl:for-each> または <xsl:apply-templates> によって選択されるノード リストの並べ替え基準を指定します。

<xsl:sort
  select = string-expression 
  lang = { nmtoken }
  data-type = { "text" | "number" | QName }
  order = { "ascending" | "descending" }
  case-order = { "upper-first" | "lower-first" }
  /> 

属性

  • select
    ノードの並べ替えキー。現在のノードとして指定されているノード、および現在のノード リストとして処理されている並べ替えられていないノードの完全なリストで評価される式。生成されるオブジェクトは、そのノードの並べ替えキーとして使用される文字列に変換されます。select 属性の既定値は、"." です。この既定値を指定すると、現在のノードの文字列値が並べ替えキーとして使用されます。
  • lang
    並べ替え順を決定するために使用される言語のアルファベット。lang 値が指定されていない場合、言語はシステム環境によって決まります。
  • data-type
    文字列のデータ型。data-type 属性として指定できる値を次の表に示します。

    text

    並べ替えキーをアルファベット順に並べ替える方法を指定します。

    number

    並べ替えキーを番号に変換した後で、数値に基づいて並べ替える方法を指定します。並べ替えキーは番号に変換されます。

    QName

    展開名に展開されます。展開名はデータ型を識別します。

    データ型が指定されていない場合は、既定で式の型が使用されます。

  • order
    文字列の並べ替え順。既定値は "ascending" です。
  • case-order
    大文字小文字を基準として文字列を並べ替える方法。既定値は、大文字の順位が上になる "upper-first" です。

要素情報

出現回数

無制限

親要素

xsl:apply-templatesxsl:for-each

子要素

(子要素はありません)

解説

この並べ替えアルゴリズムでは、並べ替えを行うときにダッシュ記号を無視します。これは、たとえば "co-op" の順位を "coop" の下にすることを意図した「単語ソート」法です。

たとえば、次のような並べ替え順が生成されたとします。

30a-allow

30-allow

並べ替えではこれらの項目が次のように扱われます。

30aallow

30allow