друг!
ЯндексЯндекс. ДеньгиХочу такую же кнопку

Объекты Форматирования-4

 

Назад

Оглавление

В конец страницы

Вперёд

 

Краткое Содержание
6 Объекты Форматирования (ОФ)
    6.1 Введение
    6.2 Содержимое ОФ
    6.3 ОФ. Резюме.
    6.4 Объявление и Разбивка на Страницы и Структура ОФ
    6.5 ОФ уровня блока
    6.6 ОФ инлайн-уровня
    6.7 ОФ для Таблиц
    6.8 ОФ для Списков
    6.9 Динамические Эффекты: Объекты Форматирования Link и Multi
    6.10 Внестрочные/Out-of-Line ОФ
    6.11 Прочие ОФ

6.6.6 fo:instream-foreign-object

Обычное Использование:

Объект потока fo:instream-foreign-object используется для инлайн-графики или других "родовых" объектов, где данные объекта расположены как потомки fo:instream-foreign-object, обычно как элемент-поддерево XML в не-XSL пространстве имён.

ПРИМЕЧАНИЕ:

Общий формат - SVG.

Области:

ОФ fo:instream-foreign-object генерирует и возвращает одну инлайн-область viewport-area и одну область reference-area, содержащую instream-foreign-object. Область инлайн-уровня использует large-allocation-rectangle как определено в [4.2.3 Геометрических Определениях].

Ограничения:

Размер порта просмотра определяется уточнениями block-progression-dimension и inline-progression-dimension. Для значений "auto" используется размер содержимого постороннего объекта/instream foreign входного потока. Размер содержимого объекта instream-foreign-object определяется путём взятия размера объекта и масштабирования его так, как специфицировано в уточнениях content-height, content-width и scaling. Если content-height или content-width не установлены в "auto", тот же самый фактор масштабирования (подсчитанный из не-auto значения) применяется одинаково в обоих направлениях. После масштабирования область reference-area выравнивается относительно области порта просмотра с использованием уточнений text-align и display-align. Если instream-foreign-object слишком велик для области порта просмотра, он выравнивается так, как если бы он вмещался и уточнение overflow управляло усечением, полосами прокрутки и т.д. В том случае, если instream-foreign-object не специфицирует размер объекта, он определяется способом, зависящим от конкретной реализации.

Содержимое:

Объект потока fo:instream-foreign-object имеет потомка из не-XSL пространства имён. Разрешённой структурой этого потомка является структура, определённая для данного пространства имён. Объект потока fo:instream-foreign-object может иметь дополнительные атрибуты в не-XSL пространства имён. Они, также как и определяемые XSL свойства, сделаны доступными для процессора содержимого объекта потока. Их семантика определяется этим пространством имён.

Следующие свойства применяются к данному ОФ:

6.6.7 fo:inline

Обычное Использование:

ОФ fo:inline обычно используется для форматирования участка текста с фоном или в рамке.

Области:

ОФ fo:inline генерирует одну или более нормальных инлайн-областей. fo:inline возвращает эти области - любые области page-level-out-of-line - и любые области reference-level-out-of-line, возвращаемые потомками объекта fo:inline.

Ограничения:

Никакая область не может иметь более одной нормальной области-потомка, возвращаемой тем же самым ОФ fo:inline. Потомки каждой нормальной области, возвращаемой объектом fo:inline, обязаны удовлетворять ограничениям, специфицированным в разделе [4.7.3 Инлайн-Конструирование]. Дополнительно обязаны выполняться ограничения, вводимые уточнениями, полученными из свойств, применяемых в данном ОФ. Геометрические ограничения строго определены в [4 Модели Области].

Содержимое:

(#PCDATA|%inline;|%block;)*

Этот ОФ может содержать дополнительно последовательность из нуль или более fo:marker как своих начальных потомков.

fo:inline, являющийся потомком fo:footnote, не может иметь потомков уровня блока.
fo:inline, являющийся потомком fo:leader или fo:inline, потомка fo:footnote, не может иметь потомков уровня блока, если только он не имеет ближайшего предка, являющегося контейнером fo:inline-container.

Следующие свойства применяются к данному ОФ:

6.6.8 fo:inline-container

Обычное Использование:

Объект потока fo:inline-container используется для генерации инлайн-областей reference-area, обычно содержащих блоки текста с различным режимом (направлением) письма.

ПРИМЕЧАНИЕ:

Использование этого объекта потока не требуется для двунаправленного текста; в данном случае в данном случае достаточно алгоритма Unicode BIDI и объекта fo:bidi-override.

Области:

ОФ fo:inline-container генерирует одну или более пар viewport/reference (порт просмотра/ссылка). Области viewport-area, генерируемые объектом fo:inline-container, являются нормальными инлайн-областями, использующими прямоугольник large-allocation-rectangle, как определено в [4.2.3 Геометрических Определениях]. fo:inline-container возвращает эти области и любые области page-level-out-of-line, возвращаемые потомками fo:inline-container.

Получение Уточнения:

Области, генерируемые ОФ fo:inline-container, имеют для is-reference-area значение "true". Размер областей viewport-area и reference-area должен быть фиксированным в направлении inline-progression-direction. Он обязан быть специфицированным, если только направление inline-progression-direction не параллельно inline-progression-direction области reference-area, в которую помещаются области, генерируемые этим объектом потока. Значения в таблице baseline-table этого объекта вычисляются так:

baseline

Если режим письма имеет направление block-progression-direction, параллельное block-progression-direction родителя: точка выравнивания находится в позиции доминантной базовой линии/dominant-baseline первой строчной области-потомка. Если такой строчной области нет, точка выравнивания/alignment-point находится в позиции after-edge прямоугольника размещения.

Если режим письма имеет направление block-progression-direction, не параллельное block-progression-direction родителя: точка выравнивания находится в позиции, равной половине расстояния от before-edge до after-edge прямоугольника содержимого.

before-edge

Точка выравнивания находится в позиции before-edge прямоугольника размещения.

text-before-edge

Точка выравнивания находится в позиции, ближайшей к before-edge прямоугольника размещения, выбираемого из двух краёв-кандидатов. Если режим письма имеет направление block-progression-direction, параллельное block-progression-direction родителя, краями-кандидатами являются before-edge и after-edge прямоугольника содержимого; если это не так (не параллельно), краями-кандидатами являются start-edge и end-edge прямоугольника содержимого.

middle

Точка выравнивания находится в позиции, равной половине расстояния от before-edge до after-edge прямоугольника размещения.

after-edge

Точка выравнивания/alignment-point находится в позиции after-edge прямоугольника размещения.

text-after-edge

Точка выравнивания находится в позиции, ближайшей к after-edge прямоугольника размещения, выбираемого из двух краёв-кандидатов. Если режим письма имеет направление block-progression-direction, параллельное block-progression-direction родителя, краями-кандидатами являются before-edge и after-edge прямоугольника содержимого; если это не так (не параллельно), краями-кандидатами являются start-edge и end-edge прямоугольника содержимого.

ideographic

Точка выравнивания находится в позиции на расстоянии 7/10 дистанции от before-edge прямоугольника размещения до after-edge прямоугольника размещения.

alphabetic

Точка выравнивания находится в позиции на расстоянии 6/10 дистанции от before-edge прямоугольника размещения до after-edge прямоугольника размещения.

hanging

Точка выравнивания находится в позиции на расстоянии 2/10 дистанции от before-edge прямоугольника размещения до after-edge прямоугольника размещения..

mathematical

Точка выравнивания находится в позиции на расстоянии 5/10 дистанции от before-edge прямоугольника размещения до after-edge прямоугольника размещения..

Ограничения:

Никакая область не может иметь более одной нормальной области-потомка, возвращаемой тем же самым ОФ fo:inline-container. Потомки каждой области reference-area, генерируемой ОФ fo:inline-container, обязаны быть нормальными блок-областями, возвращаемыми потомками объекта fo:inline-container, обязаны быть properly stacked/правильно стэкированы обязаны быть properly ordered/правильно упорядоченными. Любые области reference-level-out-of-line, возвращаемые потомками объекта fo:inline-container, обрабатываются так, как описано в разделе [6.10.2 fo:float].

Содержимое:

(%block;)+

Этот ОФ дополнительно может содержать последовательность из нуль или более fo:marker в качестве начальных потомков.

Следующие свойства применяются к данному ОФ:

6.6.9 fo:leader

Обычное Использование:

ОФ fo:leader часто используется:

  • в оглавлении для генерации последовательностей глифов "." , разделяющих заголовки и номера страниц

  • для создания полей ввода в формах in fill-in-the-blank (бланк-для-заполнения)

  • для создания горизонтальных линий, используемых в качестве разделителей

Области:

ОФ fo:leader генерирует и возвращает одну нормальную инлайн-область.

Получение Уточнения:

Если значение патэрна leader-pattern равно "use-content", то направление block-progression-dimension прямоугольника содержимого определяется тем же способом, что и для строчных областей; в ином случае оно определяется уточнением rule-thickness.

Ограничения:

Если заполнитель/leader имеет минимальную длину слишком большую, чтобы разместиться в строчной области, заполнитель начнёт новую строку. Если он слишком велик, чтобы разместиться в одной строке, он будет переполнять строку и потенциально переполнять область reference-area в соответствии с уточнением overflow контейнера. ОФ fo:leader может иметь любые инлайн- ОФ и символы в качестве потомков, за исключением того, что fo:leaders не может вкладываться. Потомки игнорируются, если только значение уточнения leader-pattern не равно "use-content".

ПРИМЕЧАНИЕ:

Если значение уточнения leader-pattern равно "use-content" и fo:leader не имеет потомков, заполнение будет сделано пустым пространством.

Инлайн-область, генерируемая fo:leader, имеет размер в направлении inline-progression-direction, который будет равен минимально leader-length.minimum и максимально leader-length.maximum. Для строчных областей, специфицированных с выравниванием по формату/justify, выравниваемая по формату строчная область обязана учитывать уточнение leader-alignment, любой инлайн-области, генерируемой fo:leader'ами. Если значением уточнения leader-pattern является "dots" или "use-content", применяются следующие ограничения: Инлайн-область, генерируемая объектом fo:leader, имеет в качестве потомков области, возвращаемые потомками объекта fo:leader или получаемые путём форматирования патэрна, специфицированного в уточнении leader-pattern, повторяемого интегральное количество раз. Если ширина даже одного повторения больше размера инлайн-области в направлении inline-progression-direction, инлайн-область должна быть заполнена пустым пространством. space-start и space-end областей потомков устанавливается для вычисления ограничений, специфицируемых в уточнениях leader-pattern-width и leader-alignment.

ПРИМЕЧАНИЕ:

Если нужно, чтобы заполнитель растягивался для заполнения всего свободного пространства строки, максимальная длина заполнителя должна быть специфицирована не меньшей, чем ширина столбца.

ПРИМЕЧАНИЕ:

Выравнивание заполнителя может зависеть от письма и требовать указания, какая конкретно точка выравнивания, поскольку оно отличается от выравнивания по умолчанию для данного письма. Например, при использовании индийского письма заполнитель выравнивается по алфавитной базовой линии.

ПРИМЕЧАНИЕ:

fo:leader может быть "обёрнут" в fo:block, давая в результате блок-область со строчной областью, содержащей заполнитель, для создания линий, разделяющих или обрамляющих блок-области.

Содержимое:

(#PCDATA|%inline;)*

Содержимое не может содержать fo:leader, fo:inline-container, fo:block-container, fo:float, fo:footnote или fo:marker иначе, как прямых дочерних элементов или потомков.

Следующие свойства применяются к данному ОФ:

6.6.10 fo:page-number

Обычное Использование:

ОФ fo:page-number используется для получения инлайн-области, чьим содержимым будет номер страницы, на которой инлайн-область размещена.

Области:

ОФ fo:page-number генерирует и возвращает одну нормальную инлайн-область/inline-area.

Ограничения:

Дочерние области этой инлайн-области будут теми же, что и в результате форматирования фрагмента результирующего дерева, состоящего из объектов потока fo:character; одного для каждого символа в строке page-number и с единственным специфицированным свойством "character". Строка page-number/номер страницы получается путём конвертации номера страницы, на которой инлайн-область размещена в соответствии со свойствами конверсии чисел в строки родительского объекта fo:page-sequence.

ПРИМЕЧАНИЕ:

Свойствами конверсии являются: [7.24.1 "format"], [7.24.2 "grouping-separator"], [7.24.3 "grouping-size"], [7.24.4 "letter-value"], [7.9.1 "country"] и [7.9.2 "language"].

Содержимое:

EMPTY

Следующие свойства применяются к данному ОФ:

6.6.11 fo:page-number-citation

Обычное Использование:

fo:page-number-citation используется как ссылка на page-number страницы, содержащей первую нормальную область, возвращаемую цитируемым ОФ.

ПРИМЕЧАНИЕ:

Может использоваться для предоставления номеров страниц в оглавлениях, перекрёстных ссылках и вхождениях индексов.

Области:

ОФ fo:page-number-citation генерирует и возвращает одну нормальную инлайн-область.

Ограничения:

Цитируемый номер страницы/page-number это номер страницы, содержащей, в качестве потомка, первую нормальную область, возвращаемую объектом форматирования с уточнением id, соответствующим уточнению ref-id объекта fo:page-number-citation (ОФ, на который ссылаются).

Строка цитируемого номер страницы получается путём конвертации цитируемого page-number в соответствии со свойствами конверсии чисел в строки родительского fo:page-sequence ОФ, на который ссылаются.

ПРИМЕЧАНИЕ:

Свойствами конверсии являются: [7.24.1 "format"], [7.24.2 "grouping-separator"], [7.24.3 "grouping-size"], [7.24.4 "letter-value"], [7.9.1 "country"] и [7.9.2 "language"].

Дочерние области, генерируемой инлайн-области - те же, что и получаемые в результате форматирования фрагмента результирующего дерева, состоящего из объектов потока fo:character; одного для каждого символа в цитируемой строке page-number и с единственным специфицированным свойством "character".

Содержимое:

EMPTY

Следующие свойства применяются к данному ОФ:

6.7 Объекты Форматирования для Таблиц

6.7.1 Введение

Имеется 9 ОФ, используемых при конструировании таблиц: fo:table-and-caption, fo:table, fo:table-column, fo:table-caption, fo:table-header, fo:table-footer, fo:table-body, fo:table-row и fo:table-cell. Структура результирующего дерева показана ниже.

6.7.1.1 Примеры

6.7.1.1.1 Простая центрированная таблица с отступами

Код:

<doc>
<table>
<caption><p>Caption for this table</p></caption>
<tgroup cols="3" width="325pt">
<colspec colwidth="100pt"/>
<colspec colwidth="150pt"/>
<colspec colwidth="75pt"/>
<tbody>
<row>
<entry><p>Cell 1</p></entry>
<entry><p>Cell 2</p></entry>
<entry><p>Cell 3</p></entry>
</row>
</tbody>
</tgroup>
</table>
</doc>

Таблица и её заголовок центрированы в доступном пространстве между следующими отступами: start-indent="100pt" и end-indent="0pt". Центровка и установка отступов нежелательны для содержимого заголовка и ячеек. Таблица стиля XSL:

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:fo="http://www.w3.org/1999/XSL/Format"
                version='1.0'>

<xsl:attribute-set name="inside-table">
  <xsl:attribute name="start-indent">0pt</xsl:attribute>
  <xsl:attribute name="text-align">start</xsl:attribute>
</xsl:attribute-set>

<xsl:template match="p">
  <fo:block>
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

<xsl:template match="table">
  <fo:table-and-caption text-align="center" start-indent="100pt">
    <xsl:apply-templates/>
  </fo:table-and-caption>
</xsl:template>

<xsl:template match="caption">
  <fo:table-caption xsl:use-attribute-sets="inside-table">
    <xsl:apply-templates/>
  </fo:table-caption>
</xsl:template>

<xsl:template match="tgroup">
  <fo:table width="" table-layout="fixed">
    <xsl:apply-templates/>
  </fo:table>
</xsl:template>

<xsl:template match="colspec">
  <fo:table-column column-width="">
    <xsl:attribute name="column-number">
      <xsl:number count="colspec"/>
    </xsl:attribute>
  </fo:table-column>
</xsl:template>

<xsl:template match="tbody">
  <fo:table-body xsl:use-attribute-sets="inside-table">
    <xsl:apply-templates/>
  </fo:table-body>
</xsl:template>

<xsl:template match="row">
  <fo:table-row>
    <xsl:apply-templates/>
  </fo:table-row>
</xsl:template>

<xsl:template match="entry">
  <fo:table-cell>
    <xsl:apply-templates/>
  </fo:table-cell>
</xsl:template>

</xsl:stylesheet>

Результирующий Экземпляр: элементы и атрибуты в пространстве имён fo:

<fo:table-and-caption text-align="center" start-indent="100pt">

  <fo:table-caption start-indent="0pt" text-align="start">
    <fo:block>Caption for this table
    </fo:block>
  </fo:table-caption>

  <fo:table width="325pt" table-layout="fixed">

    <fo:table-column column-width="100pt" column-number="1">
    </fo:table-column>
    <fo:table-column column-width="150pt" column-number="2">
    </fo:table-column>
    <fo:table-column column-width="75pt" column-number="3">
    </fo:table-column>

    <fo:table-body start-indent="0pt" text-align="start">

    <fo:table-row>

    <fo:table-cell>
    <fo:block>Cell 1
    </fo:block>
    </fo:table-cell>
    <fo:table-cell>
    <fo:block>Cell 2
    </fo:block>
    </fo:table-cell>
    <fo:table-cell>
    <fo:block>Cell 3
    </fo:block>
    </fo:table-cell>

    </fo:table-row>

    </fo:table-body>

  </fo:table>

</fo:table-and-caption>

6.7.1.1.2 Простая таблица с относительной спецификацией ширины столбцов

В этом примере для элементов таблицы использована простая разметка типа табличной модели "Oasis". Ширина столбцов специфицирована путём использования полной спецификации относительной ширины столбцов. Код:

<doc>
<table>
<tgroup cols="3">
<colspec colname="col1" colwidth="1*"/>
<colspec colname="col2" colwidth="2*+2pi"/>
<colspec colname="col3" colwidth="72"/>
<tbody>
<row>
<entry colnum="1" valign="top"><p>Cell 1</p></entry>
<entry colnum="2" valign="middle" align="center">
<p>Cell 2</p></entry>
<entry colnum="3" align="center"><p>Cell 3</p></entry>
</row>
</tbody>
</tgroup>
</table>
</doc>

Таблица стилей XSL:

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:fo="http://www.w3.org/1999/XSL/Format"
                version='1.0'>

<xsl:template match="p">
  <fo:block>
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

<xsl:template match="table">
  <fo:table width="12cm" table-layout="fixed">
    <xsl:apply-templates/>
  </fo:table>
</xsl:template>

<xsl:template match="colspec">
  <fo:table-column>
    <xsl:attribute name="column-number">
      <xsl:number count="colspec"/>
    </xsl:attribute>
    <xsl:attribute name="column-width">
      <xsl:call-template name="calc.column.width">
        <xsl:with-param name="colwidth">
          <xsl:value-of select="@colwidth"/>
        </xsl:with-param>
      </xsl:call-template>
    </xsl:attribute>
  </fo:table-column>
</xsl:template>

<xsl:template match="tbody">
  <fo:table-body>
    <xsl:apply-templates/>
  </fo:table-body>
</xsl:template>

<xsl:template match="row">
  <fo:table-row>
    <xsl:apply-templates/>
  </fo:table-row>
</xsl:template>

<xsl:template match="entry">
  <fo:table-cell column-number="">
    <xsl:if test="@valign">
      <xsl:choose>
        <xsl:when test="@valign='middle'">
          <xsl:attribute name="display-align">center
          </xsl:attribute>
        </xsl:when>
        <xsl:otherwise>
          <xsl:attribute name="display-align">
            <xsl:value-of select="@valign"/>
          </xsl:attribute>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:if>
    <xsl:if test="@align">
      <xsl:attribute name="text-align">
        <xsl:value-of select="@align"/>
      </xsl:attribute>
    </xsl:if>
    <xsl:apply-templates/>
  </fo:table-cell>
</xsl:template>


<xsl:template name="calc.column.width">
<!-- **
     * <p>Высчитывается спецификация ОФ XSL ширины столбцов
     * из полной спецификации относительной ширины столбцов.</p>
     *
     * <p>Ширина столбцов таблицы имеет следующие базовые 
     * формы: </p>
     *
     * <ul>
     * <li><b>99.99units</b>, фиксированный спецификатор длины.</li>
     * <li><b>99.99</b>, фиксированный спецификатор длины без 
     * указания единиц измерения.</li>
     * <li><b>99.99*</b>, спецификатор относительной длины.</li>
     * <li><b>99.99*+99.99units</b>, комбинация из обоих.</li>
     * </ul>
     *
     * <p>Единицами измерения являются пункты (pt), пики (pi), 
     * сантиметры (cm), миллиметры (mm) и дюймы (in). Это те 
     * же единицы, что и в XSL, за исключением того, что аббревиатура 
     * XSL для пик - "pc" вместо "pi". Еслиспецификатор длины не имеет 
     * единиц измерения, по умолчанию принимаются (pt).</p>
     *
     * <p>Спецификаторы относительной длины представлены в XSL функцией
     * proportional-column-width().</p>
     *
     * <p>Вот несколько примеров:</p>
     *
     * <ul>
     * <li>"36pt" становится "36pt"</li>
     * <li>"3pi" становится "3pc"</li>
     * <li>"36" становится "36pt"</li>
     * <li>"3*" становится "proportional-column-width(3)"</li>
     * <li>"3*+2pi" становится "proportional-column-width(3)+2pc"</li>
     * <li>"1*+2" становится "proportional-column-width(1)+2pt"</li>
     * </ul>
     *
     * @param colwidth Спецификация ширины столбцов.
     *
     * @returns Спецификация XSL ширины столбцов.
     * -->
  <xsl:param name="colwidth">1*</xsl:param>

  <!-- Ok, colwidth может иметь любую из следующих форм: -->
  <!--        1*       = пропорциональная ширина -->
  <!--     1unit       = 1.0 единиц ширины -->
  <!--         1       = 1pt ширины -->
  <!--  1*+1unit       = пропорциональная ширина + некоторая 
                         фиксированная ширина -->
  <!--      1*+1       = пропорциональная ширина + некоторая 
                         фиксированная ширина -->

  <!-- Если имеется пропорциональная ширина, транслируйте её в XSL -->
  <xsl:if test="contains($colwidth, '*')">
    <xsl:text>proportional-column-width(</xsl:text>
    <xsl:value-of select="substring-before($colwidth, '*')"/>
    <xsl:text>)</xsl:text>
  </xsl:if>

  <!-- теперь получаем непропорциональную часть спецификации -->
  <xsl:variable name="width-units">
    <xsl:choose>
      <xsl:when test="contains($colwidth, '*')">
        <xsl:value-of
             select="normalize-space(substring-after($colwidth, '*'))"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="normalize-space($colwidth)"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

  <!-- Теперь единицы ширины могут иметь любую из следующих форм: -->
  <!--                 = <пустая строка> -->
  <!--     1unit       = 1.0 единиц ширины -->
  <!--         1       = 1pt ширины -->
  <!-- с возможным ведущим значком -->

  <!-- Получаем часть ширины путём стирания части единиц и 
       отбрасывания -->
  <!-- white space. -->
  <xsl:variable name="width"
       select="normalize-space(translate($width-units,
                                '+-0123456789.abcdefghijklmnopqrstuvwxyz',
                                '+-0123456789.'))"/>

  <!-- Получаем часть ширины путём стирания части ширины и отбрасывания -->
  <!-- white space. -->
  <xsl:variable name="units"
       select="normalize-space(translate($width-units,
                                'abcdefghijklmnopqrstuvwxyz+-0123456789.',
                                'abcdefghijklmnopqrstuvwxyz'))"/>

  <!-- Вывод ширины -->
  <xsl:value-of select="$width"/>

  <!-- Вывод единиц, оттранслированных соответствующим образом -->
  <xsl:choose>
    <xsl:when test="$units = 'pi'">pc</xsl:when>
    <xsl:when test="$units = '' and $width != ''">pt</xsl:when>
    <xsl:otherwise><xsl:value-of select="$units"/></xsl:otherwise>
  </xsl:choose>
</xsl:template>

</xsl:stylesheet>

Результирующий Экземпляр: элементы и атрибуты пространства имён fo:

<fo:table width="12cm" table-layout="fixed">
  <fo:table-column column-number="1" 
   column-width="proportional-column-width(1)">
  </fo:table-column>
  <fo:table-column column-number="2" 
   column-width="proportional-column-width(2)+2pc">
  </fo:table-column>
  <fo:table-column column-number="3" column-width="72pt">
  </fo:table-column>
  <fo:table-body>
    <fo:table-row>
      <fo:table-cell column-number="1" display-align="top">
        <fo:block>Cell 1
        </fo:block>
      </fo:table-cell>
      <fo:table-cell column-number="2" display-align="center" 
       text-align="center">
        <fo:block>Cell 2
        </fo:block>
      </fo:table-cell>
      <fo:table-cell column-number="3" text-align="center">
        <fo:block>Cell 3
        </fo:block>
      </fo:table-cell>
    </fo:table-row>
  </fo:table-body>
</fo:table>

6.7.2 fo:table-and-caption

Обычное Использование:

Объект потока fo:table-and-caption используется для форматирования таблицы вместе с её заголовком.

ПРИМЕЧАНИЕ:

fo:table-and-caption может размещаться инлайн путём заключения его в контейнер fo:inline-container.

ПРИМЕЧАНИЕ:

Этот ОФ соответствует анонимному боксу CSS, содержащему заголовок таблицы и саму таблицу.

Области:

ОФ fo:table-and-caption генерирует одну или более нормальных блок-областей. fo:table-and-caption возвращает эти области, любые области page-level-out-of-line и reference-level-out-of-line, возвращаемые потомками объекта fo:table-and-caption.

Ограничения:

Никакая область не может иметь более одной дочерней области, возвращаемой тем же самым ОФ fo:table-and-caption. Потомки областей, генерируемых объектом fo:table-and-caption, это одна из двух областей: одна для заголовка таблицы и одна для самой таблицы. Они позиционируются друг относительно друга так, как это специфицировано уточнением caption-side. Они размещаются относительно прямоугольника содержимого генерируемой области, как специфицировано уточнением text-align.

Содержимое:

(table-caption?,table)

Этот ОФ дополнительно может содержать последовательность из нуль или более объектов fo:marker в качестве начальных дочерних объектов.

Следующие свойства применяются к данному ОФ:



 

Назад

Оглавление

В начало страницы

Вперёд

 

Pyramidin.Narod.RU