XSL Dönüşümleri (XSLT) Sürüm 1.0
ÖncekiYukarıSonraki

10 Sıralama

<xsl:sort
  select = dizgesel-ifade
  lang = { ad-dizgeciği }
  data-type = { "text" | "number" | nitelikli-ad-ama-kısa-ad-değil }
  order = { "ascending" | "descending" }
  case-order = { "upper-first" | "lower-first" } />
eleman

Sıralama, bir xsl:apply-templates veya xsl:for-each elemanının çocukları olarak xsl:sort elemanları kullanılarak belirtilir. İlk xsl:sort birincil sıralama anahtarını, ikincisi ikincil olanını belirtir ve bu böyle çoğaltılabilir. Bir xsl:apply-templates veya xsl:for-each elemanının çocukları olarak bir veya daha fazla sayıda xsl:sort elemanı olduğu takdirde, seçilen düğümler belgedeki sıralarına göre değil, sıralama anahtarları ile belirtilen sıraya göre işlenirler. xsl:sort elemanları xsl:for-each elemanında kullanıldıklarında, ilk çocuklar olmalıdırlar. Bir örneklenimin xsl:apply-templates veya xsl:for-each elemanı tarafından nesnelleştirilmesi halinde, geçerli düğüm listesinin düğümleri xsl:sort elemanları tarafından belirtilen sıraya göre sıralanırlar.

xsl:sort elemanının bir ifade belirtmekte kullanılan bir select özniteliği vardır. İşlenen her düğüm için, düğüm geçerli düğüm kabul edilerek ve işlenen bütün düğümler için, belgedeki sırasıyla bu düğümlerin tamamı geçerli düğüm listesi kabul edilerek ifade değerlendirilir. Elde edilen nesne string işlevinin yaptığı gibi bir dizgeye dönüştürülür; bu dizge düğüm için sıralama anahtarı olarak kullanılır. select özniteliğini öntanımlı değeri . olup, sıralama anahtarı olarak geçerli düğümün dizgesel değerinin kullanılmasına sebep olur.

Bu dizge düğüm için bir sıralama anahtarı işlevini görür. Aşağıdaki isteğe bağlı öznitelikler xsl:sort üzerinde sıralama anahtarları listesinin nasıl sıralanacağını denetlerler; bu özniteliklerin değerleri birer öznitelik değeri örneklenimi olarak yorumlanır.

Not:
İki uyumlu XSLT işlemcinin tamamen aynı sıralamayı yapmaması olasıdır. Bazı XSLT işlemciler bazı dilleri desteklemeyebilir. Bundan başka, bazı diller için xsl:sort öznitelikleriyle elde edilemeyecek kadar çeşitli sıralamalar olası olabilir; örneğin, Japonca'da sıralamanın Hiragana mı yoksa Katakana mı olacağı gibi. XSLT'nin ileri sürümlerinde bu olasılıklar üzerinde denetim sağlayacak ek öznitelikler sağlanabilir. Gerçeklenimler ayrıca, bunun için xsl:sort üzerinde gerçeklenime özel isim-alanlı öznitelikler kullanabilirler.

Not:
Gerçeklenimcilerin uluslararası sıralama hakkında bilgi edinmek için [UNICODE TR10]'u incelemeleri önerilir.

Sıralama kararlı olmalıdır: sıralı düğüm listesinde sıralama anahtarı belirtilmiş her alt listenin üyelerinin belgedeki sıraya göre eş sırada ele alınmaları gerekir.

Örneğin, şu biçimde düzenlenmiş bir çalışanlar veritabanımız olsun:

<çalışanlar>
  <çalışan>
    <isim>
      <önadı>James</önadı>
      <soyadı>Clark</soyadı>
    </isim>
    ...
  </çalışan>
</çalışanlar>

İsme göre sıralı çalışanlar listesini üretecek kod şöyle olurdu:

<xsl:template match="çalışanlar">
  <ul>
    <xsl:apply-templates select="çalışan">
      <xsl:sort select="isim/soyadı"/>
      <xsl:sort select="isim/önadı"/>
    </xsl:apply-templates>
  </ul>
</xsl:template>

<xsl:template match="çalışan">
  <li>
    <xsl:value-of select="isim/önadı"/>
    <xsl:text> </xsl:text>
    <xsl:value-of select="isim/soyadı"/>
  </li>
</xsl:template>

ÖncekiYukarıSonraki
Koşullu İşlemBir Linux Kitaplığı SayfasıDeğişkenler ve Değergeçler