XSLT - Стивен Холзнер
Шрифт:
Интервал:
Закладка:
• <fo:declarations>. Создает глобальные объявления;
• <fo:external-graphic>. Добавляет в документ графику (графические данные располагаются за пределами результирующего документа, но могут быть интегрированы в документы PDF такими процессорами, как fop);
• <fo:float>. Указывает, что определенное содержимое будет форматироваться в отдельной, незакрепленной области в начале страницы или сдвинутой к одной из сторон;
• <fo:flow>. Обрабатывает поток текста, отображаемый в документе. Накладывает блокировку на «поток» встроенных областей, когда они заменяются в документе;
• <fo:footnote>. Задает ссылку на сноску, а также саму связанную с ней сноску;
• <fo:footnote-body>. Определяет содержимое сноски;
• <fo:initial-property-set>. Задает форматирующие свойства для начальной строки блока;
• <fo:inline>. Создает встроенную область (inline area). Встроенные области часто применяются для форматирования определенной части текста в блоке;
• <fo:inline-container>. Создает контейнер для встроенных объектов, позволяя обрабатывать их все вместе;
• <fo:instream-foreign-object>. Используется для вставки в документ встроенной графики или другого объекта;
• <fo:layout-master-set>. Задает оболочку для всех шаблонов, используемых в документе;
• <fo:leader>. Создает строку из повторяющегося символа или образец из символов для разделения двух текстовых форматирующих объектов;
• <fo:list-block>. Создает форматированный список, — с ним мы познакомимся в следующей главе;
• <fo:list-item>. Задает метку и тело элемента списка;
• <fo:list-item-body>. Задает содержимое тела элемента списка;
• <fo:list-item-label>. Задает содержимое метки элемента списка;
• <fo:marker>. Применяется вместе с <fo:retrieve-marker> для создания колонтитулов или сносок по ходу работы;
• <fo:multi-case>. Задает объекты, которые показывает или скрывает родительский элемент <fo:multi-switch>;
• <fo:multi-properties>. Позволяет переключаться между двумя или более наборами свойств;
• <fo:multi-property-set>. Задает альтернативный набор свойств;
• <fo:multi-switch>. Переключает между двумя или более поддеревьями форматирующих объектов;
• <fo:multi-toggle>. Используется внутри элемента <fo:multi-case> для переключения на другой <fo:multi-case>;
• <fo:page-number>. Указывает номер текущей страницы;
• <fo:page-number-citation>. Ссылается на номер страницы, содержащей заданный форматирующий объект;
• <fo:page-sequence>. Определяет способ создания последовательности страниц в документе;
• <fo:page-sequence-master>. Содержит последовательности шаблонов страниц, используемых для создания последовательностей страниц;
• <fo:region-after>. Обозначает область, расположенную после области <fo:region-body>;
• <fo:region-before>. Обозначает область перед областью <fo:region-body>;
• <fo:region-body>. Обозначает область в центре <fo:simple-page-master>;
• <fo:region-end>. Обозначает область в конце области <fo:region-body>;
• <fo:region-start>. Обозначает область, начинающую область <fo:region-body>;
• <fo:repeatable-page-master-alternatives>. Задает повторяющиеся экземпляры набора альтернативных шаблонов страниц;
• <fo:repeatable-page-master-reference>. Обозначает подпоследовательность повторяющихся экземпляров единственного шаблона страницы;
• <fo:retrieve-marker>. Используется вместе с <fo:marker> для создания колонтитулов или сносок в рабочем режиме;
• <fo:root>. Узел документа, отформатированного при помощи XSL;
• <fo:simple-link>. Задает начальное место в простой ссылке;
• <fo:simple-page-master>. Определяет форму страницы, которая может быть разделена на области (до пяти областей);
• <fo:single-page-master-reference>. Определяет подпоследовательность, образованную из единственного экземпляра единственного шаблона страницы;
• <fo:static-content>. Содержит последовательность форматирующих объектов, которые будут отображены в одной области или повторены в областях в одной или более страницах в последовательности страниц. Чаще всего применяется для повторяющихся колонтитулов и сносок;
• <fo:table>. Создает таблицу. Содержит такие элементы, как <fo:table-column> и <fo:table-body>;
• <fo:table-and-caption>. Содержит данные и заголовок таблицы;
• <fo:table-body>. Определяет содержимое тела таблицы. Содержит такие элементы, как <fo:table-row>;
• <fo:table-caption>. Задает форматирующие объекты уровня блока, в которых содержится заголовок таблицы;
• <fo:table-cell>. Помещает данные в ячейки таблицы;
• <fo:table-column>. Задает свойства ячеек в одном столбце таблицы;
• <fo:table-footer>. Определяет содержимое нижнего колонтитула таблицы;
• <fo:table-header>. Определяет содержимое верхнего колонтитула таблицы;
• <fo:table-row>. Связывает ячейки таблицы в строки. Содержит элементы <fo:table-cell>;
• <fo:title>. Задает заголовок документа;
• <fo:wrapper>. Задает свойства для группы форматирующих объектов;
Каждый из этих элементов также поддерживает одно или несколько форматирующих свойств XSL-FO.
Форматирующие свойства XSL-FO
Форматирующие свойства XSL-FO настраивают действия перечисленных в предыдущем разделе форматирующих объектов; работайте с ними в документах XSL-FO так же, как с атрибутами элементов. Например, вот как я установил семейство (family), размер (size) и насыщенность (weight;) шрифта для текста в блоке:
<fo:block color="blue" font-family="Times"
font-size="36pt" font-weight="bold">
Hello from XSL-FO!
</fo:block>
Полный список свойств XSL-FO и их описание можно найти по адресу www.w3.org/TR/xsl/slice7.html. Многие свойства XSL-FO унаследованы из спецификации для каскадных таблиц стилей версии 2, CSS2, которую вы можете найти по адресу www.w3.org/TR/REC-CSS2.
В следующем списке перечислен ряд наиболее распространенных свойств XSL-FO. Полный список свойств (весьма длинный) приведен в Приложении Б. В списке используется следующий синтаксис, соответствующий спецификации XSL-FO:
• <> обозначает единицы значений (см. таблицу 11.1) или свойства (например, <color>), которые уже были определены;
• | означает вариант выбора, использовать можно только один из них;
• || означает вариант выбора, можно использовать один или несколько вариантов в любом порядке;
• [] означает групповые инструкции, вычисляемые во многом так же, как и математические выражения;
• * означает, что предыдущий терм может встречаться ноль или более раз;
• + означает, что предыдущий терм может встречаться один или более раз;
• ? означает, что предыдущий терм необязателен;
• {} окружают пары чисел, задающие минимальное и максимальное число раз встречи терма (как в {1, 4});
Во многих свойствах XSL-FO определен определенный формат для присваиваемых им значений, как, например <color> или <angle>, — эти форматы и их описание перечислены в табл. 11.1.
Таблица 11.1. Форматы спецификации XSL-FO
Формат Описание <absolute-size> Абсолютные размеры шрифта; могут быть xx-small, x-small, small (маленький), medium (средний), large (крупный), x-large, xx-large <angle> Углы; могут измеряться в deg (градусах), grad (градах) или rad (радианах) idctlpar<border-style> Граница прямоугольника, может принимать значения none (нет), dotted (пунктиром), dashed (штрихами), solid (непрерывная), double (двойная), groove (канавкой), ridge (с толстой кромкой), inset (вложенная) или outset (вынесенная) <border-width> Устанавливает ширину границы; может принимать значения thin (тонкая), medium (средняя), thick (толстая) или конкретного размера <color> Цвет; может быть задан предопределенным значением цвета или тройным цветовым значением RGB, как в HTML, — например, «FFFFFF» для белого цвета <country-language> Устанавливается в значение <language> (см. <language>) <family-name> Название семейства шрифтов — такого, как Arial, Times New Roman или Courier <frequency> Значения частоты; единицами измерения могут быть Hz (Гц) или KHz (кГц) <generic-family> Обобщенные названия шрифтов, применяемых в качестве последней попытки, если браузер не может найти определенный шрифт. Например, serif (браузер должен выбрать шрифт serif), sans-serif (браузер должен выбрать семейство sans-serif) и monospace (браузер должен выбрать моноширинный шрифт) <generic-voice> Звук голоса; может быть male (мужской), female (женский) или child (детский) <integer> Стандартные целые значения <keep> Контекстно-зависимое свойство; принимает значение Auto, для того чтобы не удерживать вместе ограничения, или Always для жесткого удержания ограничений вместе. Дополнительная информация приведена в спецификации XSL <language> Определитель языка, соответствующий спецификации RFC1766 (которую можно найти по адресу www.w3.org/TR/xsl/sliceD.html#RFC1766) <length> Длина; может начинаться с + или -, за которыми следует число. Число может содержать десятичную точку, за которой следует идентификатор единиц, принимающий значения em (размер шрифта соответствующего шрифта), ex (x-height, высота шрифта), рх (пикселов, pixel, определяется устройством просмотра), pt (пунктов, point, 1/72 дюйма), in (дюймов, inch), cm (сантиметров), mm (миллиметров) или pc (пик, pica, 1/6 дюйма) <length-bp-ip-direction> Задает расстояние, разделяющее смежные границы ячейки в направлении размещения строк. Дополнительная информация приведена на www.w3.org/TR/xsl/slice7.html <length-conditional> Составное значение, задающее ширину и возможный тип передней границы. Дополнительная информация приведена на www.w3.org/TR/xsl/slice7.html#pr-section <length-range> Определяет диапазон длины, как определено в спецификации XSL <margin-width> Может принимать значения <length>, <percentage> или auto. Работа значения auto зависит от контекста, подробности приведены на www.w3.org/TR/REC-CSS2/visudet.html#Computing_widths_and_margins <number> Число, может включать знак и десятичную точку <padding-width> Устанавливается в значение <length> <percentage> Число, которое может содержать знак, за которым следует знак процента (%) <relative-size> Размер шрифта относительно родительского элемента, может быть Larger (больше) или Smaller (меньше) <shape> Пока может задавать только прямоугольник (shape — фигура), как, например: rect(<top> <right> <bottom> <left>) <space> Задает минимальное, оптимальное и максимальное значения для пробела. Подробности см. на www.W3.org/TR/xsl/slice4.html#spacecond <specific-voice> Задает определенный голос. Подробности см. на www.w3.org/TR/REC-CSS2/aural.html#propdef-voice-family <time> Единицы времени, указанные как число, за которым сразу же следует ms (миллисекунды) или s (секунды) <uri-specification> Uniform Resource Indicator (URI); web-адрес элемента страницы такого, как рисунокПримите также к сведению, что свойства XSL-FO, как и свойства CSS2, могут принимать значение «inherit», что означает, что значение свойства должно быть унаследовано от его родительского элемента.