- •Лекция 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.27.2. Переключение между поддеревьями объектов форматирования
Для переключения между поддеревьями используются элементы fo:multi-switch, fo:multi-case и fo:multi-toggle. Структура результирующего дерева показана на рис. 5.3.13.
Элемент fo:multi-switch служит оболочкой для определения альтернативных поддеревьев объектов форматирования (каждое поддерево находится внутри элемента fo:multi-case) и управляет активируемым с помощью fo:multi-toggle переключением альтернатив. Содержимым этого элемента является один или несколько элементов fo:multi-case.
Для элемента может быть задан уникальный идентификатор в свойстве id.

Рис. 5.3.13. Структура результирующего дерева
Свойство auto-restore задает поведение переключателей в случае вложенных элементов fo:multi-switch. Значение "true" определяет, что если этот переключатель fo:multi-switch содержится в другом переключателе fo:multi-switch и этот fo:multi-switch изменяет активный fo:multi-case (скрывая fo:multi-switch), тогда этот fo:multi-switch должен восстанавливать этот начальный fo:multi-case, а значение "false" определяет, что этот fo:multi-switch не должен изменять свой fo:multi-case (это значение по умолчанию).
Элемент fo:multi-case используется как контейнер (внутри fo:multi-switch) каждого альтернативного поддерева объектов форматирования, среди которых родительский элемент fo:multi-switch выберет одно для показа и скроет остальные. Содержимое этого элемента либо пустое, либо одна или несколько символьных областей (#PCDATA), либо одна или несколько блоковых областей, либо одна или несколько внутристроковых областей.
Обязательное свойство name задает имя элемента (имя должно быть уникальным среди имеющихся родственных элементов fo:multi-case, т.е. в области видимости объекта fo:multi-switch, который их содержит).
Обязательное свойство case-title задает строку – описательное название для элемента fo:multi-case. Название может отображаться в меню для представления этого элемента, когда элемент fo:multi-toggle именует несколько элементов fo:multi-case как допустимые объекты назначения.
Для элемента может быть задан уникальный идентификатор в свойстве id.
Свойство starting-state задает начальное состояние видимости элемента: значение "show" – элемент является видимым (значение по умолчанию) или "hide" – элемент является невидимым.
Элемент fo:multi-toggle обычно используется для установки области, которая, после активации (например, реализованной как "clicked"), осуществляет переключение от одного элемента fo:multi-case к другому.
Содержимое этого элемента либо пустое, либо одна или несколько символьных областей (#PCDATA), либо одна или несколько блоковых областей, либо одна или несколько внутристроковых областей.
Для элемента может быть задан уникальный идентификатор в свойстве id.
Свойство switch-to определяет, на какой из элементов fo:multi-case будет переключать этот элемент. Это свойство может принимать одно из следующих значений:
"xsl-preceding"– активация переключателя должна в результате давать замещение текущего элементаfo:multi-caseего предшествующим родственником;
"xsl-following"– активация переключателя должна в результате давать замещение текущего элементаfo:multi-caseего последующим родственником;
"xsl-any"– активация переключателя должна дать пользователю возможность выбора другого родственника – элементаfo:multi-case(значение по умолчанию)
имя– значение свойстваcase-nameэлементаfo:multi-case;
список– списокимен, разделенных пробелами (пользователь может переключаться на любой из именованных объектов).
