
- •Лекция 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.21.3. Компоненты документаFo
Текстовый документ, содержащий объекты форматирования, т.е. элементы в пространстве имен fo:, называетсядокументом FO. Этот документ описывает как общую компоновку отформатированного документа XML, так и его стилевое оформление.
Файл документа FO обычно имеет расширение .fo. Этапы преобразования и форматирования могут быть совмещены в одном файле с расширением.xsl(элементы форматирования в этом случае используются внутри конструкторов последовательностей).
При обработке документа FOвыводимое содержимое исходного или преобразованного документа XML разбивается на страницы (окноWeb-браузера также можно рассматривать как одну длинную страницу). Каждая страница содержит несколько областей. Существуют четыре первичных вида областей:
регионы;
блоковые области;
строковые области;
внутристроковые области.
РегионвXSLявляется контейнером самого верхнего уровня. Например, страница в книге может содержать верхний колонтитул, тело страницы и нижний колонтитул. Регионы содержат блоковые области.
Блоковая областьпредставляет элемент уровня блока, например, абзац или список. Блоковая область может содержать анализируемые символьные данные, внутристроковые области, строковые области и другие блоковые области, которые последовательно размещаются в содержащей их блоковой области.
Строковая областьпредставляет собой строку текста в блоковой области (например, пункт в списке). Строковая область может содержать внутристроковые области и внутристроковые пробелы.
Внутристроковые областипредставляют собой части строки: одиночный символ, ссылка в тексте или математическая формула. Внутристроковые области могут содержать другие внутристроковые области и текст.
Каждая область имеет прямоугольник содержимого(content-rectangle), в которой с помощью дочерних элементов выводится содержимое области, а также необязательные отступ и рамку (рис. 5.3.7). Прямоугольник, ограниченный внешней кромкой рамки, называетсяпрямоугольником рамки(border-rectangle), а прямоугольник, ограниченный внешней кромкой отступа, называетсяпрямоугольником отступа(padding-rectangle).
Рис. 5.3.7. Структура области в отформатированном документе
5.3.22. Оформление страниц вXsl
5.3.22.1. Структура страницы
Структура объектов форматирования для вывода страниц представлена на рис. 5.3.8.
Корневым элементом документа FOявляется элементfo:root. Содержимым элемента является один элементlayout-master-set, 0 или 1 элементовdeclarationsи один и более элементовpage-sequence.
Элемент fo:rootимеет единственное свойствоmedia-usage. Это свойство используется для управления тем, как выбранный носитель вывода, специфицированный таблицей стилей, используется для представления страницы (страниц) и может принимать одно из следующих значений:
"auto"– пользовательский агент (например,Web-браузер) сам определяет, какое значение свойства (отличное от"auto") использовать (значение по умолчанию);
"paginate"– последовательность страниц генерируется из объектовfo:page-sequence, которые являются потомками объектаfo:root;
"bounded-in-one-dimension"– генерируется только одна страница на объектfo:page-sequence, причем на первой используемой мастер-странице должно быть задано только"page-height"или только"page-width";
"unbounded "– генерируется только одна страница на объектfo:page-sequence, причем на первой используемой мастер-странице не должно быть задано ни"page-height", ни"page-width".
Элемент fo:rootсодержит один дочерний элементfo:layout-master-set, необязательный элементfo:declarationsи один и более элементовfo:page-sequence.
Рис. 5.3.8. Структура объектов форматирования для вывода страниц