Стивен Холзнер - XSLT
- Название:XSLT
- Автор:
- Жанр:
- Издательство:Питер
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-271-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Холзнер - XSLT краткое содержание
Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.
Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.
Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике
XSLT - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Создание последовательностей страниц:
Что такое последовательность страниц? Это ряд страниц с одинаковыми характеристиками (например, глава в книге), которые при желании можно форматировать одинаковым способом. Страницы в результирующем документе в действительности создаются тогда, когда процессор XSL-FO обрабатывает элементы .
Каждый элемент ссылается либо на элемент , либо на шаблон страницы, и фактическая схема страниц определяется этими шаблонами. Несколько более сложно создание последовательностей, у которых место расположения номера страницы меняется — номеру располагаются на разных сторонах страницы, как при создании страниц книги.
К объекту применимы следующие свойства:
• country
;
• format
;
• language
;
• letter-value
;
• grouping-separator
;
• grouping-size
;
• id
;
• initial-page-number
;
• force-page-count
;
• master-name
.
В последней рекомендации XSL W3C шаблон страницы для последовательности страниц задается атрибутом master-name
элемента . Я назвал свой простой шаблон страницы «page», и здесь я устанавливаю данный атрибут в это имя:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
page-height="400mm" page-width="300mm"
margin-top="10mm" margin-bottom="10mm"
margin-left="20mm" margin-right="20mm">
margin-left="0mm" margin-right="0mm"/>
.
.
.
.
.
.
Этот код определяет шаблон страницы, который будет использован для последовательности страниц. Теперь мне нужно задать содержимое (content) последовательности, что делается при помощи детей потока (flow) элемента .
Создание объектов потока:
Объекты потока носят такое название потому, что текст в них «заливается» и выравнивается, заполняя страницу, программой, отвечающей за вывод на экран. Содержимое страницы управляется объектами потока.
Есть два вида объектов потока: и . Объект хранит содержимое (например, текст в верхних и нижних колонтитулах), которое будет повторяться на страницах последовательности (как мы увидим в главе 12). Объект содержит сам текст, образующий содержимое документа.
К применимо следующее свойство:
• flow-name
.
Я воспользуюсь элементом для обработки текстового содержимого planets.xml
. Чтобы гарантировать, что текст будет преобразован в поток, я применю элемент :
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
.
.
.
.
.
.
Здесь мы заканчиваем рассмотрение элемента ; я указал шаблон для этой последовательности, который предоставит процессору XSL-FO способ форматирования содержимого в страницах форматированного документа. После описания схемы страниц, которые я хочу создать, теперь, наконец, пора перейти к их содержимому. Первый элемент, отображающий содержимое, — .
Создание содержимого уровня блока:
Блоки играют важную роль в XSL-FO: они применяются для создания прямоугольных областей вывода, отделенных от других областей вывода в документе. Форматирующий объект применяется для форматирования таких элементов, как абзацы, заголовки, подписи к рисункам и таблицам и т.д. Вот пример из начала главы, где я создаю элемент блока и задаю различные свойства и текст в блоке:
Welcome to XSL formatting.
С объектом можно применять следующие свойства:
• общие свойства доступа: source-document
, role
;
• общие звуковые свойства: azimuth
, cue-after
, cue-before
, elevation
, pause-after
, pause-before
, pitch
, pitch-range
, play-during
, richness
, speak
, speak-header
, speak-numeral
, speak-punctuation
, speech-rate
, stress
, voice-family
, volume;
• общие свойства границ, заполнения и заднего фона: background-attachment
, background-color
, background-image
, background-repeat
, background-position- horizontal
, background-position-vertical
, border-before-color
, border-before-style
, border-before-width
, border-after-color
, border-after-style
, border-after-width
, border-start-color
, border-start-style
, border-start-width
, border-end-color
, border-end-style
, border-end-width
, border-top-color
, border-top-style
, border-top-width
, border-bottom-color
, border-bottom-style
, border-bottom-width
, border-left-color
, border-left-style
, border-left-width
, border-right-color
, border-right-style
, border-right-width
, padding-before
, padding-after
, padding-start
, padding-end
, padding-top
, padding-bottom
, padding-left
, padding-right
;
• общие свойства шрифта: font-family
, font-size
, font-stretch
, font-size-adjust
, font-style
, font-variant
, font-weight
;
• общие свойства переноса: country
, language
, script
, hyphenate
, hyphenation-character
, hyphenation-push-character-count
, hyphenation-remain-character-count
;
• общие свойства полей для блоков: margin-top
, margin-bottom
, margin-left
, margin-right
, space-before
, space-after
, start-indent
, end-indent
;
• break-after
;
• break-before
;
• color
;
• font-height-override-after
;
• font-height-override-before
;
• hyphenation-keep
;
• hyphenation-ladder-count
;
• id
;
• keep-together
;
• keep-with-next
;
• keep-with-previous
;
• last-line-end-indent
;
• linefeed-treatment
;
• line-height
;
• line-height-shift-adjustment
;
• line-stacking-strategy
;
• orphans
;
• relative-position
;
• space-treatment
;
• span
;
• text-align
;
• text-align-last
;
• text-indent
;
• visibility
;
• white-space-collapse
;
• widows
;
• wrap-option
;
• z-index
.
Например, я могу добавить в документ заголовок «The Planets Table» (Таблица планет), задав шрифт Times
(в данный момент fop поставляется с встроенными шрифтами Times
, Helvetica
, Courier
, Symbol
, sans-serif
, serif
и ZapfDingbats
) в свойстве font-family
, размер шрифта 36 пунктов в свойстве font-size
и полужирный стиль, установив свойство font-weight
в « bold
». Высоту блока я задам при помощи свойства line-height
и покажу заголовок голубым при помощи свойства color
:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
.
.
.
line-height="48pt" font-family="Times" color="blue">
The Planets Table
.
.
.
Этот код создаст блок заголовка, который показан в верхней части текста на рис. 11.1. Таким способом я могу создать аналогичные блоки для каждого элемента данных каждой планеты при помощи таблицы стилей XSLT. Заметьте также, что я вывожу имя каждой планеты курсивом, установив свойство font-style
в «italic», и я подчеркиваю остальной текст при помощи свойства text-decoration
элементов , которые мы рассмотрим в следующей главе:
Интервал:
Закладка: