Валиков Алексей Н.
Шрифт:
Форматирование номеров
Возвращаясь немного назад, напомним, что результатом первого этапа выполнения
□ Список номеров будет пустым, если в области нумерации не оказалось нумеруемых узлов.
□ Список номеров будет состоять не более чем из одного числа при использовании методов
□ Список номеров будет состоять из нуля или более чисел (по одному на каждый уровень нумерации) при использовании метода
На этапе форматирования список номеров преобразуется в строку и вставляется результирующее дерево в виде текстового узла.
Преобразование номеров из списка в строку имеет совершенно иной характер, нежели чем приведение числа к строковому типу. При форматировании номера нужно получить не просто строковое представление числа, здесь требуется сгенерировать значащий текстовый индекс, который совершенно необязательно должен иметь цифровую запись.
Форматирование списка номеров производится в соответствии со значениями атрибутов
Основным атрибутом форматирования является атрибут
В примере к методу
Разберем строение атрибута
Рис. 8.12. Строение атрибута
Список номеров в том примере состоял из номера элемента
□ разделяющей последовательности "
□ числа
□ разделяющего символа "
□ числа
□ разделяющего символа "
Объединив все эти части, мы получим отформатированный номер "
Несложно заметить, что главную роль при преобразовании списка номеров в их строковое представление играют форматирующие токены. Каждый такой токен преобразовывает соответствующий ему номер в строку. В табл. 8.3 мы приведем описания этих преобразований.