- •Лабораторная работа 4-04
- •3.2. Оформление страниц вXsl
- •3.2.1. Структура страницы
- •3.2.2. Элементы создания последовательности страниц
- •3.2.3. Элементы fo:layout-master-set и fo:simple-page-master
- •3.2.4. Элементы fo:region-body, fo:region-before, fo:region-after, fo:region-start и fo:region-end
- •3.2.5. Элементы, формирующие последовательности страниц
- •3.3. Блоковые элементыXsl
- •3.3.1. Элементfo:block
- •3.3.2. Элементfo:block-container
- •3.4. Внутристроковые элементы xsl
- •3.4.1. Элементfo:inline
- •3.4.2. Элементfo:inline-container
- •3.4.3. Элементfo:leader
- •3.4.4. Элементfo:initial-property-set
- •3.4.5. Элементfo:character
- •3.4.6. Элементы fo:external-graphic и fo:instream-foreign-object
- •3.4.7. Элементы fo:page-number и fo:page-number-citation
- •3.5. Элементы форматирования для таблиц
- •3.5.1. Элемент fo:table-and-caption и fo:table-caption
- •3.5.2. Элементfo:table
- •3.5.3. Элементыfo:table-header,fo:table-bodyиfo:table-footer
- •3.5.4. Элементfo:table-column
- •3.5.5. Элементfo:table-row
- •3.5.6. Элементfo:table-cell
- •3.6. Элементы форматирования списков вXsl
- •3.7. Создание закладок
- •3.8. Разрешение ссылок
- •3.9. Выполнение форматирования документов в xmlSpy
- •3.4.1. Создание документа xsl
- •3.4.2. Выполнение форматирования xsl
- •4. Порядок выполнения работы
- •Вариант 6-01
- •Вариант 6-02
- •Вариант 6-03
- •Вариант 6-04
- •Вариант 6-05
- •Вариант 6-06
- •Вариант 6-07
- •Вариант 6-08
- •Вариант 6-09
- •Вариант 6-10
- •Вариант 6-11
- •Вариант 6-12
- •Вариант 6-13
- •Вариант 6-14
- •Вариант 6-15
- •Вариант 6-16
- •Вариант 6-17
- •Вариант 6-18
- •Вариант 6-19
- •Вариант 6-20
- •Вариант 6-21
- •Вариант 6-22
- •Вариант 6-23
- •Вариант 6-24
- •Вариант 6-25
- •Вариант 6-26
- •Вариант 6-27
- •Вариант 6-28
- •Вариант 6-29
- •Вариант 6-30
- •5. Содержание отчета
- •6. Вопросы для самоконтроля
3.6. Элементы форматирования списков вXsl
В XSL имеется четыре элемента, используемых для построения списков: fo:list-block, fo:list-item, fo:list-item-label и fo:list-item-body.
Блоковый элемент 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).
3.7. Создание закладок
Закладки в документе PDFсоздаются вFOPс использованием расширенийXSL. Для того, чтобы использовать расширения, в корневом элементеXSL, наряду с пространством именXSLTиXSLнеобходимо определить пространство имен, используемое расширениями (по умолчанию, для расширенийFOPопределено пространство именfox:). В этом случае элементstylesheetпринимает следующий вид:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:fox="http://xml.apache.org/fop/extensions">
Пространство имен расширений FOPможно альтернативно определить и в элементеfo:root, поскольку расширения используются только внутри этого элемента.
Закладка может быть создана с помощью задания уникального атрибута idдля любого элементаXSL, например:
<fo:block id="section-01">Раздел 1</fo:block>
Ссылка на закладки создается с использованием элемента <fox:outline>, в котором в атрибутеinternal-destinationзадается идентификатор ссылки. В элементе<fox:label>внутри элемента<fox:outline>задается наименование закладки, выводимое в документеPDF, например:
<fox:outline internal-destination="section-01">
<fox:label>Раздел 1</fox:label>
</fox:outline>
Ссылки содержать несколько уровней, т.е. могут быть вложенными, например:
<fox:outline internal-destination="section-01">
<fox:label>Раздел 1</fox:label>
<fox:outline internal-destination="section-01-01">
<fox:label>Раздел 1.1</fox:label>
</fox:outline>
</fox:outline>
</fo:root>
