Стивен Холзнер - XSLT
- Название:XSLT
- Автор:
- Жанр:
- Издательство:Питер
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-271-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Холзнер - XSLT краткое содержание
Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.
Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.
Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике
XSLT - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Для задания форматирования документ planets.fo
использует форматирующие объекты XSL. Вот как выглядит файл planets.fo
(листинг 1.9):
margin-right="20mm" margin-left="20mm"
margin-bottom="10mm" margin-top="10mm"
page-width="300mm" page-height="400mm"
master-name="page">
margin-right="0mm" margin-left="0mm"
margin-bottom="10mm" margin-top="0mm"/>
:layout-master-set>
font-family="sans-serif" line-height="48pt"
font-size="36pt" font-weight="bold">
Name: Mercury
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Mass (Earth = 1): .0553
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Day (Earth = 1): 58.65
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Radius (in miles): 1516
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Density (Earth = 1):.983
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Distance (million miles): 43.4
font-family="sans-serif" line-height="48pt"
font-size="36pt" font-weight="bold">
Name: Venus
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Mass (Earth = 1): .815
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Day (Earth = 1): 116.75
font-family="sans-serif" line-height="48pt"
font size="36pt">
Radius (in miles): 3716
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Density (Earth = 1): .943
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Distance (million miles): 66.8
font-family="sans-serif" line-height="48pt"
font-size="36pt" font-weight="bold">
Name: Earth
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Mass (Earth = 1): 1
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Day (Earth = 1):
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Radius (in miles): 2107
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Density (Earth = 1):
font-family="sans-serif" line-height="48pt"
font-size="36pt">
Distance (million miles): 128.4
Итак, мы успешно создали planets.fo
. Как нам теперь с его помощью создать форматированный файл PDF?
Создание форматированного документа
Чтобы обработать planets.fo
и создать форматированный (formatted) документ, я воспользуюсь процессором FOP Джеймса Таубера (James Tauber), который был подарен им проекту Apache XML Project.
Главная страница процессора — http://xml.apache.org/fop; в настоящий момент FOP можно загрузить с http://xml.apache.org/fop/download.html. Пакет FOP, включая документацию, поставляется в формате zip, поэтому сначала его нужно распаковать FOP реализован как JAR-файл Java, fop.jar
, здесь я буду использовать FOP версии 0.15.
FOP можно запустить из командной строки, используя класс Java, на момент написания книги называвшийся org.apache.fop.apps.CommandLine
. Нужно предоставить разборщик XML — я буду использовать разборщик Xerces на Java в файле xerces.jar
(он поставляется вместе с Xalan). Давайте рассмотрим, как в Windows, используя Java, при помощи FOP преобразовать planets.fo
в planets.pdf
: в данном случае я указываю переменной classpath
ключом -ср
включить файл xerces.jar
, а также два необходимых JAR-файла, входящих в состав загружаемого пакета FOP — fop.jar
и w3c.jar
. (В этом примере предполагается, что все файлы fop.jar
, xerces.jar
и w3c.jar
расположены в каталоге C:\planets
; если это не так, укажите полные пути к ним.)
C:\planets>java -ср fop.jar:xerces.jar:w3c.jar org.apache.fop apps.CommandLine planets.fo planets.pdf
Получившийся файл, planets.pdf
, можно просмотреть в средстве чтения файлов PDF Adobe Acrobat Reader, как изображено на рис. 1.8. (Acrobat PDF Reader можно бесплатно загрузить с www.adobe.com/products/acrobat/readermain.html.) Документ planets.xml
изображен на рисунке отформатированным в соответствии с таблицей стилей planetsPDF.xsl
.

Рис. 1.8.Документ PDF, созданный при помощи форматирующих объектов
Формат PDF — хороший формат для вывода форматирующих объектов, хотя он и обладает рядом ограничений — например, он не способен обрабатывать динамические таблицы, которые могут разворачиваться или сворачиваться по щелчку мыши, или интерактивные многоадресные ссылки (а ведь и те, и другие входят в спецификацию форматирующих объектов). Хотя в основных браузерах XSL-FO поддерживается довольно слабо, ожидается, что в будущем ситуация изменится, и браузеры будут поддерживать XSL-FO.
На этом я завершаю наш обзор. Далее в книге мы рассмотрим все вышеперечисленные темы по XSLT, а также вы познакомитесь с введением в XSL-FO. Теперь самое время начать подробно изучать XSLT, — прямо со следующей главы.
Глава 2
Создание и применение таблиц стилей
В предыдущей главе был представлен обзор XSLT. В этой главе мы начинаем детальную работу с ним. Мы собираемся научиться рассматривать документы в терминах XSLT, структурировать таблицу стилей XSLT и встраивать в документы таблицы стилей, В этой главе будет дано введение в шаблоны таблиц стилей, которые образуют основу таблиц стилей XSLT. Шаблоны реализуют фактические правила, которые вам требуется применить к данным; более подробно мы рассмотрим их в следующей главе.
Глава открывается систематическим рассмотрением таблиц стилей, и, несомненно, начинать следует с представления документа XML с точки зрения таблицы стилей.
Деревья и узлы
При работе с XSLT следует перестать мыслить в терминах документов и начать — в терминах деревьев. Дерево представляет данные в документе в виде множества узлов — элементы, атрибуты, комментарии и т.д. трактуются как узлы — в иерархии, и в XSLT структура дерева соответствует рекомендации XPath W3C (www.w3.org/TR/xpath). В данной главе мы рассмотрим деревья и узлы концептуально, а в главах 3 и 4 я дам формальное введение в XPath и его связь с XSLT. Выражения XPath, записываемые в терминах деревьев и узлов, используются для поиска данных в XML-документах.
В действительности, в соответствии с рекомендацией XSLT процессоры XSLT не обязаны уметь работать с документами; формально XSLT-преобразования принимают в качестве ввода исходное дерево и производят в качестве вывода результирующее дерево. В большинстве процессоров, тем не менее, существует дополнительная поддержка работы с документами.
Таким образом, с точки зрения XSLT документы представляют собой образованные из узлов деревья; XSLT распознает семь типов узлов:
• Корневой узел. Это самое начало документа. Этот узел представляет для процессора XSLT весь документ. Важно: не путайте корневой узел с корневым элементом, который также называется элементом документа (подробнее об этом мы поговорим позже в этой главе);
• Узел атрибута. Содержит значение атрибута после того, как были раскрыты ссылки на сущности и отброшены окружающие символы-разделители;
Читать дальшеИнтервал:
Закладка: