XSLT — страница 100 из 124

>

     margin-left="0mm" margin-right="0mm"/>

  .

  .

  .

Это завершает используемый в документе шаблон, простой шаблон страницы «page», почему здесь также завершается и элемент

.

В дополнение к элементу

, документ с форматирующими объектами, как правило, также содержит один или несколько элементов
, задающих последовательности страниц, создаваемых по определенному в
шаблону, и я добавил в документ последовательность страниц.

Создание последовательностей страниц:

Что такое последовательность страниц? Это ряд страниц с одинаковыми характеристиками (например, глава в книге), которые при желании можно форматировать одинаковым способом. Страницы в результирующем документе в действительности создаются тогда, когда процессор 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