I | 2 → 'II' | ||
I | 10 → 'X' | ||
I | 27 → 'XXVII' | ||
I | 999 → 'IM' | ||
I | 1000 → 'M' | ||
i | Форматирует номер строчными римскими цифрами | i | 1 → 'i' |
i | 2 → 'ii' | ||
i | 10 → 'x' | ||
i | 27 → 'xxvii' | ||
i | 999 → 'im' | ||
i | 1000 → 'm' | ||
Другой | Форматирует номер k как k -й член последовательности, начинающейся этим токеном. Если нумерация таким токеном не поддерживается, вместо него используется токен 1 . | Не поддерживающийся токен | 1 → '1' |
b | 10 → 'k' | ||
Б | 2 → 'В' | ||
Б | 27 → 'Ы' | ||
á | 999 → 'ανψ' | ||
å | 1000 → 'βζο' |
При использовании алфавитной нумерации процессор может учитывать значение атрибута lang
элемента xsl:number
для того, чтобы использовать буквы алфавита соответствующего языка. Однако на практике возможность эта поддерживается очень слабо: большинство процессоров поддерживают алфавитную нумерацию только с использованием латиницы. Поэтому для того, чтобы использовать при алфавитной нумерации кириллицу, вместо атрибута lang
следует использовать форматирующие токены 'А
' (русская заглавная буква 'А
') и '&#х430;
' (русская строчная буква 'а
').
Для форматирования номеров в последовательности 1.1.a
, 1.1.б
, 1.1.в
, …, 1.2.а
и так далее можно использовать объявление вида:
<xsl:number
format='1.&#х430;'
level='multiple'
count='chapter|section'
from='doc'/>
Представим теперь себе следующую ситуацию: нам нужно начать нумерацию с латинской буквы i
для того, чтобы получить последовательность номеров вида i
, j
, k
, l
, m
и так далее. Первое, что приходит в голову — это запись вида
<xsl:number format='i' ... />
Однако вместо требуемой последовательности мы получим последовательность строчных римских цифр: i
, ii
, iii
и так далее. Иными словами, некоторые форматирующие токены определяют нумерующую последовательность двусмысленно: одним вариантом является алфавитная последовательность, начинающаяся этим токеном, другим — некая традиционная для данного языка (например, последовательность римских цифр для английского).Для того чтобы различать эти