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 и так далее. Иными словами, некоторые форматирующие токены определяют нумерующую последовательность двусмысленно: одним вариантом является алфавитная последовательность, начинающаяся этим токеном, другим — некая традиционная для данного языка (например, последовательность римских цифр для английского).Для того чтобы различать эти
