- •Лекция 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.3. Переключение между различными значениями свойств
Элемент fo:multi-properties используется для переключения между двумя или более наборами, ассоциированными с данной частью содержимого, и может использоваться для создания различных представлений данной части содержимого.
Содержимым данного элемента является один или несколько элементов fo:multi-property-set и один элемент fo:wrapper.
Единственное свойство элемента fo:multi-properties – id, определяющее уникальный идентификатор элемента.
Вспомогательный элемент fo:multi-property-set используется для задания альтернативного набора свойств форматирования, который используется для альтернативного представления дочерних объектов потока элемента fo:wrapper – потомка родителя этого элемента fo:multi-property-set. Этот элемент не имеет содержимого.
Для элемента может быть задан уникальный идентификатор в свойстве id.
Обязательное свойство active-state управляет тем, какой из наборов fo:multi-property-sets используется для форматирования дочерних объектов потока внутри элемента fo:multi-properties. Состояния (или как минимум события, вызывающие определённые состояния) определены в DOM. Это свойство должно иметь одно из следующих значений:
"link"– применяется, если имеетсяfo:basic-link– потомок родительскогоfo:multi-properties, и эта ссылка ещё не посещалась;
"visited"– применяется, если имеетсяfo:basic-link– потомок родительскогоfo:multi-properties, и эта ссылка уже посещалась;
"active"– применяется, если нормальная область, возвращаемая родительским объектомfo:multi-properties, активирована пользователем (например, в промежуток времени между нажатием и отпусканием клавиши мыши);
"hover"– применяется, если пользователь указал на нормальную область, возвращаемую родительским объектомfo:multi-properties(некоторым указательным устройством), но не активировал её (например, курсор мыши проходит над этой областью);
"focus"– применяется, если нормальная область, возвращаемая родительским объектомfo:multi-properties, имеет фокус (принимает события от клавиатуры или другие формы ввода текста).
Элемент fo:wrapper используется для задания наследуемых свойств для группы элементов. Содержимое этого элемента либо пустое, либо одна или несколько символьных областей (#PCDATA), либо одна или несколько блоковых областей, либо одна или несколько внутристроковых областей.
Элемент fo:wrapper может иметь только потомков, которые могут быть потомками родителя объекта fo:wrapper, с двумя исключениями:
элемент fo:wrapperвсегда может содержать последовательность из 0 или болееfo:markerв качестве начальных потомков:
только fo:wrapper– потомокfo:multi-propertiesможет иметь потомков, которые допускаются вместоfo:multi-properties.
Единственное свойство элемента fo:wrapper – id, определяющее уникальный идентификатор элемента.
5.3.28. Внестроковые элементыXsl
Элемент fo:float обычно используется для позиционирования изображения в отдельной области в начале страницы или для позиционирования изображения у одной из сторон с нормальным содержимым, обтекающим изображение вокруг и с одной стороны. Содержимым этого элемента является один или несколько блоковых элементов.
Позаимствованное из CSS2 свойство float определяет должен ли элемент «обтекаться» текстов справа или слева, или вообще не «обтекаться», а свойство CSS2 clear показывает, какие стороны окна элемента не могут быть смежными с предыдущим всплывающим окном.
Элемент fo:footnote обычно используется для задания сносок внутри региона region-body на странице и соответствующих сносок в отдельной области, ближайшей к нижнему краю этой страницы. Содержимым этого элемента является любой внутристроковый элемент и элемент fo:footnote-body. Элемент не имеет свойств.
Элемент fo:footnote-body используется для генерации содержимого сноски. Его содержимым является один или несколько блоковых элементов. Этот элемент также не имеет свойств.
Элементы fo:marker и fo:retrieve-marker используются совместно для создания фиксированных верхних или нижних колонтитулов.
Типичные примеры: шапки словарей, показывающие первое и последнее слово, определённые на странице, шапки, показывающие заголовки глав и разделов страницы.
Содержимое элемента fo:marker либо пустое, либо одна или несколько символьных областей (#PCDATA), либо одна или несколько блоковых областей, либо одна или несколько внутристроковых областей. Элемент fo:retrieve-marker имеет пустое содержимое.
Обязательное свойство retrieve-class-name элемента fo:retrieve-marker определяет имя, совпадающее со значением свойства marker-class-name объекта fo:marker.
Обязательное свойство marker-class-name элемента fo:marker определяет этот элемент как находящийся в группе с другими элементами, имеющими то же имя (значение свойства marker-class-name), каждый из которых становится кандидатом на запрос со стороны объектом fo:retrieve-marker, имеющим свойство retrieve-class-name с тем же значением.
Свойство retrieve-position элемента fo:retrieve-marker задает приоритет запросов потомков объекта fo:marker объектом fo:retrieve-marker. Это свойство может иметь одно из следующих значений: "first-starting-within-page" – приоритет для первого появления внутри страницы (значение по умолчанию); "first-including-carryover" – приоритет для первого потомка; "last-starting-within-page" – приоритет для последнего появления внутри страницы; "last-ending-within-page" – приоритет для последнего окончания внутри страницы.
Свойство retrieve-boundary элемента fo:retrieve-marker задает, что потомки любого объекта fo:marker, являющиеся потомками объекта fo:flow внутри документа, могут быть запрошены этим fo:retrieve-marker. Это свойство может иметь одно из следующих значений: "page" – потомки любого объекта fo:marker, чей родитель сгенерирован или возвращён нормальной областью внутри содержащей страницы или сгенерирован ненормальной областью внутри содержащей страницы, могут быть запрошены этим элементом fo:retrieve-marker; "page-sequence" – только потомки объекта fo:markers, являющиеся потомками объекта fo:flow внутри содержащей последовательности fo:page-sequence, могут быть запрошены этим элементом fo:retrieve-marker (значение по умолчанию); "document" – потомки любого объекта fo:marker, являющиеся потомками объекта fo:flow внутри документа, могут быть запрошены этим элементом fo:retrieve-marker.
Файл:
