Форматирующие объекты XSL-FO
Форматирующие объекты XSL-FO
В документах XSLT мы работали с такими элементами, как <xsl:stylesheet>, <xsl:output> и т.д.:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xlmns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates/>
.
.
.
Документ XSL-FO написан во многом таким же способом, но вместо таких элементов XSLT, как <xsl:stylesheet>, применяются элементы, основанные на форматирующих объектах XSL-FO. Существует всего 56 таких форматирующих объектов — например, объект корня, создающий корневой узел документа XSL-FO, или объект блока, создающий область блока (прямоугольную область отображения, похожую на область, которую тег заголовка <Н1> создает в документе HTML).
У форматирующих объектов есть свое собственное пространство имен, «http://www.w3.org/1999/XSL/Format», и в качестве префикса этого пространства имен практически всегда используется fo, сокращение для formatting objects. (Это соглашение было принято потому, что данный префикс пространства имен используется в спецификации XSL.) При написании документов XSL-FO используются элементы, соответствующие различным объектам XSL-FO — например, <fo:root> для корневого элемента, <fo:block> для создания блока отображения и т.д. Вот как можно начать документ XSL-FO — заметьте, что я объявляю префикс пространства имен «fo», соответствующий пространству имен XSL-FO:
<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fо:layout-master-set>
<fo:simple-page-master margin-right="20mm" margin-left="20mm"
margin-bottom="10mm" margin-top="10mm" page-width="300mm"
page-height="400mm" master-name="page">
<fo:region-body margin-right="0mm" margin-left="0mm"
margin-bottom="10mm" margin-top="0mm"/>
.
.
.
Обратите внимание: документы; XSL-FO являются документами XML, поэтому везде можно использовать стандартные комментарии XML, <!-- такие как этот -->. Отметьте также, что элементы <fo:simple-page-master> и <fo:region-body> обладают такими атрибутами, как margin-right и page-height. В XSL-FO такие атрибуты называются свойствами, и их весьма много — на момент написания книги около 240. Например, вот как можно создать блок XSL-FO — прямоугольную область отображения — в котором выводится текст «Welcome to XSL formatting» (Добро пожаловать в форматирование XSL) шрифтом sans-serif размером 36 пунктов. Я использую форматирующий объект <fo:block> и свойства XSL-FO font-family — line-height (задающее высоту блока) и font-size:
<fo:block font-family="sans-serif" line-height="48pt" font-size="36pt">
Welcome to XSL formatting
</fo:block>
В этом разделе мы рассмотрим объекты XSL-FO, а в следующем — свойства XSL-FO для работы с ними. При помощи объектов и свойств XSL-FO вы можете создавать документы XSL-FO, которым обычно дается расширение .fo. Процессор fop преобразует такие документы в формат .pdf.
Все форматирующие объекты XSL-FO с описанием перечислены на www.w3.org/TR/xsl/slice6.html. Во время создания книги существуют такие объекты (с работой многих из них мы познакомимся в этой и следующей главах):
• <fo:bidi-override>. Перекрывает двунаправленный алгоритм Unicode (этот алгоритм используется в документах на нескольких языках);
• <fo:block>. Создает блок отображения для формирования прямоугольных областей, используемых при выводе абзацев, заголовков, подписей к рисункам и таблицам и т.д.;
• <fo:block-container>. Создает контейнер блоков, который затем можно помещать в любом месте;
• <fo:character>. Представляет единственный символ;
• <fo:color-profile>. Создает цветовой профиль для таблицы стилей, с которым потом можно работать при помощи цветовых функций (подробности см. на www.w3.org/TR/xsl/slice5.html#expr-color-functions);
• <fo:conditional-page-master-reference>. Задает шаблон страницы (page-master), который следует использовать при выполнении указанных условий;
• <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.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Форматирующие объекты XSL: XSL-FO
Форматирующие объекты XSL: XSL-FO Самая популярная часть XSL — это XSLT-преобразования, с которыми мы уже познакомились в этой главе. Другая, существенно большая часть — это форматирующие объекты XSL, XSL-FO (XSL Formatting Objects).При помощи XSL-FO можно с точностью до миллиметра задать
Форматирующие объекты XSL-FO
Форматирующие объекты XSL-FO В документах XSLT мы работали с такими элементами, как <xsl:stylesheet>, <xsl:output> и т.д.:<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xlmns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml"/> <xsl:template match="*"> <xsl:copy> <xsl:apply-templates/> . . .Документ XSL-FO
Форматирующие свойства XSL-FO
Форматирующие свойства XSL-FO Форматирующие свойства XSL-FO настраивают действия перечисленных в предыдущем разделе форматирующих объектов; работайте с ними в документах XSL-FO так же, как с атрибутами элементов. Например, вот как я установил семейство (family), размер (size) и
Встроенные форматирующие объекты
Встроенные форматирующие объекты Помимо объектов блока, в XSL-FO можно также создавать встроенные (inline) объекты. Встроенный объект представляет собой часть большей форматирующей области, такой как блок; например, встроенный объект может представлять одно или два слова в
Приложение Б Форматирующие свойства XSL-FO
Приложение Б Форматирующие свойства XSL-FO В этом приложений перечислены все форматирующие свойства XSL-FO в спецификации XSL 1.0. Подробнее о свойствах XSL-FO можно узнать по адресу www.w3.org/TR/xsl/slice7.html. Многие свойства XSL-FO унаследованы из спецификации для каскадных таблиц стилей
Объекты
Объекты В JScript под объектом понимается совокупность свойств и методов. Метод — это внутренняя функция объекта, свойство — это одно значение какого-либо типа или несколько таких значений (в виде массива или объекта), хранящихся внутри объекта. Поддерживаются три вида
Объекты
Объекты Итак, мы познакомились с типами данных, переменными, константами, операторами, простыми и сложными выражениями, функциями и массивами. Но это была, так сказать, присказка, а сказка будет впереди. Настала пора узнать о самых сложных структурах данных JavaScript —
5.4. Объекты
5.4. Объекты Объект (object) является отдельным экземпляром класса, который создается на этапе выполнения программы. Он имеет свое собственное имя и конкретные значения атрибутов. В силу самых различных причин может возникнуть необходимость показать взаимосвязи не только
7.4. Объекты
7.4. Объекты В общем случае действия на диаграмме деятельности выполняются над теми или иными объектами. Эти объекты либо инициируют выполнение действий, либо определяют некоторый результат этих действий. При этом действия специфицируют вызовы, которые передаются от
Объекты
Объекты Сетевые вычисления и Интернет сделали тему объектных технологий бестселлером компьютерных новостей. Распространение таких языков программирования, как Java и С++, заставляет разработчиков приложений изменить свое отношение к традициям и признать преимущества
Объекты OS/400 и системные объекты MI
Объекты OS/400 и системные объекты MI Несколько типов объектов имеются и в OS/400, и в MI. Типы объектов OS/400 перечислены в таблице 5.1. Для сравнения, в таблице 5.2 приведены системные объекты MI. Помните, что в каждой новой версии AS/400 добавляются новые функции и даже новые объекты.
Объекты DataSet с множеством таблиц и объекты DataRelation
Объекты DataSet с множеством таблиц и объекты DataRelation До этого момента во всех примерах данной главы объекты DataSet содержали по одному объекту DataTable. Однако вся мощь несвязного уровня ADO.NET проявляется тогда, когда DataSet содержит множество объектов DataTable. В этом случае вы можете
Объекты
Объекты "Другой частью" полномочий является объект, к которому применяется привилегия или для которого она отменяется. Объектом может быть таблица, просмотр, хранимая процедура или роль, хотя не все привилегии применимы ко всем типам объектов. Например, привилегия UPDATE
Объекты
Объекты Изучение объектных структур в данной лекции может служить весьма хорошим примером того, насколько неправильно отделять вопросы реализации от проблем будто бы "высокого" уровня. В процессе рассмотрения новых технических приемов, связанных с вопросами
Объекты
Объекты Итак, мы познакомились с типами данных, переменными, константами, операторами, действиями, простыми и сложными выражениями, функциями и массивами. Теперь настала пора узнать о самых сложных структурах данных ActionScript —