- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания XSLT - Стивен Холзнер
Шрифт:
Интервал:
Закладка:
• break-after. Указывает, что последняя область, созданная при обработке данного форматирующего объекта, будет последней помещенной в определенный контекст. Устанавливается в auto | column | page | even-page | odd-page | inherit;
• break-before. Указывает, что первая созданная область должна быть первой, помещенной в определенный контекст. Устанавливается в auto | column | page | even-page | odd-page | inherit.
Рассмотрим еще один пример применения последовательностей страниц. Если вы посмотрите на книги, напечатанные на таких западных языках, как английский, немецкий или французский, вы заметите, что страницы с четными номерами, как правило, расположены слева, а страницы с нечетными номерами — справа. Четные и нечетные страницы можно отформатировать по-разному: например, можно задать дополнительное пространство поля у переплета, что даст дополнительное пространство левого поля для нечетных страниц и дополнительное пространство правого поля для четных.
Чтобы реализовать такое форматирование, можно применить атрибут odd-or-even элемента <fo:conditional-page-master-reference>, устанавливая его в значение «even» или «odd», выбирая соответственно четные или нечетные страницы:
<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master margin-right="50mm" margin-left="20mm"
margin-bottom="10mm" margin-top="10mm" page-width="300mm"
page-height="400mm" master-name="leftpage">
<fo:region-body margin-right="0mm" margin-left="0mm"
margin-bottom="10mm" margin-top="50mm"/>
<fo:region-after extent="10mm"/>
<fo:region-before extent="10mm"/>
</fo:simple-page-master>
<fo:simple-page-master margin-right="20mm" margin-left="50mm"
margin-bottom="10mm" margin-top="10mm" page-width="300mm"
page-height="400mm" master-name="rightpage">
<fo:region-body margin-right="0mm" margin-left="0mm"
margin-bottom="10mm" margin-top="20mm"/>
<fo:region-after extent="10mm"/>
<fo:region-before extent="10mm"/>
</fo:simple-page-master>
<fo:page-sequence-master master-name="alternatingpages">
<fо:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference
master-name="rightpage" odd-or-even="odd"/>
<fo:conditional-page-master-reference
master-name="leftpage" odd-or-even="even"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
</fo:layout-master-set>
<fo:page-sequence master-name="alternatingpages">
.
.
.
Теперь у страниц, расположенных справа, левое поле у переплета книги будет расширено, а у страниц, расположенных слева, также будет расширено правое поле.
Как видите, форматирующие объекты — довольно объемная тема, и, как я уже говорил, для большой части материала в этой книге не хватает места. Дополнительные подробности можно узнать на web-узле W3C, www.w3.org/TR/xsl/. Существует не так уж много пакетов программ для работы с форматирующими объектами, хотя в будущем ситуация должна измениться.
На этом мы заканчиваем рассмотрение XSL-FO — а вместе с ним и книгу. Вы познакомились со всеми видами XSLT-преобразований: из XML в XML, в HTML, в XHTML, в RTF, в простой текст, в JavaScript, в реляционные базы данных, и теперь — в XSL-FO. Вы увидели все возможные элементы, атрибуты и функции XSLT и рассмотрели много работающих примеров. Теперь осталось только использовать всю эту мощь в работе. Удачи вам в применении XSLT!
Приложение A
DTD XSLT
В данном приложении приводится фрагмент определений DTD для таблиц стилей XSLT 1.0, раздел С рекомендации W3C XSLT 1.0 по адресу www.w3.org/TR/xslt. Здесь для справки перечислены элементы XSLT 1.0 и их атрибуты.
Фрагмент DTD для таблиц стилей XSLT
ПРИМЕЧАНИЕ
Этот фрагмент DTD ненормативен, поскольку объявления DTD XML 1.0 не поддерживают пространства имен XML и, таким образом, не могут правильно описывать допустимую структуру таблицы стилей XSLT.
При помощи следующей сущности можно конструировать объявления для таблиц стилей XSLT, создающих экземпляры конкретного результирующего DTD. Перед тем как ссылаться на сущность, DTD таблицы стилей должно определить сущность параметра result-elements, перечисляющую допустимые типы результирующих элементов. Например:
<!ENTITY % result-elements "
| fo:inline-sequence | fo:block
">
Такие результирующие элементы должны быть объявлены с атрибутами xsl:use-attribute-sets и xsl:extension-element-prefixes. Следующая сущность объявляет для этих целей параметр result-element-atts. XSLT допускает для результирующих элементов то же содержимое, что и для элементов XSLT, объявленных в следующей сущности с моделью содержимого %template;. DTD может использовать более строгую модель содержимого, чем %template;, для того чтобы отразить ограничения результирующего DTD.
DTD может определить сущность параметра non-xsl-top-level, чтобы сделать допустимыми дополнительные элементы высокого уровня из пространств имен, отличных от пространства имен XSLT.
ПРИМЕЧАНИЕ И ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ ДЛЯ ДОКУМЕНТОВ W3C
Copyright © 1994-2000 World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). Все права защищены. http://www.w3.org/Consortium/Legal/
Открытые документы на web-узле W3C защищены правами в соответствии с данной лицензией. На программное обеспечение или объявления типов документа (DTD, Document Type Definitions), использующие спецификации W3C, распространяется Примечание о программном обеспечении (Software Notice). Используя и/или копируя этот документ, или документ W3C, ссылающийся на данное утверждение, вы (сторона, обладающая лицензией) соглашаетесь, что вы прочитали, поняли и будете выполнять следующие положения и условия:
разрешается использовать, копировать и распространять содержимое этого документа, или документа W3C, ссылающегося на данное утверждение, любыми средствами для любых целей бесплатно и без каких-либо отчислений, при условии, что во ВСЕ используемые копии документа или его частей вы включите следующее:
URL или ссылку на исходный документ W3C;
существующее примечание об авторских правах первоначального автора, или, если оно отсутствует, примечание вида "Copyright © [$date-of-document] World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/" (Желательна гиперссылка, но разрешается и текстовое представление.);
если существует, СТАТУС (STATUS) документа W3C;
если позволяет место, должен быть включен полный текст данного ПРИМЕЧАНИЯ (NOTICE). Мы требуем, чтобы ссылка на авторство присутствовала в любом программном обеспечении, документах или других продуктах, созданных вами на основе реализации содержимого этого документа или любой его части;
согласно данной лицензии, вы не получаете права модифицировать документы W3C или создавать производные от них документы. Тем не менее, при выполнении дополнительных требований (документированных в Copyright FAQ), W3C в некоторых случаях предоставляет право создавать модификации или производные документы.
ЭТОТ ДОКУМЕНТ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», И ВЛАДЕЛЬЦЫ АВТОРСКИХ ПРАВ НЕ ПРЕДОСТАВЛЯЮТ НИКАКИХ УТВЕРЖДЕНИЙ ИЛИ ГАРАНТИЙ —ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ — В ТОМ ЧИСЛЕ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ — ПРИГОДНОСТИ ДЛЯ КОММЕРЧЕСКОГО ИСПОЛЬЗОВАНИЯ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ, ОТСУТСТВИЯ НАРУШЕНИЯ АВТОРСКИХ ПРАВ ИЛИ ПРАВ СОБСТВЕННОСТИ, А ТАКЖЕ ЧТО ИСПОЛЬЗОВАНИЕ ДАННОГО СОДЕРЖИМОГО НЕ НАРУШИТ КАКИХ-ЛИБО ПАТЕНТОВ, АВТОРСКИХ ПРАВ, ТОРГОВЫХ МАРОК ТРЕТЬИХ ФИРМ ИЛИ ДРУГИХ ПРАВ.
ВЛАДЕЛЬЦЫ АВТОРСКИХ ПРАВ НЕ ПОДЛЕЖАТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБОЙ ПРЯМОЙ, КОСВЕННЫЙ, СПЕЦИАЛЬНЫЙ ИЛИ ПОСЛЕДУЮЩИЙ УЩЕРБ, ВОЗНИКШИЙ ОТ ЛЮБОГО ИСПОЛЬЗОВАНИЯ ДОКУМЕНТА ИЛИ ВЫПОЛНЕНИЯ ИЛИ РЕАЛИЗАЦИИ ЕГО СОДЕРЖИМОГО.
Имя и торговые марки владельцев авторских прав НЕ могут быть использованы в рекламе или публичных ссылках на этот документ или его содержимое без особого письменного разрешения владельцев. Собственность на авторские права на этот документ при любых условиях останется у владельцев авторских прав.
Использование префикса xsl: в этом DTD не означает, что таблицы стилей XSLT обязаны его применять. Любые элементы, объявленные в этом DTD, могут иметь атрибуты, имена которых начинаются с xmlns: или равны xmlns, в дополнение к атрибутам, объявленным в этом DTD.
<!ENTITY % char-instructions "
| xsl:apply-templates
| xsl:call-template
| xsl:apply-imports
| xsl:for-each
| xsl:value-of
| xsl:copy-of
| xsl:number
| xsl:choose
| xsl:if
| xsl:text
| xsl:copy