- •Лекция 4-09
- •5.3.21. Форматирование документов xml с помощью xsl
- •5.3.21.1. Средства форматирования документовXml
- •5.3.21.2. Этапы форматирования документаXml
- •5.3.21.3. Компоненты документаFo
- •5.3.22. Оформление страниц вXsl
- •5.3.22.1. Структура страницы
- •5.3.22.2. Элементы fo:declarations и fo:color-profile
- •5.3.22.3. Элементы создания последовательности страниц
- •5.3.22.4. Элементы fo:layout-master-set и fo:simple-page-master
- •5.3.22.5. Элементы fo:region-body, fo:region-before, fo:region-after, fo:region-start и fo:region-end
- •5.3.22.6. Элементы, формирующие последовательности страниц
- •5.3.23. Блоковые элементыXsl
- •5.3.23.1. Элементfo:block
- •5.3.23.2. Элементfo:block-container
- •5.3.24. Внутристроковые элементыXsl
- •5.3.24.1. Элементfo:inline
- •5.3.24.2. Элементfo:inline-container
- •5.3.24.3. Элементfo:leader
- •5.3.24.4. Элементfo:initial-property-set
- •5.3.24.5. Элементfo:character
- •5.3.24.6. Элементы fo:external-graphic и fo:instream-foreign-object
- •5.3.24.7. Элементы fo:page-number и fo:page-number-citation
- •5.3.25. Элементы форматирования для таблиц
- •5.3.25.1. Элемент fo:table-and-caption и fo:table-caption
- •5.3.25.2. Элементfo:table
- •5.3.25.3. Элементыfo:table-header,fo:table-bodyиfo:table-footer
- •5.3.25.4. Элементfo:table-column
- •5.3.25.5. Элементfo:table-row
- •5.3.25.6. Элементfo:table-cell
- •5.3.26. Элементы форматирования для списков вXsl
- •5.3.27. Элементы динамического форматирования вXsl
- •5.3.27.1. Однонаправленные одноцелевые ссылки
- •5.3.27.2. Переключение между поддеревьями объектов форматирования
- •5.3.27.3. Переключение между различными значениями свойств
- •5.3.28. Внестроковые элементыXsl
5.3.26. Элементы форматирования для списков вXsl
В XSL имеется четыре элемента, используемых для построения списков: fo:list-block, fo:list-item, fo:list-item-label и fo:list-item-body.
Иерархия этих элементов приведена на рис. 5.3.12.

Рис. 5.3.12. Структура элементов форматирования для списков
Блоковый элемент fo:list-block используется для форматирования списка. Содержимым этого элемента является один или несколько элементов list-item.
Блоковый элемент fo:list-item содержит метку (элемент fo:list-item-label) и тело (элемент fo:list-item-body) элемента списка. Кроме того, fo:list-item элемент может содержать 0 или более элементов fo:marker в качестве начальных дочерних элементов.
Для элементов fo:list-block и fo:list-item так же, как и для элемента fo:title, могут быть заданы общие свойства рамки, отступа и фона. Кроме того, для этих элементов могут быть заданы общие свойства полей блока (как и для элементаfo:simple-page-master), а также свойства относительного позиционирования и свойстваid,keep-with-previous, keep-with-next, keep-together, intrusion-displace, break-before и break-after (как для элементаfo:block).
Для элемента fo:list-item может быть задано свойствоrelative-align, которое определяет выравнивание, в направлении block-progression-direction, между двумя областями или более. Значение "before" определяет, что передний край потомка первой области, генерируемого объектом fo:list-item-label, размещается прилегающим к начальному краю области, генерируемой объектом fo:list-item (это значение по умолчанию). Значение "baseline" определяет, расстояние между базовой линией первой строчной области первого потомка области, генерируемого объектом fo:list-item-label, то же самое, что и расстояние между первой базовой линией первой строчной области первого потомка области, генерируемого объектом fo:list-item-body.
Для элемента fo:list-block определены также свойства provisional-distance-between-starts и provisional-label-separation.
Первое свойство определяет расстояние (в фиксированных единицах измерения или процентах) между начальным отступом метки элемента списка и началом тела элемента списка, а второе – расстояние (в фиксированных единицах измерения или процентах) между концом метки элемента списка и началом тела элемента списка. По умолчанию, значение первого свойства равно "24.0pt", а второго – "6.0pt".
Элемент fo:list-item-label определяет метку элемента списка, а элемент fo:list-item-body – тело элемента списка. Содержимым этих элементов является один или несколько блоковых элементов.
Для этих элементов определены свойства idиkeep-together (как для элементаfo:block).
5.3.27. Элементы динамического форматирования вXsl
Элементы динамического форматирования в XSL обеспечивают следующие возможности:
однонаправленные одноцелевые ссылки;
переключение между выводом двух или более поддеревьев объектов форматирования (например, раскрывающихся/сжимающихся оглавлений, отображения иконок или полной таблицы или графики);
переключение между различными значениями свойств (например, как цвет или размер шрифта).
5.3.27.1. Однонаправленные одноцелевые ссылки
Для реализации однонаправленных одноцелевых ссылок в XSL используется элемент fo:basic-link. Содержимое этого элемента либо пустое, либо одна или несколько символьных областей (#PCDATA), либо одна или несколько блоковых областей, либо одна или несколько внутристроковых областей.
Свойства internal-destination и external-destination задают соответственно внутреннюю или внешнюю ссылку. Для внешней ссылки задается URI, а для внутренней – узел объекта назначения потока (обычно значение свойства id элемента, на который ссылается данный элемент). Одно из этих свойств должно быть обязательно задано в элементе (одновременное задание обоих свойств считается ошибкой).
Для элемента fo:basic-link так же, как и для элемента fo:title, могут быть заданы общие свойства рамки, отступа и фона, а также внутристроковые свойства space-start и space-end. Для этого элемента могут быть также заданы свойства dominant-baseline, alignment-baseline, alignment-adjust, и baseline-shift (как для элементаfo:inline). Кроме того, для этого элемента могут быть заданы общие свойства относительного позиционирования и свойстваid,keep-with-previous, keep-with-next и keep-together (как для элементаfo:block).
Свойство CSS2line-height определяет высоту строки.
Свойство show-destination задает, должен ли быть ресурс назначения видимым. Значение "replace" определяет, что текущий вид документа должен быть замещён (это значение по умолчанию), а свойство "new" – что всегда должен открываться новый (дополнительный) вид документа.
Свойство indicate-destination определяет должны ли области при их пересечении (например, курсором мыши) быть обозначены каким-то образом (значение "true") или нет (значение "false"). Значение по умолчанию для этого свойства - "false".
Свойство target-stylesheet определяет способ использования таблиц стилей для ресурса, на который выполняется ссылка. Значение "use-normal-stylesheet" (это значение по умолчанию) задает обычные для пользовательского агента методы определения таблицы стиле, а задание в качестве значения URI определяет таблицу стилей, которая будет использоваться для обработки ресурса.
Свойство target-processing-context определяет контекст обработки элемента, на который производится ссылка. Значение "document-root" задает в качестве контекста корень документа внешней ссылки (это значение по умолчанию), а задание в качестве значения URI определяет корень виртуального документа, который должен быть обработан процессором, готовящим новое представление, если внешняя ссылка является ресурсом обработанного структурированного типа носителя (например, XML, SVG).
Свойство target-presentation-context определяет контекст представления ссылки. Значение use-target-processing-context задает использование контекста, определенного свойством target-processing-context (это значение по умолчанию), а задание в качестве значения URI определяет ограниченный контекст, в котором ресурс должен быть представлен, если внешнее назначение является ресурсом обработанного структурированного типа носителя, для которого имеет смысл ограниченный контекст представления (например, XML, XHTML, SVG).
