Kniga-Online.club

Алексей Валиков - Технология XSLT

Читать бесплатно Алексей Валиков - Технология XSLT. Жанр: Программирование издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

     c) paragraph 3

  1.2. Second section

     d) paragraph 4

     e) paragraph 5

2. Second chapter

  2.1 Third section

     f) paragraph 6

     g) paragraph 7

     h) paragraph 8

     i) paragraph 9

  2.2 Forth section

     j) paragraph 10

     k) paragraph 11

     l) paragraph 12

  2.3 Fifth section

     m) paragraph 13

     n) paragraph 14

     o) paragraph 15

     p) paragraph 16

3. Third chapter

  3.1 Sixth section

     q) paragraph 17

     r) paragraph 18

Форматирование номеров

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

□ Список номеров будет пустым, если в области нумерации не оказалось нумеруемых узлов.

□ Список номеров будет состоять не более чем из одного числа при использовании методов single и any.

□ Список номеров будет состоять из нуля или более чисел (по одному на каждый уровень нумерации) при использовании метода multiple.

На этапе форматирования список номеров преобразуется в строку и вставляется результирующее дерево в виде текстового узла.

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

Форматирование списка номеров производится в соответствии со значениями атрибутов format, lang, letter-value, grouping-separator и grouping-size, назначение и использование которых мы и будем разбирать в этом разделе.

Основным атрибутом форматирования является атрибут format, который содержит последовательность форматирующих токенов. Каждый форматирующий токен состоит из букв и цифр; он определяет процедуру форматирования для каждого числа из списка форматируемых номеров. В значении атрибута format форматирующие токены отделяются друг от друга сочетаниями символов, которые не являются буквами и цифрами. Такие сочетания называются разделяющими последовательностями. При форматировании они остаются в строковом выражении номера без изменений.

Пример

В примере к методу multiple мы использовали следующий элемент xsl:number:

<xsl:number

 format="     1.1."

 level="multiple"

 count="doc|chapter|para"

 from="doc"/>

Разберем строение атрибута format этого элемента (на рис. 8.12 пробелы обозначены символами "□"):

Рис. 8.12. Строение атрибута format элемента xsl:number

Список номеров в том примере состоял из номера элемента chapter (числа 2) и номера элемента para (тоже 2). Номер, генерируемый элементом xsl:number, будет состоять из:

□ разделяющей последовательности "□□□□□", которая будет скопирована, как есть;

□ числа 2, которое получается в результате форматирования номера 2 форматирующим токеном "1";

□ разделяющего символа ".";

□ числа 2, которое получается в результате форматирования номера 2 вторым форматирующим токеном "1";

□ разделяющего символа ".".

Объединив все эти части, мы получим отформатированный номер "□□□□□2.2".

Несложно заметить, что главную роль при преобразовании списка номеров в их строковое представление играют форматирующие токены. Каждый такой токен преобразовывает соответствующий ему номер в строку. В табл. 8.3 мы приведем описания этих преобразований.

Таблица 8.3. Форматирующие токены

Токен Описание Примеры Токен Преобразование 1 Форматирует номер в виде строкового представления десятичного числа 1 1 → '1' 1 2 → '2' 1 10 → '10' 1 999 → '999' 1 1000 → '1000' 0...01 Форматирует номер в виде строкового представления десятичного числа; если получившая строка короче токена, она дополняется предшествующими нулями 0001 1 → '0001' 001 2 → '002' 001 10 → '010' 01 999 → '999' 00001 1000 → '01000' A Форматирует номер в виде последовательности заглавных букв латинского алфавита A 1 → 'A' A 2 → 'B' A 10 → 'J' A 27 → 'AA' A 999 → 'ALK' A 1000 → 'ALL' a Форматирует номер в виде последовательности строчных букв латинского алфавита a 1 → 'a' a 2 → 'b' a 10 → 'j' a 27 → 'aa' a 999 → 'alk' a 1000 → 'all' I Форматирует номер заглавными римскими цифрами I 1 → 'I' 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 следует использовать форматирующие токены "&#x410;" (русская заглавная буква "А") и "&#х430;" (русская строчная буква "а").

Перейти на страницу:

Алексей Валиков читать все книги автора по порядку

Алексей Валиков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Технология XSLT отзывы

Отзывы читателей о книге Технология XSLT, автор: Алексей Валиков. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*