ключей сортировки, значения всех этих атрибутов рассматриваются как шаблон значения атрибута.

order определяет, следует ли сортировать строки в направлении к предкам или потомкам. ascending определяет порядок в направлении к предкам. descending определяет порядок сортировки в направлении к потомкам. По умолчанию подразумевается ascending

lang задает язык для ключей сортировки. Атрибут имеет тот же самый диапазон значений, что и xml:lang [XML]. Если значение lang не указано, язык должен определяться из системного окружения.

data-type определяет тип данных для данных строк, разрешены следующие значения:

text указывает, что ключи сортировки должны быть упорядочены лексически в соответствии с культурными особенностями языка, указанного в атрибуте lang

number указывает что ключи сортировки должны быть преобразованы в числа, а затем упорядочены в соответствии со своим числовым значением, ключ сортировки преобразуется в число как при вызове функции number, атрибут lang игнорируется

QName с префиксом преобразуется в расширенное имя как описано в главе [2.4 Полные имена]. Расширенное имя идентифицирует тип данных. Данный документ не конкретизирует действия, предпринимаемые в этом случае.

Значение по умолчанию – text.

Замечание: Рабочая группа xsl планирует, что будущие версии XSLT будут использовать схемы XML для определения других значений для этого атрибута.

case-order имеет значение upper-first или lower-first. Данный атрибут используется когда есть data- type='text' и указано что заглавные буквы должны ставиться прежде прописных, либо, соответственно, наоборот. Например, если есть lang='en', то последовательность A a B b получается после сортировки с case-order='upper- first', а a A b B – после case-order='lower-first'. Значение по умолчанию зависит от языка.

Замечание: Два разных xslt процессора, соответствующих спецификации, могут выполнять сортировку не совсем одинаково. Некоторые из XSLT процессоров могут не поддерживать некоторые языки. Более того, для любого конкретного языка может варьироваться сортировка, которая не была задана атрибутом xsl:sort . Например, делается ли в японском языке сперва сортировка Hiragana или Katakana. В будущих версиях XSLT могут появиться дополнительные атрибуты, дающие контроль над такими вариациями. Для этой цели реализация в xsl:sort может использовать атрибуты, привязанные к специальным пространствам имён.

Замечание: Рекомендуется чтобы разработчики обращались к [UNICODE TR10] за информацией по интернациональной сортировке.

Сортировка должна быть постоянной: в отсортированном списке узлов любое подмножество, имеющее ключи сортировки, дающие при сравнении равенство, должно быть выстроено в том же порядке, как и в исходном документе.

К примеру, предположим, что база данных служащих имеет формат

<employees>

<employee>

<name>

<given>James</given>

<family>Clark</family>

</name> …

</employee>

</employees>

в таком случае список служащих можно отсортировать по имени с помощью:

<xsl:template match='employees'>

<ul>

<xsl:apply-templates select='employee'>

<xsl:sort select='name/family'/>

<xsl:sort select='name/given'/>

</xsl:apply-templates>

</ul>

</xsl:template>

<xsl:template match='employee'>

<li>

<xsl:value-of select='name/given'/>

<xsl:text> </xsl:text>

<xsl:value-of select='name/family'/>

</li>

</xsl:template>

11 Переменные и параметры

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату