気の向くままに辿るIT/ICT/IoT
XSL

【Formatting Objects / フォーマット化オブジェクト】XSL 1.1 XSL Extensible Stylesheet Language Version1.1

ホーム前へ次へ
XSLフォーマット化オブジェクトとは?

【Formatting Objects / フォーマット化オブジェクト】XSL 1.1 XSL Extensible Stylesheet Language Version1.1

XSL 1.1フォーマット化オブジェクトとは

 W3C勧告XSLの「Formatting Objects / オブジェクト型」とは

 Extensible Stylesheet Language (XSL) Version 1.1 / W3C Recommendation 05 December 2006の目次に沿った日本語訳です。

 当サイト管理人が2009年03月、意訳したものですが、構文解釈の違いや翻訳の違いが含まれるかもしれません。正式文書はW3C 各種仕様書(英語版)である事を予めご了承ください。

※WEBZOITでは頻出する「formatting object」を「フォーマット型」、「フォーマット済みオブジェクト型」、「フォーマット化オブジェクト」といくつかの表現で訳していますが、「(~で)フォーマット(設定または初期化)される(されている)オブジェクト」「(~で)フォーマット済みのオブジェクト型」と同様の意と解釈しています。(「Formatting Properties」も同様のとらえ方です)

フォーマット化オブジェクト・オブジェクト書式


6 オブジェクト書式

 6.1 概論-オブジェクト書式
  6.1.1 共通定義

 6.2 内容-オブジェクト書式

 6.3 概要-オブジェクト書式

 6.4 宣言とページ数とオブジェクト書式レイアウト
  6.4.1 概論
   6.4.1.1 [ Page-sequence-masters ]
   6.4.1.2 [ Page-masters ]
   6.4.1.3 ページ生成 Page Generation
   6.4.1.4 フローとフローマッピング Flows and Flow Mapping
   6.4.1.5 ページ生成制約 Constraints on Page Generation
   6.4.1.6 ページ付け木構造 Pagination Tree Structure
   6.4.1.7 フローマップ例 Example Flow Maps
    6.4.1.7.1 範囲内にある2つのフローマッピング Two flows mapping into their own regions
    6.4.1.7.2 2つの範囲にある1つのフローマッピング A flow mapping into two regions
    6.4.1.7.3 1つの範囲にある2つのフローマッピング Two flows mapping into a region
    6.4.1.7.4 2つの範囲にある2つのフローマッピング Two flows mapping into two regions
  6.4.2 [ fo:root ]
  6.4.3 [ fo:declarations ]
  6.4.4 [ fo:color-profile ]
  6.4.5 [ fo:page-sequence ]
  6.4.6 [ fo:page-sequence-wrapper ]
  6.4.7 [ fo:layout-master-set ]
  6.4.8 [ fo:page-sequence-master ]
  6.4.9 [ fo:single-page-master-reference ]
  6.4.10 [ fo:repeatable-page-master-reference ]
  6.4.11 [ fo:repeatable-page-master-alternatives ]
  6.4.12 [ fo:conditional-page-master-reference ]
  6.4.13 [ fo:simple-page-master ]
  6.4.14 [ fo:region-body ]
  6.4.15 [ fo:region-before ]
  6.4.16 [ fo:region-after ]
  6.4.17 [ fo:region-start ]
  6.4.18 [ fo:region-end ]
  6.4.19 [ fo:flow ]
  6.4.20 [ fo:static-content ]
  6.4.21 [ fo:title ]
  6.4.22 [ fo:flow-map ]
  6.4.23 [ fo:flow-assignment ]
  6.4.24 [ fo:flow-source-list ]
  6.4.25 [ fo:flow-name-specifier ]
  6.4.26 [ fo:flow-target-list ]
  6.4.27 [ fo:region-name-specifier ]

 6.5 ブロックレベルのオブジェクト書式
  6.5.1 概論
   6.5.1.1 例・サンプル
  6.5.2 [ fo:block ]
  6.5.3 [ fo:block-container ]

 6.6 インラインレベルのオブジェクト書式
  6.6.1 概論
   6.6.1.1 例・サンプル
    6.6.1.1.1 Small-caps中の段落の最初の行 First Line of Paragraph in [ small-caps ]
    6.6.1.1.2 Figure with a Photograph
    6.6.1.1.3 ページ番号付けとページ番号参照 Page numbering and page number reference
    6.6.1.1.4 先頭に来る内容 Table of Contents with Leaders
  6.6.2 [ fo:bidi-override ]
  6.6.3 [ fo:character ]
  6.6.4 [ fo:initial-property-set ]
  6.6.5 [ fo:external-graphic ]
  6.6.6 [ fo:instream-foreign-object ]
  6.6.7 [ fo:inline ]
  6.6.8 [ fo:inline-container ]
  6.6.9 [ fo:leader ]
  6.6.10 [ fo:page-number ]
  6.6.11 [ fo:page-number-citation ]
  6.6.12 [ fo:page-number-citation-last ]
  6.6.13 [ fo:folio-prefix ]
  6.6.14 [ fo:folio-suffix ]
  6.6.15 [ fo:scaling-value-citation ]

 6.7 テーブルのオブジェクト書式
  6.7.1 概論
   6.7.1.1 例・サンプル
    6.7.1.1.1 中央寄せのシンプルなテーブル Simple Table, Centered and Indented
    6.7.1.1.2 相対列幅を持つシンプルなテーブル Simple Table with Relative Column-width Specifications
  6.7.2 [ fo:table-and-caption ]
  6.7.3 [ fo:table ]
  6.7.4 [ fo:table-column ]
  6.7.5 [ fo:table-caption ]
  6.7.6 [ fo:table-header ]
  6.7.7 [ fo:table-footer ]
  6.7.8 [ fo:table-body ]
  6.7.9 [ fo:table-row ]
  6.7.10 [ fo:table-cell ]

 6.8 リストのオブジェクト書式
  6.8.1 概論
   6.8.1.1 例・サンプル
    6.8.1.1.1 列挙型リスト
    6.8.1.1.2 HTMLの[ dl ]リスト
  6.8.2 [ fo:list-block ]
  6.8.3 [ fo:list-item ]
  6.8.4 [ fo:list-item-body ]
  6.8.5 [ fo:list-item-label ]

 6.9 動的効果:リンクとマルチ形式オブジェクト Dynamic Effects: Link and Multi Formatting Objects
  6.9.1 概論
   6.9.1.1 例・サンプル
    6.9.1.1.1 テーブルの内容拡張と折りたたみ Expandable/Collapsible Table of Contents
    6.9.1.1.2 動的な位置づけとしてのXLink装飾 Styling an XLink Based on the Active State
  6.9.2 [ fo:basic-link ]
  6.9.3 [ fo:multi-switch ]
  6.9.4 [ fo:multi-case ]
  6.9.5 [ fo:multi-toggle ]
  6.9.6 [ fo:multi-properties ]
  6.9.7 [ fo:multi-property-set ]

 6.10 インデックス化のオブジェクト書式
  6.10.1 概論
   6.10.1.1 例・サンプル
    6.10.1.1.1 インデックスキー結合オブジェクト書式 Associating Index Keys with Formatting Objects
    6.10.1.1.2 インデックス構築 Building the Index
   6.10.1.2 インデックス化処理例 Processing the Example Index
    6.10.1.2.1 [ merge-pages-across-index-key-references="leave-separate" ]
    6.10.1.2.2 [ merge-pages-across-index-key-references="merge" ]
   6.10.1.3 インデックス例
  6.10.2 [ fo:index-page-number-prefix ]
  6.10.3 [ fo:index-page-number-suffix ]
  6.10.4 [ fo:index-range-begin ]
  6.10.5 [ fo:index-range-end ]
  6.10.6 [ fo:index-key-reference ]
  6.10.7 [ fo:index-page-citation-list ]
  6.10.8 [ fo:index-page-citation-list-separator ]
  6.10.9 [ fo:index-page-citation-range-separator ]

 6.11 ブックマークのオブジェクト書式
  6.11.1 [ fo:bookmark-tree ]
  6.11.2 [ fo:bookmark ]
  6.11.3 [ fo:bookmark-title ]

 6.12 Out-of-Line Formatting Objects
  6.12.1 概論
   6.12.1.1 Floats
   6.12.1.2 Footnotes
   6.12.1.3 Conditional Sub-Regions
   6.12.1.4 例・サンプル
    6.12.1.4.1 Floating Figure
    6.12.1.4.2 Footnote
  6.12.2 [ fo:float ]
  6.12.3 [ fo:footnote ]
  6.12.4 [ fo:footnote-body ]

 6.13 その他のオブジェクト書式
  6.13.1 概論
   6.13.1.1 例・サンプル
    6.13.1.1.1 Wrapper
    6.13.1.1.2 Table Markers
   6.13.2 [ fo:change-bar-begin ]
   6.13.3 [ fo:change-bar-end ]
   6.13.4 [ fo:wrapper ]
   6.13.5 [ fo:marker ]
   6.13.6 [ fo:retrieve-marker ]
   6.13.7 [ fo:retrieve-table-marker ]


6 オブジェクト書式

 6.1 概論-オブジェクト書式
  6.1.1 共通定義

 6.2 内容-オブジェクト書式

 6.3 概要-オブジェクト書式

6 オブジェクト書式

6.1 概論-オブジェクト書式

 1つ以上の洗練化されたフォーマット化オブジェクトツリーはこのツリー内に含まれる意図された情報の説明を表現します。

 フォーマット化は説明にある表現に変換する過程です。(『3フォーマット化についての紹介』参照)

 説明は、ひとつの領域ツリーによって領域モデル内で定義されたものとして抽象的に表現されます。(『4領域モデル』参照)

 洗練されたフォーマット化オブジェクトツリーにある情報の中の1つ以上の領域ツリーによって表現されるそれぞれ可能な説明は、2つの平面として位置づけられ、平面寸法の1/2となります。

 フォーマット化オブジェクトには3種類あり、1つは生成領域、2つめは生成しない戻り領域、3つめは領域生成で利用されるオブジェクトです。

 1つめと2つめは、通常はフローオブジェクト[flow objects]と呼ばれます。

 3つ目は、それぞれがレイアウトオブジェクトである場合や一方が補助オブジェクト[auxiliary object]である場合です。

 フォーマット化オブジェクトの種類はオブジェクトと共に利用される専門用語によって示されます。

 1つめのフォーマット化オブジェクトは「1つ以上領域を生成する」といわれます。

 2つめのフォーマット化オブジェクトは「1つ以上領域を返す(戻す)」といわれます。

 1つめのフォーマット化オブジェクトは生成領域と戻り領域を両方持つ場合もあります。

 3つめのフォーマット化オブジェクトは「領域の生成において利用される」もので、それは生成過程におけるパラメータのような挙動をします。

6.1.1 複数のフォーマット化オブジェクトにおける共通定義

 このカテゴリは1つの領域と生成領域と戻り領域というフォーマット化オブジェクト間の関係づけを特徴づける特性の定義を導きます。

 これらの特性は[generated-by]と[returned-by]です。

 [generated-by]特性の値は、単独のフォーマット化オブジェクトです。

 セクション『4.7.2 Line-building』で仕様化されているように、もし、Fの意味が1つ以上の領域の生成仕様で且つAが、このように生成された領域のひとつであるか、または、このように生成される領域の一つとして形式を代用する場合には、オブジェクトFは領域Aに生成さるものと定義されます。

 象形文字領域として代用されるケースでは、生成するフォーマット化オブジェクトは、代用される象形文字領域の順番で最初に来る象形文字領域を生成するフォーマット化オブジェクトであると考えられます。

 象形文字領域(自動生成されるハイフン等)を挿入するケースでは、生成するフォーマット化オブジェクトは先行する最後の象形文字領域のフォーマット化オブジェクトの生成は、領域ツリーを横断する事前指示[pre-order]として象形文字領域を挿入したものとなると考えられます。

 [returned-by]特性の値は、ペアになるセットであり、それぞれのペアは正の整数個のフォーマット化オブジェクトを含みます。

 整数はフォーマット化オブジェクトによって返された全ての領域の順に沿う領域の位置を表現します。

 フォーマット化オブジェクトFがペア(F,1)が領域Aの[returned-by]特性におけるメンバーであり、(F,2)が領域Bの[returned-by]特性におけるメンバーであり、(F,3)が領域Cの[returned-by]特性におけるメンバーであり。。。という条件であれば、領域A、B、C...の順に戻ると定義されています。

 もし、一つの領域がフォーマット化オブジェクトによって返された領域のシーケンスにおけるメンバーであれば、フォーマット化オブジェクトによって生成されたか、フォーマット化オブジェクトの子によって返された領域のメンバーであるかのいずれかです。

 但し、フォーマット化オブジェクトの子によって返される全ての領域がフォーマット化オブジェクトによって返される必要があるとは限りません。

 複数の子領域を持つ領域を持つようなフォーマット化オブジェクトは、フォーマット化オブジェクトの子によって返される領域を生成する場合もあります。

 生成された領域の(領域ツリー中の)これらの子領域は、それらが返されたようにフォーマット化オブジェクトによって返されるわけではありません。 ツリー中にあるノードは次の2つの条件を満たす場合系統だっています。

 領域としてのフォーマット化オブジェクトのセットは系統として返されます。

 フォーマット化オブジェクトによって返される領域は、[normal]または[out-of-line]のいずれかである場合があります。

 通常の領域というのは、「通常テキストで満たされ」返されたフォーマット化オブジェクトによって生成される領域の子としての領域になります。

 通常領域は、1つのサイズとして[returned-by]系統を持ちます。

 これらは通常領域における唯一の種類です。

 線外にある領域は、絶対位置または[float]や[footnote]のいずれかでテキスト領域の外側を利用する領域です。

 [out-of-line]領域は、それより大きいサイズの[returned-by]系統を持つ場合があります。

 領域クラス[area-class]特性は、[normal]や[out-of-line]など領域がその性質を持ちます。

 [out-of-line]領域は[out-of-line]のサブクラスも示します。

 この特性における値は、[xsl-normal]、[xsl-absolute]、[xsl-footnote]、[xsl-side-float]、[xsl-before-float]です。

 領域が通常である場合は、[xsl-normal]である場合だけであり、他方、その領域は[out-of-line]領域です。(『4.2.5 スタッキング特性』参照)

 フォーマット化オブジェクトによって与えられる[returned-by]領域は、上に記述されたものとして指示されます。

 この指示は、通常領域のサブシーケンスのように領域クラスを与えられる領域のサブシーケンス上の指示として定義されます。

 領域Aが[returned-by]フォーマット化オブジェクト領域にある領域Bに先行する場合、領域Aは領域Bに先行します。

 一連の参照領域は、参照領域のシーケンスとして定義され、[page-sequence]フォーマット化オブジェクトではない同じフォーマット化オブジェクトによって生成されるかまたは、同じフローに割り当てられたフォーマット化オブジェクト利用領域を生成する[reference-areas]または[normal-flow-reference-areas](『6.4.14 fo:region-body』参照)を含むかいずれかです。(『6.4.1.4 フローとフローマッピング』参照)

 シーケンス中にある参照領域は、一連の参照領域に「含まれる」といわれ、領域ツリーを横断する指示[pre-order]を利用した領域ツリーにあるものとしてシーケンス中にあるそれぞれが関連するという指示と同じです。

6.2 内容-オブジェクト書式

 フォーマット化オブジェクトの内容は、XML内容モデル[content-model]シンタクス(構文論)を利用して表現されます。

 いくつかのケースではXML内容モデルに示されていない追加の制約が、定型にとらわれない通常の文章の中にある場合もあります。

 内容モデルにあるパラメータ要素[%block]には次のようなフォーマット化オブジェクトが含まれます。

block
block-container
table-and-caption
table
list-block

 内容モデルにあるパラメータ要素[%inline]には次のようなフォーマット化オブジェクトが含まれます。

bidi-override
character
external-graphic
instream-foreign-object
inline
inline-container
leader
page-number
page-number-citation
page-number-citation-last
scaling-value-citation
basic-link
multi-toggle
index-page-citation-list

 次に挙げるフォーマット化オブジェクトは、「ニュートラル」コンテナであり、[#PCDATA][%block][%inline]が許される範囲でそれぞれのフォーマット化オブジェクトが満たされるという条件下で列挙された付加制約を提供する際に利用される場合があります。

multi-switch
multi-properties
index-range-begin
index-range-end
wrapper
retrieve-marker

 次に挙げるフォーマット化オブジェクトは、「ニュートラル」コンテナであり、それぞれのフォーマット化オブジェクトの下で列挙されたコンテナによって表現される際に利用される場合があります。

retrieve-table-marker

 次に挙げるフォーマット化オブジェクトは、「ポイント」[points]を定義し、[fo:flow]や[fo:static-content]子孫として利用される場合があります。

change-bar-begin
change-bar-end

 次に挙げる[out-of-line]フォーマット化オブジェクトは、[#PCDATA][%block][%inline]が許容される場合に利用されます(複数の[out-of-line]フォーマット化オブジェクトの子孫である場合を除く)。

float

 次に挙げる[out-of-line]フォーマット化オブジェクトは、[#PCDATA]または[%inline]が許容される場合に利用されます(複数の[out-of-line]フォーマット化オブジェクトの子孫である場合を除く)。

footnote

6.3 概要-オブジェクト書式

basic-link[fo:basic-link]はシンプルリンク(通常のリンク)のリソースのスタート位置として説明する為に利用されます。
bidi-override[fo:bidi-override]インラインフォーマット化オブジェクトは、文書と異なる言語圏の言語が混合した文書において異なる(または入れ子(ネスト)された)行の書体の為に「Unicode-bidirectional-algorithm」(Unicode右書き・左書きアルゴリズム)を上書きする必要がある場合に利用されます。
block[fo:block]フォーマット化オブジェクトは、通常フォーマット化された段落でタイトル、ヘッドライン、 図やテーブルの表題等々に利用されます。
block-container[fo:block-container]フローオブジェクトは、ブロックレベルの参照エリアを生成する為に利用されます。
bookmark[fo:bookmark]フォーマット化オブジェクトは、名称によって、同一の文書や異なる別の文書内にあるアクセスポイントを識別する為に利用されます。与えられるブックマークは作者の要望により多くのレベルとして(サブ)ブックマークのシーケンスに細分化され、更にその先を指し示す場合もあります。
bookmark-title[fo:bookmark-title]フォーマット化オブジェクトは、人が認識できる(可読可能な)アクセスポイントの識別子として利用されます。
bookmark-tree[fo:bookmark-tree]フォーマット化オブジェクトは、内容に含まれるテーブルのように文書中にある図やテーブルのリストなどへのアクセスポイントのリストを保持する為に利用されます。それぞれのアクセスポイントはブックマークによって表記されます。
change-bar-begin[fo:change-bar-begin]は、一致する[fo:change-bar-end]によって示される領域の終わりである「領域の変更」の始まりを示すために利用されます。変更領域は列の始めか終わりのいずれかを下げる変更バーと共に装飾されます("is decorated with a change bar down")。変更バーのスタイルは、様々な変更バーがプロパティに関係している値によって決まります。
change-bar-end[fo:change-bar-end]は、一致する[fo:change-bar-begin]によって開始される「変更領域」の終端を示すために利用されます。
character[fo:character]フローオブジェクトは象形文字をマップする文字を表します。
color-profileスタイルシート用のカラープロファイルを定義する為に利用します。
conditional-page-master-reference[fo:conditional-page-master-reference]は、その利用が満たされるという条件において[page-master]を識別する為に利用されます。
declarationsスタイルシートをグローバル宣言するグループの為に利用されます。
external-graphic[fo:external-graphic]フローオブジェクトは、fo名前空間にあるXML結果ツリーの外側に属する画像データの為に利用されます。
float[fo:float]は2つの目的を提供します。コンテンツの通常の配置を行う場合に利用でき、いくつかの関連するコンテンツはページの始まり(や、いくつかの次に続くページ)を分割するにあたってフォーマット化され、リーダーにすぐに割り込まれることなく読む事ができます。あるいは一方を[float]とするつもりである際の領域に利用する事ができ、この場合、通常は横並びになります。
flow[fo:flow]フォーマット化オブジェクトのコンテンツは、ページ内に割り当てられるテキストコンテンツを提供するフローオブジェクトのシーケンスです。
flow-assignment[fo:flow-assignment]は、領域のシーケンスの為のフローの1つのシーケンスとして割り当てる事を明記する為に利用されます。
flow-map[fo:flow-map]は、領域のシーケンスの為のフローを割り当てる事を明記する為に利用されます。
flow-name-specifier[fo:flow-name-specifier]は、[source-list]にある1つのフロー割り当てを明記する為に利用されます。.
flow-source-list[fo:flow-source-list]は、とりわけ[fo:flow-assignment]の中で割り当てるフローのシーケンスを明記する為に利用されます。
flow-target-list[fo:flow-target-list]は、とりわけ[fo:flow-assignment]の中で割り当てるフローにおいて領域のシーケンスを明記する為に利用されます。
folio-prefix[fo:folio-prefix]フォーマット化オブジェクトは、[page-sequence]にある[folio numbers]の静的な前置詞です。
folio-suffix[fo:folio-suffix]フォーマット化オブジェクトは、[page-sequence]にある[folio numbers]の静的な後置詞です。
footnote[fo:footnote]は、[footnote]に一致する脚注の引用文・引用句を生成する為に利用されます。
footnote-body[fo:footnote-body]は、[footnote]のコンテンツを生成する為に利用されます。
index-key-reference[fo:index-key-reference]フォーマット化オブジェクトは、明記されたインデクスキー全てにおける引用されたページアイテムを生成する為に利用されます。
index-page-citation-list[fo:index-page-citation-list]フォーマット化オブジェクトは、[fo:index-key-reference]の子によって生成される引用されたページアイテムのセットと共にそのグループに利用されます。[fo:index-page-citation-list]の最終的な効果はフォーマット化されたページ番号とページ範囲を生成する事です。
index-page-citation-list-separatorフォーマット化オブジェクトを明記する[fo:index-page-citation-list-separator]フォーマット化オブジェクトは、ページ番号の生成されたリストにあるページ番号やページ番号の範囲を一つずつ分割する為に利用されます。
index-page-citation-range-separatorフォーマット化オブジェクトを明記する[fo:index-page-citation-range-separator]フォーマット化オブジェクトは、ページ番号リストの生成における領域を形作るページ番号を2つに分割する為に利用されます。
index-page-number-prefix[fo:index-page-number-prefix]フォーマット化オブジェクトは、 [fo:index-key-reference]によって生成される引用されたページアイテムの静的な前置詞を明記します。
index-page-number-suffix[fo:index-page-number-suffix]フォーマット化オブジェクトは、 [fo:index-key-reference]によって生成される引用されたページアイテムの静的な後置詞を明記します。
index-range-begin[fo:index-range-begin]フォーマット化オブジェクトは、インデクスキーと結合される「インデクス化された範囲」の始まりを示すために利用されます。そのインデクス領域は、一致する[fo:index-range-end]によって終了されます。
index-range-end[fo:index-range-end]は、一致する[fo:index-range-begin]で始まる「インデクス化された範囲」の終端を示すために利用されます。
initial-property-set[fo:initial-property-set] は、[fo:block]の最初の行のフォーマット化されたプロパティを明記します。
inline[fo:inline]フォーマット化オブジェクトは通常は、背景またはボーダーに囲まれたテキストの一部をフォーマット化する為に利用されます。
inline-container[fo:inline-container]フローオブジェクトは、インライン[reference-area]参照領域を生成する為に利用されます。
instream-foreign-object[fo:instream-foreign-object]フローオブジェクトは、画像やその他の [fo:instream-foreign-object]の子孫に属するオブジェクトである一般のオブジェクトを一列に並べる為に利用されます。
layout-master-set全ての「masters」である[fo:layout-master-set]は、文書中で利用されます。
leader[fo:leader]フォーマット化オブジェクトは、繰り返し文字のルールや規則、または周期的な文字の繰り返しパターンから成る先頭を生成する為に利用されたり、2つのテキストフォーマット化オブジェクトをつなぐために利用される場合もあります。
list-block[fo:list-block]フローオブジェクトは、リストをフォーマットする為に利用されます。
list-item[fo:list-item]フォーマット化オブジェクトは、リスト[list]中のアイテムのラベルとボディを含みます。
list-item-body[fo:list-item-body]フォーマット化オブジェクトは、リストアイテム[list-item]のボディの内容を含みます。
list-item-label[fo:list-item-label]フォーマット化オブジェクトは、リストアイテム[list-item]のラベルの内容を含みます。 通常は、[list-item]のボディをを一つ一つ列挙したり、識別したり、装飾したりするために利用されます。
marker[fo:marker]は、ヘッダやフッタを走査しながら生成する為に[fo:retrieve-marker]や[fo:retrieve-table-marker]と結合する中で利用されます。
multi-case[fo:multi-case]は、([fo:multi-switch]の内部で)フォーマット化オブジェクトの親である[fo:multi-switch]が停止を見せるか隠すかを選択している間にフォーマット化オブジェクトのサブツリーの二者択一を含む為に利用されます。
multi-properties[fo:multi-properties]は、与えられた内容の一部を結合させる2つ以上のプロパティセットを切り替える為に利用されます。
multi-property-set[fo:multi-property-set]は、User Agentに依存し、コンテンツに提供されるフォーマット化プロパティのセットのどちらを選ぶかを明記する為に利用されます。
multi-switch[fo:multi-switch]は、([fo:multi-case]にあるそれぞれのサブツリーの)フォーマット化オブジェクトの二者択一と([fo:multi-toggle]を通してアクティブになっている)他の選択肢から切り替える操作を含みます。
multi-toggle[fo:multi-toggle]は、他の[fo:multi-case]に切り替える為に[fo:multi-case]内部で利用されます。
page-number[fo:page-number]フォーマット化オブジェクトは、現在のページ番号を表すために利用されます。
page-number-citation[fo:page-number-citation]は、引用されたフォーマット化オブジェクトによって返される最初のノーマル領域を含むページにおけるページ番号を参照する為に利用されます。
page-number-citation-last[fo:page-number-citation-last]は、(a)引用されたフォーマット化オブジェクトによって返される領域(b)明記された[page-citation-strategy]と一致する領域クラスを持つ領域を含んだ最後のページにおけるページ番号の参照の為に利用されます。
page-sequence[fo:page-sequence]フォーマット化オブジェクトは、文書中にあるページの(サブ)シーケンスの生成方法を明記する為に利用します。例えば、レポートの章です。これらのページの内容は、[fo:page-sequence]の子で構成されています。
page-sequence-master[fo:page-sequence-master]は、ページのシーケンス生成時に利用される[page-masters]のシーケンスを明記します。
page-sequence-wrapper[fo:page-sequence-wrapper]フォーマット化オブジェクトは、 [fo:page-sequence]フォーマット化オブジェクトのグループにおけるプロパティ継承を明記する為に利用されます。これは付加的なフォーマット化セマンティクス(意味論)ではありません。
region-afterこの領域は、[fo:region-body]領域の「後ろ」側に配置される[viewport]を定義します。
region-beforeこの領域は、[fo:region-body]領域の「前」側に配置される[viewport]を定義します。
region-bodyこの領域は、[fo:simple-page-master]の「中央」に配置される[viewport]と[reference]のペアを明記します。
region-endこの領域は、[fo:region-body]領域の「終端」側に配置される[viewport]を定義します。
region-name-specifier[fo:region-name-specifier]は、[target-list]中の一つの領域を明記する為に利用されます。
region-startこの領域は、[fo:region-body]領域の「始めの」一端に配置される[viewport]を定義します。
repeatable-page-master-alternatives一つの[fo:repeatable-page-master-alternatives]は、二者択一の[page-master]セットのインスタンスの繰り返しで構成されるサブシーケンスを明記します。繰り返し(反復)番号には、限界があるかもしれませんし、潜在的に限界がないかもしれません。
repeatable-page-master-reference一つの[fo:repeatable-page-master-reference]は、単独の[page-master]のインスタンスの繰り返しで構成されるサブシーケンスを明記します。繰り返し(反復)番号には、限界があるかもしれませんし、潜在的に限界がないかもしれません。
retrieve-marker[fo:retrieve-marker]は、ヘッダやフッタを走査しながら生成する[fo:marker]を結合する中で利用されます。
retrieve-table-marker[fo:retrieve-table-marker]は、[table-headers]テーブルヘッダと[table-footers]テーブルフッタを生成する為に[fo:marker]と結合する為に利用され、その内容は異なるページ、異なる領域や異なる列を越えて変更できます。
root[fo:root]ノードはXSL結果ツリーのトップノードです。このツリーはフォーマット化オブジェクトで構成されます。
scaling-value-citation[fo:scaling-value-citation]は、引用された[fo:external-graphic]に提供する[scale-factor]を取得する為に利用されます。
simple-page-master[fo:simple-page-master]は、ページの生成中に利用され、ページの幾何学的配置を明記します。このページは領域ごとに分割されます。
single-page-master-reference一つの[fo:single-page-master-reference]には、単独の[page-master]の単独のインスタンスから構成されるサブシーケンスを明記します。
static-content[fo:static-content]フォーマット化オブジェクトは、シーケンスやフォーマット化オブジェクトのツリーを保持し、単独の領域内で、または、ページシーケンス内で1ページ以上の上にある名前付けされたかのような領域の中での繰り返しを表現します。一般的に利用されるのは、繰り返しまたはヘッダとフッタの走査です。
table[fo:table]フローオブジェクトは、テーブルの表にされた構成要素をフォーマット化する為に利用されます。
table-and-caption[fo:table-and-caption]フローオブジェクトは、その表題(caption)と一緒にテーブルをフォーマット化する為に利用します。
table-body[fo:table-body]フォーマット化オブジェクトは、テーブルボディの内容を含める為に利用します。
table-caption[fo:table-caption]フォーマット化オブジェクトは、[fo:table-and-caption]を使う場合に限定してテーブルの表題(caption)を含んだブロックレベルのフォーマット化オブジェクトを含める為に利用します。
table-cell[fo:table-cell]フォーマット化オブジェクトは、テーブルセルに配置するグループ内容に利用されます。
table-column[fo:table-column]フォーマット化オブジェクトは、同じ列とスパンを持つテーブルのセルに適用できる特性を明記します。
table-footer[fo:table-footer]フォーマット化オブジェクトは、テーブルフッタの内容を含む為に利用されます。
table-header[fo:table-header]フォーマット化オブジェクトは、テーブルヘッダの内容を含む為に利用されます。
table-row[fo:table-row]フォーマット化オブジェクトは、行中の[table-cells]グループの為に利用されます。
title[fo:title]フォーマット化オブジェクトは、与えられるページシーケンスとタイトルを結びつけるために利用されます。このタイトルはページを識別するインタラクティブな(対話式の)User Agentによって利用される場合があります。例えば、[fo:title]の内容はフォーマット化が可能で「タイトル」窓や「ツールチップ」内で表示する事ができます。
wrapper[fo:wrapper]フォーマット化オブジェクトは、フォーマット化オブジェクトグループにおける継承されたプロパティを明記する為に利用されます。これは付加的なフォーマット化セマンティクス(意味論)ではありません。


 6.4 宣言とページ数とオブジェクト書式レイアウト
  6.4.1 概論
   6.4.1.1 [ Page-sequence-masters ]
   6.4.1.2 [ Page-masters ]
   6.4.1.3 ページ生成 Page Generation
   6.4.1.4 フローとフローマッピング Flows and Flow Mapping
   6.4.1.5 ページ生成制約 Constraints on Page Generation
   6.4.1.6 ページ付け木構造 Pagination Tree Structure
   6.4.1.7 フローマップ例 Example Flow Maps
    6.4.1.7.1 範囲内にある2つのフローマッピング Two flows mapping into their own regions
    6.4.1.7.2 2つの範囲にある1つのフローマッピング A flow mapping into two regions
    6.4.1.7.3 1つの範囲にある2つのフローマッピング Two flows mapping into a region
    6.4.1.7.4 2つの範囲にある2つのフローマッピング Two flows mapping into two regions
  6.4.2 [ fo:root ]
  6.4.3 [ fo:declarations ]
  6.4.4 [ fo:color-profile ]
  6.4.5 [ fo:page-sequence ]
  6.4.6 [ fo:page-sequence-wrapper ]
  6.4.7 [ fo:layout-master-set ]
  6.4.8 [ fo:page-sequence-master ]
  6.4.9 [ fo:single-page-master-reference ]
  6.4.10 [ fo:repeatable-page-master-reference ]
  6.4.11 [ fo:repeatable-page-master-alternatives ]
  6.4.12 [ fo:conditional-page-master-reference ]
  6.4.13 [ fo:simple-page-master ]
  6.4.14 [ fo:region-body ]
  6.4.15 [ fo:region-before ]
  6.4.16 [ fo:region-after ]
  6.4.17 [ fo:region-start ]
  6.4.18 [ fo:region-end ]
  6.4.19 [ fo:flow ]
  6.4.20 [ fo:static-content ]
  6.4.21 [ fo:title ]
  6.4.22 [ fo:flow-map ]
  6.4.23 [ fo:flow-assignment ]
  6.4.24 [ fo:flow-source-list ]
  6.4.25 [ fo:flow-name-specifier ]
  6.4.26 [ fo:flow-target-list ]
  6.4.27 [ fo:region-name-specifier ]

6.4 宣言とページ数とオブジェクト書式レイアウト

6.4.1 概論

 フォーマット化オブジェクトツリーのルートノードは[fo:root]フォーマット化オブジェクトにしなければいけません。

 [fo:root]フォーマット化オブジェクトの子は、単独の[fo:layout-master-set]、付加的な[fo:declarations]であり、付加的な[fo:bookmark-tree]であり、1つ以上の[fo:page-sequences]と[fo:page-sequence-wrapper]両方か、または一方の要素です。

 [fo:layout-master-set]は複数ページの幾何学と[fo:page-sequences]の子となるシーケンスを定義し、それは([fo:flow]と[fo:static-content]中に含まれた)[flows]と呼ばれており、ページごとに割り当てられるコンテンツを提供します。

 [fo:declarations]オブジェクトは、フォーマット化オブジェクトのラッパーであり、その内容はフォーマット化プロセスにおけるリソースとして利用されます。

 ページ生成のプロセスは、XSLプロセッサフォーマット化結果ツリーによって自動的に行われます。

 [fo:layout-master-set]の子は、丁づけし(ページ数をつけ)、レイアウトと[flow-map]フローマップの明確化を行います。

 丁づけとレイアウトの明確化には、[page-masters]と[page-sequence-masters]という2つのタイプがあります。

 [page-masters]は、ページの意図された再分割に関する記述の役割を持っており、さらにこれら再分割における幾何学計算を行います。

 [page-sequence-masters]は、[page-masters]のシーケンスを記述する役割を持っており、[fo:page-sequence]のフォーマット化中に複数ページを生成する為に利用されます。

 [flow-maps]は、領域におけるフローを割り当てる役割を持っています。

6.4.1.1 [ Page-sequence-masters ]

 互いの[fo:page-sequence-master]は、[page-masters]における可能性のあるシーケンスのセットを特徴づけます。

 与えられるいくつかの[fo:page-sequence]は、可能性のある番号付けが利用されるセットただ一つです。

 サブシーケンス中の[page-masters]は、単独の[page-master]または1つ以上の[page-masters]の反復の参照によって明記される場合もあります。

 例えば、複数の系統だてられた[page-masters]の開始と他のいくつかの[page-master](または[page-masters])の系統を継続する場合もあります。

 [fo:single-page-master-reference]は、単独の[page-master]を含んだサブシーケンスを明記する為に利用されます。

 サブシーケンスの明記には2通りあって、系統立てられています。

 [fo:repeatable-page-master-reference]には、単独の[page-master]の系統を明記します。

 [fo:repeatable-page-master-alternatives]には、[page-masters]のセットの系統を明記します。

 二者択一の[page-masters]が、条件付きで且つページ番号が奇数であるか偶数であるかによるサブシーケンス中にある与えられるポイントで利用される場合もあれば、最初のページ、最後のページやブランク(空・カラ)である場合もあります。

 (例えば、)系統立てられた番号を操作する系統立てられた仕様上の[maximum-repeats]最大繰り返し数(最大反復数)プロパティというプロパティがありますが、このプロパティが明記されておらず、系統立てられた番号上に限界がないという場合もあるという事です。

6.4.1.2 [ Page-masters ]

 1つの[page-master]は、1ページを生成する際に利用されるマスタです。

 ページは、領域ツリーのルートの子である[viewport-area]中にある[viewport]と[reference]のペアです。

 [page-viewport-area]は、ページの[viewport-area]となるよう定義され、[page-area]は、[page-viewport-area]の一意の子として定義されます。

 [page-viewport-area]は、中間出力によって定義され、[page-area]は、ページ内容とページ内容が持つ中間出力におけるページ内容の位置決めの効果を保持します。

 [page-viewport-area]は、複数回利用される場合もあります。

 ([page-viewport-area]は、)1回ごとに単独のページに生成されます。例えば、[page-master]は、[fo:repeatable-page-master-reference]が、明記されたサブシーケンス内での参照の相互の発生ごとに1つのページを生成する[fo:page-sequence]によって利用されるでしょう。。

※注
ページは、ウェブブラウザのようにUser Agentと共に利用される場合には、通常、それぞれの文書は、ページを一つだけ持ちます。[viewport]は、決められたページサイズでページを見る為に利用されていました。もちろんページが紙のシートのように紙の表面上の数に一致するページといった非対話的な(インタラクティブでない)メディア上に配置される際には、紙のサイズがページのサイズを決定します。

 この仕様にあるのは[page-master]の[fo:simple-page-master]1種類だけです。この仕様の未来バージョンは[page-masters]の種類を付加的に追加するかもしれません。

 [fo:simple-page-master]は、子と1つ以上の領域の為の仕様を持ちます。

 領域仕様は、[region-viewport-area]と[region-reference-area]で構成される[viewport]と[reference]のペアを生成する際に[region-master]というマスタとして利用されます。

 [region-viewport-area]は、常に[region-master]の親を利用して生成される[page-area]の子です。

※注
ページ上の領域は、HTML文書中にある「frames」に似ています。通常、これらの領域の内、少なくとも1つは、その寸法の一つである不確定の長さで構成されています。[lr-tb]([rl-tb])という記述モードを伴う言語においてこの領域は、[top-to-bottom]ディレクション中に不確定な長さで構成されるのは典型的です。[viewport]は、フレーム部の可視化を表現します。領域に割り当てられたフローは、[viewport]を通して[reference-area]領域をスクロールする事によって閲覧されます。

 それぞれの領域は領域フォーマット化オブジェクトによって定義されます。

 それぞれの領域フォーマット化オブジェクトは、名称と明確な位置を持っています。

 追記として、その領域の高さと幅は固定であり、他の寸法は、固定か、明確な値です。例えば、ウェブページのbody領域は明確な高さを持っています。(?)

 領域仕様は、領域フォーマット化オブジェクトを利用して生成される[region-viewport-areas]のサイズと位置を決定します。

 [viewport]の位置決めは、[page-area]親領域と関連します。

 この勧告となっているXSL 1.1において[page-master]は次の領域で構成されます。1つ以上の領域と4つの他の領域、それぞれの領域はbody上にあります。現在の[writing-mode]に一致する各一端の領域を許容する為にこれらの領域は、[region-before]([writing-mode][lr-tb]がヘッダと一致する位置)[region-after]([writing-mode][lr-tb]がフッタと一致する位置)[region-start]([writing-mode][lr-tb]が[left-sidebar]と一致する位置)[region-end]([writing-mode][lr-tb]が[right-sidebar]と一致する位置)と名付けられます。勧告となるXSL未来バージョンでは任意にサイズと位置が決められた領域の任意の番号を含む為に[page-master]を許容するメカニズムを紹介するでしょう。

 領域のいくつかのタイプは、それらと結合される条件付きのサブ領域[sub-regions]を持ち、結合される[region-reference-areas]は、サブ領域[sub-regions]に一致する子領域を持つ事によって割り振られ、領域における[main-reference-area]を含んでいます。[column-count]プロパティを提供する為の[region-masters]は、ページ上に存在する(span="all"を持つブロック領域などの)スパンの番号に依存した番号を持つ[span-reference-areas]として指定する子領域を持つ事によって更に分割されます。これらは[normal-flow-reference-areas]として指定された子領域を持つ事によって再分割されるようになり、(その番号は)明記される列の番号に依存する番号です。

6.4.1.3 ページ生成 Page Generation

 ページは、[fo:page-sequences]のフォーマット化の過程で生成されます。

 その上での注記としては、[viewport-area]内の[viewport]と[reference]のペアであるそれぞれのページは、領域ツリーのルートの子です。

 それぞれのページは、[page-master]によって明記された領域と一致する[region-viewport-areas]と[region-reference-areas]を定義する為に[page-master]を利用して生成されます。

 それぞれの[fo:page-sequence]は、[fo:page-sequence-master]または[page-master]のいずれかを参照します。

 もし、その参照が[page-master]であれば、無制限の回数が参照される[page-master]を反復する[fo:page-sequence-master]の為の参照だったものとして解釈されます。

 [fo:page-sequence]が、「master-reference」プロパティ経由で[page-master]を直接参照するか、そのプロパティが[page-master]を参照する[fo:page-sequence-master]を参照するといういずれかの場合、[fo:page-sequence]は、[page-master]を参照します。

6.4.1.4 フローとフローマッピング Flows and Flow Mapping

 フローには、[fo:static-content]と[fo:flow]の2種類あります。

 [fo:static-content]フローは、ヘッダとフッタを走査しながら、そこにあるテキストのような内容を保持し、ページの多くではこれが繰り返されます。

 [fo:flow]は、頁のシーケンスをまたいで割り当てられる内容を保持します。

 何ページあるのかを見極める事である[fo:flow]フローの過程は、[fo:page-sequence]を保持する為に生成されます。

 [fo:page-sequence-master]は、フローの子の内容が割り当てられてられている[page-masters]のシーケンスの発生器として利用されます。

 フローの子は、ブロックレベルフローオブジェクトのシーケンスです。

 それぞれのフローは、「flow-name」プロパティによって与えられる名称を持ちます。

 2つのフロー([fo:static-content]と[fo:flow])は、同一の[fo:page-sequence]が同じ名称を持つ場合の子です。

 [page-master]上の領域の為のフローの指定は、[flow-map]で決定されます。

 [flow-map]は、[fo:page-sequence]の子フローと領域が[fo:page-sequence]によって参照された[page-masters]に含まれると定義されます。

 フローマップは、[fo:flow-map]フォーマット化オブジェクトで明記されます。

 [fo:page-sequence]は、領域の為のフローを割り当てる際の[flow-map-reference]プロパティによって示される[flow-map]を利用します。

 もし、[flow-map-reference]プロパティが[page-sequence]の為に明記されていないとすれば、潜在する[flow-map]は、XSLバージョン1.0の勧告である[page-sequence]の為に利用されます。

 フローの「flow-name」プロパティは、フローが割り当てられる領域の為に明記されます。

 それぞれの領域は、「region-name」プロパティを持ちます。

 [flow-map]は、同じ名称を持つ領域の為にフローを割り当てます。

 (To avoid requiring users to)領域名称とその領域の全ては、「region-name」プロパティという既定値を持ちます。

 [region-body]、[region-before]、[region-after]、[region-start]、[region-end]は、既定の名称としてそれぞれ[xsl-region-body]、[xsl-region-before]、[xsl-region-after]、[xsl-region-start]、[xsl-region-end]を持ちます。

 子孫に既定の同名を持つ[region-body]が2つあるというのはページマスタにおけるエラーです。

 追記すると、[fo:static-content]フォーマット化オブジェクトは「xsl-before-float-separator」「xsl-footnote-separator」という値を持つプロパティ「flow-name」を持つ場合があります。

 もし、条件付きで[region-body]の[sub-region]が特有のページ上に[reference-area]を生成する為に利用されるとすれば、条件付き[sub-region]に一致する名称を持つ[fo:static-content]は、『6.12.1.3 条件付きサブ領域』に明記されているように[reference-area]参照領域が[sub-region]サブ領域と共に割り当てられるようにフォーマットされるでしょう。

6.4.1.5 ページ生成制約 Constraints on Page Generation

 [page-area]の子孫である領域は、[page-master]が[page-area]を生成する為に利用され、領域に割り当てられたフローが[page-master]上に明記される事によって制約されます。

 [fo:flow]フローにおいては、その領域が[page-sequence]における効果として[flow-map]によるシーケンスで複数ページを横断して割り当てられるフローの子孫によって生成されたものです。

 [fo:static-content]フローにおいては、フローの過程が2つの例外(※)と共に割り当てられたフローにおける領域を持つ[page-master]を利用して生成されたページごとに繰り返されます。  (※例外1:)[xsl-before-float-separator]の[flow-name]を持つ[fo:static-content]において、そのプロセスが[xsl-before-float]の領域クラスと共に子孫領域を持つそれらの[page-reference-areas]の為だけに反復される
 (※例外2:)[xsl-footnote-separator]の[flow-name]を持つ[fo:static-content]において、そのプロセスが、[xsl-footnote]の領域クラスと共に子孫領域を持つそれらの[page-reference-areas]の為だけに反復される

6.4.1.6 ページ付け木構造 Pagination Tree Structure

 結果ツリー構造である「ページ生成におけるフォーマット化オブジェクトのツリー説明図」については、対象ドキュメントW3C/6.4.1.6 Pagination Tree Structureの図参照

6.4.1.7 フローマップ例 Example Flow Maps

 典型的なフローマップの利用は、それぞれ互いに一方から独立して存在し、ページ上の分割された領域にある2つ以上のフローのケースです。

 もうひとつは、フローが同一ページ上の他の領域にある1つの領域から溢れていて、異なるページに続いているケースです。

 3つめの使い方は、2つ以上のフローが「連結」されていて、それぞれのフローがもう一方の終端の前に始まっている状態です。

6.4.1.7.1 範囲内にある2つのフローマッピング Two flows mapping into their own regions

※「領域RにあるフローA、領域SにあるフローBのマッピング図」については、対象ドキュメントW3C/6.4.1.7.1 Two flows mapping into their own regionsの図参照

 (以下は同参照図を使った説明です。)

 この場合フローは以下のように記述されます。


<fo:flow flow-name="A">
  <fo:block>In the second century of the Christian Aera, the empire of Rome ...</fo:block>
</fo:flow>

 且つ


<fo:flow flow-name="B">
  <fo:block>Quo usque tandem abutere, Catilina, patientia nostra? ...</fo:block>
</fo:flow>

 領域は、「region-name="R"」と「region-name="S"」と記述され、それぞれ、そのフローマップは次のように記述されます。


<fo:flow-map flow-map-name="E1">
  <fo:flow-assignment>
    <fo:flow-source-list>
      <fo:flow-name-specifier flow-name-reference="A"/>
    </fo:flow-source-list>
    <fo:flow-target-list>
      <fo:region-name-specifier region-name-reference="R"/>
    </fo:flow-target-list>
  </fo:flow-assignment>
  <fo:flow-assignment>
    <fo:flow-source-list>
      <fo:flow-name-specifier flow-name-reference="B"/>
    </fo:flow-source-list>
    <fo:flow-target-list>
      <fo:region-name-specifier region-name-reference="S"/>
    </fo:flow-target-list>
  </fo:flow-assignment>
</fo:flow-map>

6.4.1.7.2 2つの範囲にある1つのフローマッピング A flow mapping into two regions

※「領域R1とR2にあるフローAのマッピング図」については、対象ドキュメントW3C/6.4.1.7.2 A flow mapping into two regionsの図参照

 (以下は同参照図を使った説明です。)

 この場合フローは以下のように記述されます。


<fo:flow-map flow-map-name="E2">
  <fo:flow-assignment>
    <fo:flow-source-list>
      <fo:flow-name-specifier flow-name-reference="A"/>
    </fo:flow-source-list>
    <fo:flow-target-list>
      <fo:region-name-specifier region-name-reference="R1"/>
      <fo:region-name-specifier region-name-reference="R2"/>
    </fo:flow-target-list>
  </fo:flow-assignment>
</fo:flow-map>

6.4.1.7.3 1つの範囲にある2つのフローマッピング Two flows mapping into a region

※「領域RにあるフローAとBのマッピング図」については、対象ドキュメントW3C/6.4.1.7.3 Two flows mapping into a regionの図参照

 (以下は同参照図を使った説明です。)

 この場合フローは以下のように記述されます。


<fo:flow-map flow-map-name="E3">
  <fo:flow-assignment>
    <fo:flow-source-list>
      <fo:flow-name-specifier flow-name-reference="A"/>
      <fo:flow-name-specifier flow-name-reference="B"/>
    </fo:flow-source-list>
    <fo:flow-target-list>
      <fo:region-name-specifier region-name-reference="R"/>
    </fo:flow-target-list>
  </fo:flow-assignment>
</fo:flow-map>

6.4.1.7.4 2つの範囲にある2つのフローマッピング Two flows mapping into two regions

※「領域R1とR2にあるフローAとBのマッピング図」については、対象ドキュメントW3C/6.4.1.7.4 Two flows mapping into two regionsの図参照

 (以下は同参照図を使った説明です。)

 この場合フローは以下のように記述されます。


<fo:flow-map flow-map-name="E4">
  <fo:flow-assignment>
    <fo:flow-source-list>
      <fo:flow-name-specifier flow-name-reference="A"/>
      <fo:flow-name-specifier flow-name-reference="B"/>
    </fo:flow-source-list>
    <fo:flow-target-list>
      <fo:region-name-specifier region-name-reference="R1"/>
      <fo:region-name-specifier region-name-reference="R2"/>
    </fo:flow-target-list>
  </fo:flow-assignment>
</fo:flow-map>

6.4.2 [ fo:root ]

※[ xslns:fo ]XSL名前空間であるfoにはXML要素とXML属性が格納されています。

一般的な利用法

 これは、フォーマット化オブジェクトツリーのトップノードです。

 文書中で利用された全てのマスタを保持する[fo:layout-master-set]フォーマット化オブジェクト、付加的に[fo:declarations]、[fo:bookmark-tree]、1つ以上の[fo:page-sequence]や[fo:page-sequence-wrapper]オブジェクトを保持します。

 それぞれの[fo:page-sequence]は、[fo:page-sequence]の子の内容をフォーマット化した結果であるページのシーケンスを記述します。

 [fo:page-sequence-wrapper]は、[fo:root]の子として出現する事もできます。

 [fo:page-sequence-wrapper]は、ゼロ以上の[fo:page-sequence]オブジェクトや[fo:page-sequence-wrappers]を含む事ができます。

 [fo:page-sequence-wrapper]は、それを含む[fo:page-sequence]における継承プロパティを記述する為に利用されます。

 これらは付加的なフォーマット化セマンティクス(意味論)ではありません。

領域

 [Page-viewport-areas]は、[fo:root]フォーマット化オブジェクトの子である[fo:page-sequence]によって返されます。

 [fo:root]は、領域を生成しません。

制約

 領域ツリーのルートの子は、[fo:root]の子である[fo:page-sequence]によって返される単独または全ての[page-viewport-areas]を含みます。

 子である[fo:page-sequence]によって返される全ての領域セットは、正確に指定されます。(『4.7.1 一般的な指示制約 General Ordering Constraints』参照)

コンテンツ


(layout-master-set,declarations?,bookmark-tree?,(page-sequence|page-sequence-wrapper)+)

 [fo:root]の子孫である[fo:page-sequence]が少なくとも1つない場合にはエラーです。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.27.11 media-usage

6.4.3 [ fo:declarations ]

一般的な利用法

 [fo:declarations]は、スタイルシートのグローバル宣言のグループ化のために利用されます。

領域

 [fo:declarations]フォーマット化オブジェクトは、領域を生成したり、他の領域から返されたりはしません。

制約

なし

コンテンツ


(color-profile)*

 [fo:declarations]フォーマット化オブジェクトは、XSLではない名前空間にある付加的な子要素を持つ場合もあります。

 それらは存在しないのですが、オブジェクトやプロパティのXSL名前空間のセマンティクス(意味論)を変更します。

 XSLでない名前空間要素の構築の許容により、それらの名前空間の為に定義されます。

6.4.4 [ fo:color-profile ]

一般的な利用法

 [fo:color-profile]フォーマット化オブジェクトは、スタイルシートの為のICCカラープロファイルを宣言する為に利用されます。

 [color-profile]は、「color-profile-name」プロパティに明記されている名称経由で参照されます。

 [color-profile]は、「src」属性値に明記されるURIによって識別されます。

 このURIは、内部の[color-profile]を見分けて識別したり、読み込まれ、解釈されるべきICCカラープロファイルエンコードを指し示す場合もあります。  [color-profile]は参照され(例:「rgb-icc関数経由で」 『5.10.2 Color Functions』参照)、次のルールを利用します。

領域

 [fo:color-profile]フォーマット化オブジェクトは、領域を生成したり、他の領域から返されたりはしません。

制約

なし

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.30.16 src
7.18.2 color-profile-name
7.18.3 rendering-intent

6.4.5 [ fo:page-sequence ]

一般的な利用法

 [fo:page-sequence]フォーマット化オブジェクトは、例えば、レポートの章のような文書内ページの(サブ)シーケンスの作成方法を記述する為に利用されます。

 これらのページの内容は、[fo:page-sequence]に影響される[flow-map]によって割り当てられる[fo:page-sequence]の子フローとなります。

 これらのページのレイアウトは、[fo:page-sequence]上の[master-reference]特性によって参照される[fo:page-sequence-master]や[page-master]となります。

 [fo:page-sequence]のそれぞれの子[flow-object]によって返される領域のシーケンスでは、以下の記述のようなページを生成する子孫が作られます。

領域

 [fo:page-sequence]フォーマット化オブジェクトは、[viewport]と[reference]のペアを生成し、[page-viewport-areas]を戻します。

 それぞれの[page-reference-area]、それぞれの領域は、[page-reference-area]、[fo:page-sequence]オブジェクトと更に[page-reference-area]内の領域の出現の為の[viewport]と[reference]のペアと[before-float-reference-area]、[footnote-reference-area]、[main-reference-area]、1つ以上の[normal-flow-reference-areas]を生成する場合もあります。

 離れた領域の生成は、[fo:simple-page-master]、[region-masters]、[fo:flow-map]の説明に記述され、[title-area]も生成される場合があります。

 全ての領域は、領域クラス「xsl-absolute」を持つ[fo:page-sequence]によって生成されます。

 [page-viewport-areas]は、エッジを束ねたものとして端の1つとして扱います。

 この勧告は、エッジを束ねるページである一端を選択する為のメカニズムではありません。 ※注釈:もし、User Agentが束ねる結果を決める事が出来る場合、与えられるページの束ねられるページのエッジは、ページが束ねられる事を意図するエッジです。
通常、奇数の[folio-number]を持つページのエッジを束ねるページは、そのページの[start-edge]と[folio-number]がそのページの[end-edge]を伴うページの[binding-edge]です。
結束は、とじ金(製本する際のホッチキスの針など)や複雑な構成の製本であっても単純化する事ができます。

 与えられる(『6.13.2 fo:change-bar-begin』で定義されているような)[fo:change-bar-begin]オブジェクトFの影響で変更バーの下にある(under the change bar)子孫Dというそれぞれのフォーマット化オブジェクト、[fo:page-sequence]は、Aという先祖領域の子としてDによって返されるAという領域ごとに「変更バー領域」を生成します。

 それぞれの変更バー領域は、[margin]と[padding]がゼロで、[border-end-color]が、Fの[change-bar-color]によって与えられ、[border-end-style]は、Fの[change-bar-style]によって与えられ、[border-end-width]は、Fの[change-bar-width]によって与えられ、インライン[progression-dimension]はゼロと等価で、[block-progression-dimension]は、その[region-area]の[block-progression-dimension]と並列であるAの寸法と等価であるというクラス[xsl-absolute]の構成です。

 変更バー領域は、[normal-flow-reference-area]か[region-reference-area]のいずれかであるAにおいて最も近い先祖領域Cに隣り合うように配置されます。

 変更バー領域は、AとFという[change-bar-offset]によって与えられる距離によってCから離れた状態で、Fの[change-bar-placement]特性によって決まるものとしてCの[start-edge]や[end-edge]を想定して一列に並べられます。

特性展開

 [reference-orientation]と[region-viewport-areas]の[writing-mode]は、[fo:page-sequence]のプロパティである「reference-orientation」と「writing-mode」の値によって決まります。

※注記:値は、系統立てられた値やフォーマット化オブジェクトのレイアウト上に明記されている値を取得する為に利用される場合がある[from-page-master-region]関数が、[viewport]と[reference]領域のペアを生成する為に利用されます。

制約

 [page-viewport-area]と[page-reference-area]のペアそれぞれは、[master-reference]特性によって直接識別された[fo:page-sequence]や[page-master]の[master-reference]特性によって識別される[page-sequence-master]の制約を満たす[page-master]を利用して生成されます。

 このような[page-reference-area]の子である[region-viewport-area]は、その[page-master]の子である領域と一致しなければいけません。

 [fo:page-sequence]によって生成される領域は、[fo:page-sequence]の子であるフローによって返される領域の子孫であるものとして保持します。

 フローによって[fo:page-sequence]へ返される領域は、5つの制約を満たさなければなりません。

 もし、[title-area]が、次のような制約で生成される事を満たさなければならない場合、

セクション『4.7.1 General Ordering Constraints』の既定の指示制約は、[fo:title]を提供します。

コンテンツ


(title?,folio-prefix?,folio-suffix?,static-content*,flow+)

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.10.1 country
7.27.19 flow-map-reference
7.26.1 format
7.10.2 language
7.26.4 letter-value
7.26.2 grouping-separator
7.26.3 grouping-size
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.27.7 initial-page-number
7.27.6 force-page-count
7.27.9 master-reference
7.21.3 reference-orientation
7.29.7 writing-mode

6.4.6 [ fo:page-sequence-wrapper ]

一般的な利用法

 [fo:page-sequence-wrapper ]フォーマット化オブジェクトは、[fo:page-sequence]フォーマット化オブジェクトのグループにおける継承されるプロパティを記述する為に利用されます。

領域

 [fo:page-sequence-wrapper]フォーマット化オブジェクトは、領域を生成しません。[fo:page-sequence-wrapper]フォーマット化オブジェクトは、それぞれの[fo:page-sequence-wrapper]の子によって返される領域のシーケンスの連結によって生成された領域のシーケンスを戻します。

特性展開

 「id」を除いて、「index-class」、「index-key」、[fo:page-sequence-wrapper]には、プロパティはなく、直接利用しますが、その子に利用される継承プロパティを保持する為の搬送手段として与えるものです。

制約

 [fo:page-sequence-wrapper]の子によって返される領域のシーケンスの連結指定は、[fo:page-sequence-wrapper]の下で指定された子の場合と同様の指定です。子孫として[fo:page-sequence]オブジェクトのない[fo:page-sequence-wrapper]は、領域なしで返されます。

注釈:なぜなら子孫として[fo:page-sequence]オブジェクトのない[fo:page-sequence-wrapper]は、領域なしで返され、[fo:page-sequence-wrapper]上のいくつかの「id」、「index-key」や「index-class」プロパティは無視されます。その結果は、このFO(Formatting Object/フォーマット化オブジェクト)上に割り当てられないものとして推定されます。とりわけ、いくつかのこの「id」を参照する為の試行は、FO結果ツリー内部で宣言される事はないものとして結果として同じアクションで終わります。

コンテンツ


(page-sequence|page-sequence-wrapper)*

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.30.8 id
7.24.1 index-class
7.24.2 index-key

6.4.7 [ fo:layout-master-set ]

一般的な利用法

 [fo:layout-master-set]は、文書内で利用するマスタ全てを包むラッパーです。これには、[page-sequence-masters]、[page-masters]、[flow-maps]を含みます。

領域

 [fo:layout-master-set]フォーマット化オブジェクトが、が、生成する直接的な領域はありません。[fo:layout-master-set]の子であるマスタは、生成されるページにおける[fo:page-sequence]によって利用されます。

制約

 [fo:layout-master-set]のそれぞれの子にある[master-name]の値は、セット内部で一意にしなければいけません。

コンテンツ


(simple-page-master|page-sequence-master|flow-map)+

6.4.8 [ fo:page-sequence-master ]

一般的な利用法

 与えられる[page-masters]にある指定上の制約を記述する為に利用される[fo:page-sequence-master]は、ページのシーケンスを生成中に利用されます。ページは、[fo:page-sequence-master]が[fo:page-sequence]のフォーマット中に利用される際に自動的に生成されます。

※注記:ページとして可能性のあるシーケンスを記述する方法はいくつかあります。1つは、特有の[page-masters]の参照におけるシーケンスを記述する事ができます。これは項目がページとして可能性のあるシーケンスに結び付けられます。あるいはまた、1つ以上の[page-masters]のサブシーケンスを繰り返す記述をする事ができます。これは、サブシーケンスが結び付けたり、結びつけないようにする事もできます。最後の1つは、[sub-sequence-specifiers]の2種類を混合する事ができます。

領域

 [fo:page-sequence-master]フォーマット化オブジェクトが、が、生成する直接的な領域はありません。それは[fo:page-sequence]フォーマット化オブジェクトがページを生成する事によって利用されます。

制約

 [fo:page-sequence-master]の子は、[sub-sequence-specifiers]のシーケンスです。[page-sequence]は、次の(a)(b)の場合、[fo:page-sequence-master]によって決められた制約を満たします。(a)[fo:page-sequence-master]の子である[sub-sequence-specifiers]におけるシーケンスの既定値のサブシーケンスに対して1:1のマップであるページにおいてサブシーケンスのシーケンスを仕切る事ができる場合。(b)仕切られたページ上の[sub-sequence]ごとに、[sub-sequence]が[sub-sequence-specifier]と一致するという制約を満たす場合。ページ上のサブシーケンスのシーケンスが、[sub-sequence-specifiers]のシーケンスよりも短くする事ができる場合。

 連続した[sub-sequence-specifiers]の子のシーケンスが、いくつかの領域が[fo:flow]が配置されない事によって返される間にからになった場合にはエラーです。もし、ページを生成する為に利用される最後の[sub-sequence-specifier]が再利用する事ができれば、実行は回復されます。

コンテンツ


(single-page-master-reference|repeatable-page-master-reference|repeatable-page-master-alternatives)+

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.27.8 master-name

6.4.9 [ fo:single-page-master-reference ]

一般的な利用法

 [fo:single-page-master-reference]は、最もシンプルな[sub-sequence-specifier]です。それは、単独の[page-master]の単独のインスタンスで構成される[sub-sequence]を記述します。それは、ページのシーケンス中の与えられたポイントである特有の[page-master]の利用を記述する為に利用され、[fo:single-page-master-reference]の親である[fo:page-sequence-master]利用中に生成されます。

領域

 [fo:single-page-master-reference]フォーマット化オブジェクトが、が、生成する直接的な領域はありません。それは[fo:page-sequence]フォーマット化オブジェクトがページを生成する事によって利用されます。

制約

 [fo:single-page-master-reference]は、[fo:simple-page-master]への参照を持ち、[fo:single-page-master-reference]上にある[master-reference]特性として同じ[master-name]を持ちます。

 ページの[sub-sequence]は、この[sub-sequence-specifier]が、この[sub-sequence-specifier]の制約(a)(b)を満たす為にマップされます。(a)そのページのサブシーケンスが単独のページで構成されている、(b)そのページが[fo:single-page-master-reference]によって参照される[fo:simple-page-master]利用中に生成される。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.27.9 master-reference

6.4.10 [ fo:repeatable-page-master-reference ]

一般的な利用法

 [fo:repeatable-page-master-reference]は、次にくる最もシンプルな[sub-sequence-specifier]です。それは、単独の[page-master]の繰り返されるインスタンスで構成される[sub-sequence]を記述します。反復番号は、結び付けられる場合もあれば、結び付けられない場合もあります。

領域

 [fo:repeatable-page-master-reference]フォーマット化オブジェクトが、が、生成する直接的な領域はありません。それはページを生成する為の[fo:page-sequence]フォーマット化オブジェクトによって利用されます。

制約

 [fo:repeatable-page-master-reference]は、[fo:simple-page-master]への参照を持ち、[fo:repeatable-page-master-reference]上にある[master-reference]特性として同じ[master-name]を持ちます。

 ページの[sub-sequence]は、この[sub-sequence-specifier]が、この[sub-sequence-specifier]の制約(a)(b)(c)を満たす為にマップされます。(a)そのページのサブシーケンスがゼロページ以上で構成されている、(b)それぞれのページが[fo:repeatable-page-master-reference]によって参照される[fo:simple-page-master]利用中に生成される。且つ(c)サブシーケンスの長さが、[maximum-repeats]の値と同等以下。

 もし、このフォーマット化オブジェクトが[fo:page-sequence]中のいくつかのフローを割り当てる[region-name]を持つ事によって参照されるべき[page-master]の子である[region-master]がない場合には、そのサブシーケンスは、長さゼロを持つように制約されます。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.27.9 master-reference
7.27.10 maximum-repeats

6.4.11 [ fo:repeatable-page-master-alternatives ]

一般的な利用法

 [fo:repeatable-page-master-alternatives]フォーマット化オブジェクトは、最も複雑な[sub-sequence-specifier]です。二者択一の[page-masters]の繰り返されるインスタンスで構成されるサブシーケンスを記述します。反復番号は、結び付けられる場合もあれば、結び付けられない場合もあります。二者択一の[page-masters]のいずれかは、二者択一の利用上の条件である評価に依存するシーケンス内のあるポイントで利用されます。二者択一を利用中に生成されるページは、[page-sequence]中の最初か最後のページであるかどうか、または、ブランクのページであるかどうかをテストする典型的な条件を含みます。条件のフルセットは、最初のページ、奇数ページと偶数ページ、ブランクのページ等々において利用される為に異なる[page-masters]を許容します。

※注記:なぜなら、その条件は、このシーケンスの開始から指定の中でテストされ、たいていのシーケンスにおける最後の二者択一は、常に正常(true)であり、[page-master]を参照するこの二者択一は、特別なレイアウトを受け取らない全てのページの為に利用されるからです。

領域

 [fo:repeatable-page-master-alternatives]フォーマット化オブジェクトが、が、生成する直接的な領域はありません。このフォーマット化オブジェクトがページを生成する為に[fo:page-sequence]によって利用されます。

制約

 [fo:repeatable-page-master-alternatives]の子は、[fo:conditional-page-master-references]です。これらの子は、二者択一を要求しません。

 この[sub-sequence-specifier]の為にマップされるページのサブシーケンスは、この[sub-sequence-specifier]の制約(a)~(e)を満たします。(a)ゼロページ以上で構成されるページのサブシーケンス、(b)各ページが、二者択一の一方の選択肢によって参照される[fo:simple-page-master]利用中に生成され、[fo:repeatable-page-master-alternatives]の子である、(c)二者択一が「true」である条件、(d)その二者択一では条件が「true」である場合全てにおいてこのシーケンス中に最初の二者択一が行われる、(e)サブシーケンスの長さが、[maximum-repeats]の値と同等以下である

コンテンツ


(conditional-page-master-reference+)

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.27.10 maximum-repeats

6.4.12 [ fo:conditional-page-master-reference ]

一般的な利用法

 [fo:conditional-page-master-reference]は、その利用が満たされるという条件の時に[page-master]を識別する為に利用されます。これは、例えば、偶数ページと奇数ページ、[page-sequence]中の最初のページやブランクのページなど異なる[page-masters]が利用される事を許容します。この慣用法は、本やリポートの章では典型的なもので最初のページが章に基づくものと異なるレイアウトを持ち、ヘッドライン、偶数ページと奇数ページの編成が同様に異なる場合があります。

領域

 [fo:conditional-page-master-reference]フォーマット化オブジェクトが、が、生成する直接的な領域はありません。ページを生成する為に[fo:page-sequence]フォーマット化オブジェクトによって利用されます。

制約

 [fo:conditional-page-master-reference]は、[fo:conditional-page-master-reference]上の[master-reference]特性として同じ[master-name]を持つ[fo:simple-page-master]への参照を持ちます。

 これらは、[page-position]、[odd-or-even]、[blank-or-not-blank]という3つの特性があり、参照される[page-master]の利用上の[sub-conditions]を記述します。[fo:conditional-page-master-reference]は「true」になるという条件においては、3つの[sub-conditions]全ては、「true」にしなければいけません。

※注記:これらの特性が展開されてもされなくてもそのプロパティは継承されず、全てのプロパティの既定値は、副条件[sub-condition]が「true」であるものと一致し、明記された値を持つプロパティから展開される特性のサブセットに限っては、それらの副条件[sub-condition]が「true」であるものと一致するものを持っていなければいけません。

 [page-position]特性と一致する副条件[sub-condition]は、もし、そのページが、[page-sequence]参照によって生成されるページのシーケンス中の明記された位置を持つ[fo:conditional-page-master-reference]利用中に生成されたものであれば、言い換えれば、最初のページ、最後のページ、最初と最後のページだけ、(最初と最後のページではない)途中のページであれば「true」となります。参照される[page-sequence]は、[fo:conditional-page-master-reference]が子孫である[fo:page-sequence-master]を参照する[fo:page-sequence]です。

 [odd-or-even]特性と一致する副条件[sub-condition]は、[odd-or-even]特性の値が「any」または、値が、[fo:conditional-page-master-reference]利用中に生成されたページのページ番号のパリティと一致する。というものです。

 つまり、[odd-or-even]特性と一致する副条件[sub-condition]が、「true」であるのは、[odd-or-even]特性の値が「any」または、値が、[fo:conditional-page-master-reference]利用中に生成されたページのページ番号のパリティと一致する場合です。

 [blank-or-not-blank]特性と一致する副条件[sub-condition]が、「true」であるのは、(1)特性の値が、「not-blank」で且つ[fo:conditional-page-master-reference]利用中に生成されたページが、[fo:flow]フォーマット化オブジェクトの子孫によって生成された領域を持つ場合、(2)特性の値が、「blank」で且つ[fo:conditional-page-master-reference]利用中に生成されたページが、そのページ上に置かれる為の[fo:flow]領域がない場合(例えば、(a)(i)「even-page」または「odd-page」の値が、「break-after」または「break-before」(ⅱ)[page-sequence]の始めか終わりである事による正確なページパリティ保持、または、[fo:flow]フォーマット化オブジェクトの子孫によって生成された領域上の特性が、このページからの子孫であった場合に満たされないかもしれない為)、または、(3)その特性の値が「any」である場合です。

※注記:「ブランクページ」とは、[blank-or-not-blank]と一致する副条件[sub-condition]の上記(2)の下で生成されたページです。これは、リーダーの為にそのページが完全なブランクとして現れるかどうかという挙動の為のものではありません。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.27.9 master-reference
7.27.14 page-position
7.27.12 odd-or-even
7.27.1 blank-or-not-blank

6.4.13 [ fo:simple-page-master ]

一般的な利用法

 [fo:simple-page-master]は、ページ生成中に利用され、そのページは、1つ以上の[region-body]の範囲から他の4つの範囲[region-before][region-after][region-start][region-end]まで細分化されます。

※注記:例えば、[fo:simple-page-master]の[writing-mode]が「lr-tb」である場合には、これらの範囲は、文書中のボディ部、ヘッダ、フッタ、左サイドバー、右サイドバーと一致します。
※注記:[simple-page-master]は、シンプルなページレイアウトの便利さを提供するであろうシステムの為に意図されています。勧告の未来バージョンでは、[fo:page-master]利用中におけるもっと複雑なページレイアウト構築をサポートするかもしれません。
領域

 [fo:simple-page-master]フォーマット化オブジェクトが、が、生成する直接的な領域はありません。[fo:page-sequence]によるページ生成において利用されます。

 [fo:simple-page-master]が、ページ生成の為に利用される際には、[page-viewport-area]と[page-reference-area]で構成される[viewport]と[reference]のペアが生成されます。[page-viewport-area]は、中間出力の物理的な結びつきを表現します。[page-reference-area]は、コンテンツが現れる事が意図された上でページ上の一部を表現します。それが領域内側のページマージンです。

 追記すると、[fo:simple-page-master]が、ページ生成の為に利用される際には、[fo:simple-page-master]の子である領域と一致する[viewport]と[reference]のペアも生成されるという事です。(これらの領域における詳細については、次の5つのフォーマット化オブジェクト仕様の範囲を参照『6.4.14 fo:region-body』『6.4.15 fo:region-before』『6.4.16 fo:region-after』『6.4.17 fo:region-start』『6.4.18 fo:region-end』。)ページの[writing-mode]は、マスタ上のこれら5つの配置を決定する為に利用されます。

※説明図は対象ドキュメントW3C『Region-viewport-areas』図参照

 外側の4つの領域とそれぞれの[fo:region-body]の間にスペースを入れるには、[fo:region-body]上の「margin-x」プロパティからそれぞれの外側の領域ごとに適切な範囲の特性を取り除く事によって決められます。

特性展開

 [page-viewport-area]における[page-reference-area]と[writing-mode]の[reference-orientation]は、領域を生成するフォーマット化オブジェクトによって決められます(『6.4.5 fo:page-sequence』参照)。[page-reference-area]の[writing-mode]は、[page-viewport-area]の[writing-mode]であるものとして同じ値がセットされます。「Reference-orientation」方向参照上?参照適応上?は、[page-viewport-area]と、その[reference-orientation]が「0」にセットされるという作用はありません。[Borders]と[padding]は、[page-reference-area]を伴うものは許容されません。[page-reference-area]上の特性がそのままである場合には、特性の値を決める為の通常ルールによってセットされます。

制約

 ページ生成において利用される[page-master]、[page-viewport-area]の内容矩形[content-rectangle]の[block-progression-dimension]と[inline-progression-dimension]は、「page-height」「page-width」という値を算出に利用している間に決められます。紙媒体においては、「page-height」と「page-width」プロパティの算出された値は、「page-height」は、「top」から「bottom」までといった紙の方向を決めます。ディスプレイにおいては、表示窓が、常に垂直である為、表示画面の「top」が、まさに「top」になります。

 「margin-top」「margin-bottom」「margin-left」「margin-right」プロパティから派生する特性は、[page-viewport-area]の内容矩形[content-rectangle]のエッジとの一致から、内容矩形[content-rectangle]である[page-reference-area]をインデントする為に利用されます。

※注記:内容矩形[content-rectangle]である[page-reference-area]における参照ポイントは、「before-edge」「after-edge」「start-edge」「end-edge」の為というよりは、それ以上に「top」「bottom」「left」「right」の為にあります。なぜなら、ユーザーは、その方向との位置関係で媒体を見るのであって、現在利用している[writing-mode]との位置関係で媒体を見ているわけではない為です。

※説明図は対象ドキュメントW3C(同セクションのマージンに関する2つめの図)参照

 [fo:page-sequence]によって返された最初のページ上の[folio-number]特性の値は、[initial-page-number]特性の値と等しいと制約されています。次ページにおける[folio-number]特性の値は、直前のページの値よりも大きいと制約されています。

 「letter-value」「grouping-separator」「grouping-size」「country」「language」特性のフォーマットは、”XSLT”に明記されているように一連の形式にある番号をフォーマットする為に利用されます。このフォーマットされた番号は、[fo:page-number]フローオブジェクトによって利用されます。

領域への適用上の制約

 これら(説明図:対象ドキュメントW3C(同セクションのConstraints applicable to regions:にある図)参照)は、与えられる[fo:simple-page-master]内部に明記されている全ての領域に提供される制約の数値です。

 もし、[region-reference-area]に正確にスタックされる[block-progression-dimension]が、[region-viewport-area]の[block-progression-dimension]より大きく、それが親領域である場合には、[region-master]とフローの種類における[overflow]特性の値に依存する[region-viewport-area]と[region-reference-area]との間にある関係においての制約は、その領域に課されます。

 もし、一致する領域に割り当てられるフローが全て[fo:static-content]フォーマット化オブジェクトであれば、それらには、[region-reference-area]の[block-progression-dimension]上の制約はありません。

 もし、一致する領域に割り当てられるフローが全て[fo:flow]フォーマット化オブジェクトであれば、

コンテンツ


(region-body+,region-before?,region-after?,region-start?,region-end?)

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.11 Common Margin Properties-Block
7.27.8 master-name
7.27.13 page-height
7.27.15 page-width
7.21.3 reference-orientation
7.29.7 writing-mode

6.4.14 [ fo:region-body ]

一般的な利用法

 [simple-page-master]構築における利用:[viewport]と[reference]のペアを記述した領域は、[fo:simple-page-master]の「center」に配置されます。[region-reference-area]に基づくものがどのくらいあるかを操作する[overflow]特性は、「visible」であり、それは、その親[region-viewport-area]によってクリップされる[region-reference-area]かどうかによります。

※注記:通常、ページ媒体において厳密なフローマップがない場合、その領域は、[fo:flow]フォーマット化オブジェクトが[region-body]と一致する[region-reference-areas]のシーケンスの子孫になるように作られる[fo:page-sequence]中にあります。これらの[region-reference-areas]は、[fo:region-body]に含まれる[page-master]における[page-areas]の全ての子孫領域です。もし、[fo:flow]フローが、他の領域に割り当てられる場合には、その領域は、[fo:flow]が、[region-master]を割り当て中に生成される[region-reference-areas]の子孫になると制約されます。
※注記:ボディ領域は、サイズが決められるべきであり、[fo:simple-page-master]内に配置されるべきであるので、これらが[fo:region-body]の為に割り当てられ、一端の領域を要求する為のフローによって返される領域の部屋であり、それは、[fo:region-before][fo:region-after][fo:region-start][fo:region-end]が同一ページ上に配置されるという事です。これらの一端の領域は、[page-reference-area]の内容矩形[content-rectangle]内部に配置されます。[fo:region-body]のマージンは、[fo:region-body]における[region-viewport-area]の位置付けの為に利用され、[fo:region-body]の周囲にある領域の為のスペースを確保しておきます。

※説明図は対象ドキュメントW3C(同セクションの『Common Usage:』の図)参照

 (参照図の)4つの範囲の最後と[fo:region-body]との間のスペースは、[fo:region-body]上の「margin-x」プロパティと一致する特性から一端の範囲上にある関係する[extent]特性を取り除く事によって決められます。

 [fo:region-body]は、多数の列を提供する為に利用される事もあります。その[column-count]特性は、他方より大きい時、[region-body]は、多数の列の中で細分化されるでしょう。

領域

 [fo:region-body]フォーマット化オブジェクトは、1つの[region-viewport-area]と1つの[region-reference-area]を生成する為に利用され、常にページ生成の為に利用される子としての[fo:region-body]を持つ[fo:simple-page-master]です。もし、[overflow]特性が「scroll」であれば、慣習的な方法としてスクロールのメカニズムが提供されるでしょう。

 [region-viewport-area]の位置とサイズは、[fo:simple-page-master]によって生成される[page-reference-area]の[content-rectangle]に関連すると明記されています。その[region-viewport-area]の[content-rectangle]は、「margin-top」「margin-bottom」「margin-left」「margin-right」プロパティの値によって[page-reference-area]の[content-rectangle]からインデントされます。「padding」と「border-width」特性の値は、「0」にしなければいけません。

 [fo:region-body]利用中に生成される[region-reference-area]は、[region-viewport-area]の子です。[fo:region-body]の[writing-mode]は、領域内の[column-progression]に定義します。[inline-progression-direction]は、列のスタッキングディレクションを決める為(と、列から列までのテキストの既定のフロー指定)に利用されます。

 [viewport]と[reference]のペアについて追記すると、[region-body]は、領域生成の為に利用され、少なくとも1つから3つまでの[reference-areas]が追加で生成されます。これらの[reference-areas]は、付加的な[before-float-reference-area]であり、[main-reference-area]です。スペースの後にある左のスペースを含む[reference-area]の後ろには、他の2つの[reference-areas]の為に借りられます。「padding」、「border」や「space」がない[main-reference-area]は、それらと共に割り当てられます。

※注記:もし、[region-reference-area]の子である[before-float-reference-area]や[footnote-reference-area]がない場合には、[main-reference-area]の[content-rectangle]は、[region-reference-area]の[content-rectangle]と境界線を共有します(重なり合います)。

 [main-reference-area]は、[span-reference-areas]のシーケンスを子として持っています。これらは、[block-areas]の参照領域であり、ゼロの「border」と「padding」を持ち、それらの[inline-progression-dimension]は、[main-reference-area]と等価で、通常、[main-reference-area]内でスタックされます。

 各[span-reference-area]は、1つ以上の子[reference-area]を持ち、[normal-flow-reference-areas]として指示されます。[span-reference-area]の子の番号と配置は、[span-reference-area]の「column-count」特性に依存します。一方、フォーマットする方は、これらの[span-reference-areas]を十分正確に生成しなければならず、それゆえにそれらの「column-count」特性をセットし、その[block-areas]は、「column-count」が「1」である[span-reference-areas]の子である「all」というスパンを持つフローから返され、「none」というスパンを持つフローから返される[block-areas]は、[region-reference-area]を結びつける「column-count」プロパティの値を洗練化したのと等価の「column-count」を持つ[span-reference-areas]の子です。

 [span-reference-area]ごとに、子[normal-flow-reference-area]の番号Nは、「column-count」特性の値と等価です。

 もし、「overflow」プロパティが「scroll」という値を持つ場合、1つ以上の「column-count」を記述する事はエラーとなります。もし、「1」が明記されていた場合には、手段として背後で復旧される場合もあり得ます。

 これらの[normal-flow-reference-areas]のそれぞれの[inline-progression-dimension]は、[main-reference-area]の[inline-progression-dimension]から「column-gap」特性をN-1回取り除く事によって決められ、Nによる結果を再分割します。[span-reference-area]の[inline-progression-dimension]の名称における「body-in-size」と[inline-progression-direction]内の[normal-flow-reference-areas]のサイズ名称である「column-in-size」の利用、手法は:


column-in-size = (body-in-size - (N - 1)*column-gap)/N

であり、[normal-flow-reference-areas]の[block-progression-dimension]は、親[span-reference-area]と同等となります。

※上記の注記として、[span-reference-area]の[block-progression-dimension]は、もし、[before-float-reference-area]や[footnote-reference-area]が親であるか、または、もし、[main-reference-area]の子である1つの[span-reference-area]以上である場合には、[region-reference-area]のサイズよりも小さくなります。

 [normal-flow-reference-areas]は、次のように[span-reference-area]に配置されます。最初の列は、[span-reference-area]の[content-rectangle]の[before-edge]と[start-edge]と一致する[content-rectangle]の[before-edge]と[start-edge]と共に配置されます。[span-reference-area]のJ番目の子[normal-flow-reference-area]の[content-rectangle]は、[span-reference-area]の[content-rectangle]の[before-edge]と一致する[before-edge]で配置され、[inline-progression-direction]に((J-1)*(column-in-size + column-gap))にある[start-edge]である[start-edge]を持ちます。N番目の[normal-flow-reference-area]の[content-rectangle]の[end-edge]にあるこの結果は、[span-reference-area]の[content-rectangle]の[end-edge]と一致します。

※注記:もし、[writing-mode]が、「rl-tb」であれば、その上での説明は、列が[right-to-left]を想定して指示される事を意味します。これは、「rl-tb」である[writing-mode]上で[start-edge]が右上にある為です。

 全ての領域は、領域クラス「xsl-absolute」で構成される[fo:region-body]を利用する事によって生成されます。

特性展開

 [region-viewport-area]における[reference-orientation]と[writing-mode]の[reference-orientation]は、領域を生成するフォーマット化オブジェクトによって決められます(『6.4.5 fo:page-sequence』参照)。[region-reference-area]の[reference-orientation]は、「0」にセットされ、それゆえに、[region-viewport-area]によって設定された方向と同じになります。[region-reference-area]の[writing-mode]は、[region-viewport-area]の値であるものとして同じ値がセットされます。

 [region-viewport-area]と[region-reference-area]上にある残っている特性は、特性の値を決める通常ルールによってセットされます。

 [span-reference-areas]と[normal-flow-reference-areas]上にある特性は、『5 プロパティ洗練化/解決 Property Refinement / Resolution』に記述されているように同じような方法で決定されます。

制約

 制約は、全ての範囲(『6.4.13 fo:simple-page-master』参照)とその全ての利用に適用します。

 [region-viewport-area]の[inline-progression-dimension]は、[region-master]の「start-indent」と「end-indent」特性の値を引いた[page-reference-area]の[content-rectangle]の[inline-progression-dimension]によって決められます。[region-viewport-area]の[content-rectangle]の「start-indent」と「end-indent」は、[page-master]上の[reference-orientation]特性によって決められます。

 [region-viewport-area]の[block-progression-dimension]は、[region-master]の「space-before」と「space-after」特性の値を引いた[page-reference-area]における[content-rectangle]の[block-progression-dimension]によって決められます。[region-viewport-area]の[content-rectangle]の「before-edge」と「after-edge」は、[page-master]上の[reference-orientation]特性によって決められます。

 「space-before」と「space-after」特性の値は、[page-reference-area]の[content-rectangle]の「before-edge」と「after-edge」に関連する[region-viewport-area]を配置する為に利用されます。

 [fo:region-body]利用中に生成される[region-reference-area]のサイズと位置における制約は、『6.4.13 fo:simple-page-master』のセクション『領域に適用される制約-Constraints applicable to regions』で補足されています。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.8 Common Border, Padding, and Background Properties
7.11 Common Margin Properties-Block
7.21.1 clip
7.27.2 column-count
7.27.3 column-gap
7.14.4 display-align
7.21.2 overflow
7.27.17 region-name
7.21.3 reference-orientation
7.29.7 writing-mode

6.4.15 [ fo:region-before ]

一般的な利用法

 [simple-page-master]構築における利用:[viewport]と[reference]のペアを記述した領域は、[page-reference-area]の「before」側に配置されます。[writing-mode]が「lr-tb」である場合においては、この領域は、ヘッダ領域と一致します。[region-reference-area]に基づくものがどのくらいあるかを操作する[overflow]特性は、「visible」であり、それは、その親[region-viewport-area]によってクリップされる[region-reference-area]かどうかによります。

領域

 [fo:region-before]フォーマット化オブジェクトは、1つの[region-viewport-area]と1つの[region-reference-area]を生成する為に利用されます。

 「padding」と「border-width」特性の値は、「0」にしなければいけません。

 この[region-viewport-area]の[content-rectangle]の「before-edge」は、親[fo:simple-page-master]を利用中に生成される[page-reference-area]の[content-rectangle]の「before-edge」と一致するように配置されます。[region-viewport-area]の[ block-progression-dimension]は、[fo:region-before]フォーマット化オブジェクト上の[extent]特性によって決められます。

 [region-viewport-area]の[inline-progression-dimension]は、[fo:region-before]上の先行する特性によって決められます。もし、先行する特性が「true」という値であれば、[inline-progression-dimension]は、[page-reference-area]の[content-rectangle]における「start-edge」と「end-edge」になるまで展開されます。このケースでは、[region-viewport-area]の[region-before]は、「region-start」と「region-end」によって生成される領域に[float]のように動作します。もし、[fo:region-before]において先行する特性の値が「false」であれば、[fo:region-before]と[fo:region-before]の範囲によって生成される領域において隣り合うこれらの[float]領域は、(効果的に)隣り合う領域の侵食によって縮小されます。

 [region-reference-area]は、[region-viewport-area]の底面をキャンバス上に横たわらせます(lies on a canvas underneath the region-viewport-area)。

 [region-reference-area]のサイズは、領域上の[overflow]特性の設定に依存します。もし、その特性が「auto」「hidden」「error-if-overflow」「paginate」や「visible」であれば、[reference-area]のサイズは、[viewport]のサイズと等しくなります。[overflow]特性の値が「scroll」であれば、[reference-area]のサイズは、領域における[writing-mode]にある[inline-progression-direction]内の[viewport]のサイズと等しくなり、(コンテンツが領域に結び付けられる全ての配分方法を保持する為に拡張する事を意味する)[block-progression-direction]における制約はありません。

特性展開

 [region-viewport-area]における[reference-orientation]と[writing-mode]は、領域を生成するフォーマット化オブジェクトによってセットされます(『6.4.5 fo:page-sequence』参照)。[region-reference-area]の[reference-orientation]は、「0」としてセットされ、それゆえに、[region-viewport-area]によって設定された方向と同じになります。[region-reference-area]の[writing-mode]は、[region-viewport-area]の値であるものとして同じ値がセットされます。

 [region-viewport-area]と[region-reference-area]上の残っている特性は、特性の値を決める通常ルールによってセットされます。

制約

 [fo:region-before]利用中に生成される[region-reference-area]のサイズと配置における制約は、『6.4.13 fo:simple-page-master』の『領域に適用される制約-Constraints applicable to regions』に補足されています。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.8 Common Border, Padding, and Background Properties
7.21.1 clip
7.14.4 display-align
7.27.4 extent
7.21.2 overflow
7.27.16 precedence
7.27.17 region-name
7.21.3 reference-orientation
7.29.7 writing-mode

6.4.16 [ fo:region-after ]

一般的な利用法

 [simple-page-master]構築における利用:[viewport]と[reference]のペアを記述した領域は、[page-reference-area]の「after」側に配置されます。[writing-mode]が「lr-tb」である場合においては、この領域は、フッタ領域と一致します。[region-reference-area]に基づくものがどのくらいあるかを操作する[overflow]特性は、「visible」であり、それは、その親[region-viewport-area]によってクリップされる[region-reference-area]かどうかによります。

領域

 [fo:region-after]フォーマット化オブジェクトは、1つの[region-viewport-area]と1つの[region-reference-area]を生成する為に利用されます。

 「padding」と「border-width」特性の値は、「0」にしなければいけません。

 この[region-viewport-area]の[content-rectangle]の「after-edge」は、親[fo:simple-page-master]を利用中に生成される[page-reference-area]の[content-rectangle]の「after-edge」と一致するように配置されます。[region-viewport-area]の[ block-progression-dimension]は、[fo:region-after]フォーマット化オブジェクト上の[extent]特性によって決められます。

 [region-viewport-area]の[inline-progression-dimension]は、[fo:region-after]上の先行する特性によって決められます。もし、先行する特性が「true」という値であれば、[inline-progression-dimension]は、[page-reference-area]の[content-rectangle]における「start-edge」と「end-edge」になるまで展開されます。このケースでは、[region-viewport-area]の[region-after]は、「region-start」と「region-end」によって生成される領域に[float]のように動作します。もし、[fo:region-after]において先行する特性の値が「false」であれば、[fo:region-after]と[fo:region-after]の範囲によって生成される領域において隣り合うこれらの[float]領域は、(効果的に)隣り合う領域の侵食によって縮小されます。

 [region-reference-area]は、[region-viewport-area]の底面をキャンバス上に横たわらせます(lies on a canvas underneath the region-viewport-area)。

 [region-reference-area]のサイズは、領域上の[overflow]特性の設定に依存します。もし、その特性が「auto」「hidden」「error-if-overflow」「paginate」や「visible」であれば、[reference-area]のサイズは、[viewport]のサイズと等しくなります。[overflow]特性の値が「scroll」であれば、[reference-area]のサイズは、領域における[writing-mode]にある[inline-progression-direction]内の[viewport]のサイズと等しくなり、(コンテンツが領域に結び付けられる全ての配分方法を保持する為に拡張する事を意味する)[block-progression-direction]における制約はありません。

特性展開

 [region-viewport-area]における[reference-orientation]と[writing-mode]は、領域を生成するフォーマット化オブジェクトによってセットされます(『6.4.5 fo:page-sequence』参照)。[region-reference-area]の[reference-orientation]は、「0」としてセットされ、それゆえに、[region-viewport-area]によって設定された方向と同じになります。[region-reference-area]の[writing-mode]は、[region-viewport-area]の値であるものとして同じ値がセットされます。

 [region-viewport-area]と[region-reference-area]上の残っている特性は、特性の値を決める通常ルールによってセットされます。

制約

 [fo:region-after]利用中に生成される[region-reference-area]のサイズと配置における制約は、『6.4.13 fo:simple-page-master』の『領域に適用される制約-Constraints applicable to regions』に補足されています。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.8 Common Border, Padding, and Background Properties
7.21.1 clip
7.14.4 display-align
7.27.4 extent
7.21.2 overflow
7.27.16 precedence
7.27.17 region-name
7.21.3 reference-orientation
7.29.7 writing-mode

6.4.17 [ fo:region-start ]

一般的な利用法

 [simple-page-master]構築における利用:[viewport]と[reference]のペアを記述した領域は、[page-reference-area]の「start」側に配置されます。[writing-mode]が「lr-tb」である場合においては、この領域は、左サイドバー領域と一致します。[region-reference-area]に基づくものがどのくらいあるかを操作する[overflow]特性は、「visible」であり、それは、その親[region-viewport-area]によってクリップされる[region-reference-area]かどうかによります。

領域

 [fo:region-start]フォーマット化オブジェクトは、1つの[region-viewport-area]と1つの[region-reference-area]を生成する為に利用されます。

 「padding」と「border-width」特性の値は、「0」にしなければいけません。

 この[region-viewport-area]の[content-rectangle]の「start-edge」は、親[fo:simple-page-master]を利用中に生成される[page-reference-area]の[content-rectangle]の「start-edge」と一致するように配置されます。[region-viewport-area]の[ inline-progression-dimension]は、[fo:region-start]フォーマット化オブジェクト上の[extent]特性によって決められます。

 [region-viewport-area]の[block-progression-dimension]は、隣り合う[fo:region-before]と[fo:region-after]上の先行する特性が存在する場合は、先行する特性によって決められ、他方で、この場合には、先行する特性が仮に「false」であったものとして決められます。もし、[fo:region-before](または、各々の[fo:region-after])の先行する特性が「false」という値であれば、[block-progression-dimension]は、[page-reference-area]の[content-rectangle]における「before-edge」(または、各々の「after-edge」)になるまで展開されます。このケースでは、[region-viewport-area]の[region-start]は、「region-before」(または各々の「region-after」)によって生成される領域に[float]のように動作します。もし、隣り合う領域の先行する特性の値が「true」であれば、[fo:region-start]と[fo:region-start]の範囲によって生成される領域において隣り合うこれらの[float]領域は、(効果的に)先行する特性の値が「true」と等しいものとして隣り合う領域の侵食によって縮小されます。

 [region-reference-area]は、[region-viewport-area]の底面をキャンバス上に横たわらせます(lies on a canvas underneath the region-viewport-area)。

 [region-reference-area]のサイズは、領域上の[overflow]特性の設定に依存します。もし、その特性が「auto」「hidden」「error-if-overflow」「paginate」や「visible」であれば、[reference-area]のサイズは、[viewport]のサイズと等しくなります。[overflow]特性の値が「scroll」であれば、[reference-area]のサイズは、領域における[writing-mode]にある[inline-progression-direction]内の[viewport]のサイズと等しくなり、(コンテンツが領域に結び付けられる全ての配分方法を保持する為に拡張する事を意味する)[block-progression-direction]における制約はありません。

特性展開

 [region-viewport-area]における[reference-orientation]と[writing-mode]は、領域を生成するフォーマット化オブジェクトによってセットされます(『6.4.5 fo:page-sequence』参照)。[region-reference-area]の[reference-orientation]は、「0」としてセットされ、それゆえに、[region-viewport-area]によって設定された方向と同じになります。[region-reference-area]の[writing-mode]は、[region-viewport-area]の値であるものとして同じ値がセットされます。

 [region-viewport-area]と[region-reference-area]上の残っている特性は、特性の値を決める通常ルールによってセットされます。

制約

 [fo:region-start]利用中に生成される[region-reference-area]のサイズと配置における制約は、『6.4.13 fo:simple-page-master』の『領域に適用される制約-Constraints applicable to regions』に補足されています。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.8 Common Border, Padding, and Background Properties
7.21.1 clip
7.14.4 display-align
7.27.4 extent
7.21.2 overflow
7.27.17 region-name
7.21.3 reference-orientation
7.29.7 writing-mode

6.4.18 [ fo:region-end ]

一般的な利用法

 [simple-page-master]構築における利用:[viewport]と[reference]のペアを記述した領域は、[page-reference-area]の「end」側に配置されます。[writing-mode]が「lr-tb」である場合においては、この領域は、右サイドバー領域と一致します。[region-reference-area]に基づくものがどのくらいあるかを操作する[overflow]特性は、「visible」であり、それは、その親[region-viewport-area]によってクリップされる[region-reference-area]かどうかによります。

領域

 [fo:region-end]フォーマット化オブジェクトは、1つの[region-viewport-area]と1つの[region-reference-area]を生成する為に利用されます。

 「padding」と「border-width」特性の値は、「0」にしなければいけません。

 この[region-viewport-area]の[content-rectangle]の「end-edge」は、親[fo:simple-page-master]を利用中に生成される[page-reference-area]の[content-rectangle]の「end-edge」と一致するように配置されます。[region-viewport-area]の[inline-progression-dimension]は、[fo:region-end]フォーマット化オブジェクト上の[extent]特性によって決められます。

 [region-viewport-area]の[block-progression-dimension]は、隣り合う[fo:region-before]と[fo:region-after]上の先行する特性が存在する場合は、先行する特性によって決められ、他方で、この場合には、先行する特性が仮に「false」であったものとして決められます。もし、[fo:region-before](または、各々の[fo:region-after])の先行する特性が「false」という値であれば、[block-progression-dimension]は、[page-reference-area]の[content-rectangle]における「before-edge」(または、各々の「after-edge」)になるまで展開されます。このケースでは、[region-viewport-area]の[region-end]は、「region-before」(または各々の「region-after」)によって生成される領域に[float]のように動作します。もし、隣り合う領域の先行する特性の値が「true」であれば、[fo:region-end]と[fo:region-end]の範囲によって生成される領域において隣り合うこれらの[float]領域は、(効果的に)先行する特性の値が「true」と等しいものとして隣り合う領域の侵食によって縮小されます。

 [region-reference-area]は、[region-viewport-area]の底面をキャンバス上に横たわらせます(lies on a canvas underneath the region-viewport-area)。

 [region-reference-area]のサイズは、領域上の[overflow]特性の設定に依存します。もし、その特性が「auto」「hidden」「error-if-overflow」「paginate」や「visible」であれば、[reference-area]のサイズは、[viewport]のサイズと等しくなります。[overflow]特性の値が「scroll」であれば、[reference-area]のサイズは、領域における[writing-mode]にある[inline-progression-direction]内の[viewport]のサイズと等しくなり、(コンテンツが領域に結び付けられる全ての配分方法を保持する為に拡張する事を意味する)[block-progression-direction]における制約はありません。

特性展開

 [region-viewport-area]における[reference-orientation]と[writing-mode]は、領域を生成するフォーマット化オブジェクトによってセットされます(『6.4.5 fo:page-sequence』参照)。[region-reference-area]の[reference-orientation]は、「0」としてセットされ、それゆえに、[region-viewport-area]によって設定された方向と同じになります。[region-reference-area]の[writing-mode]は、[region-viewport-area]の値であるものとして同じ値がセットされます。

 [region-viewport-area]と[region-reference-area]上の残っている特性は、特性の値を決める通常ルールによってセットされます。

制約

 [fo:region-end]利用中に生成される[region-reference-area]のサイズと配置における制約は、『6.4.13 fo:simple-page-master』の『領域に適用される制約-Constraints applicable to regions』に補足されています。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.8 Common Border, Padding, and Background Properties
7.21.1 clip
7.14.4 display-align
7.27.4 extent
7.21.2 overflow
7.27.17 region-name
7.21.3 reference-orientation
7.29.7 writing-mode

6.4.19 [ fo:flow ]

一般的な利用法

 [fo:flow]フォーマット化オブジェクトのコンテンツは、ページに割り当てられた次にくるテキストコンテンツを提供するフローオブジェクトのシーケンスです。

領域

 [fo:flow]フォーマット化オブジェクトは、いかなる領域も生成しません。[fo:flow]フォーマット化オブジェクトは、[fo:flow]の子それぞれによって返される領域のシーケンスを連結する事によって作られる領域のシーケンスを返します。連結の指定は、[fo:flow]の下に指定される子として同じ指定がされます。

制約

 [flow-map]は、領域における[fo:flow-map]のコンテンツの割り当てによって決まります。

コンテンツ


(%block;)+

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.27.5 flow-name

6.4.20 [ fo:static-content ]

一般的な利用法

 [fo:static-content]フォーマット化オブジェクトは、[page-sequence]上にある1ページ以上の似たような名称の領域で単独の領域または、繰り返される領域に表示される為のフォーマット化オブジェクトのシーケンスやツリーを保持します。その一般的な利用方法は、反復やヘッダとフッタの走査です。

 このコンテンツは反復され、そっくりそのまま割り当てられた各ページ上に置かれます。

領域

 [fo:static-content]フォーマット化オブジェクトは、いかなる領域も生成しません。[fo:static-content]フォーマット化オブジェクトは、[fo:static-content]の子それぞれによって返される領域のシーケンスを連結する事によって作られる領域のシーケンスを返します。連結の指定は、[fo:static-content]の下に指定される子として同じ指定がされます。

制約

 [fo:static-content]は、領域における[fo:static-content]のコンテンツの割り当てによって決まります。

 [fo:static-content]は、複数回のプロセスになる場合があり、このように『4.7.1 一般的な指示制約-General Ordering Constraints』セクションの既定指示制約は、[fo:static-content]を提供しません。代わりに基になるページごとに制約を満たさなければいけません。具体的に言うと、仮にPが[page-reference-area]で、Cが領域クラスで、Sが[fo:static-content]の子孫に返す領域クラスCのPの子孫全てのセットであれば、Sは、厳密に指定されなければいけません。

コンテンツ


(%block;)+

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.27.5 flow-name

6.4.21 [ fo:title ]

一般的な利用法

 [fo:title]フォーマット化オブジェクトは、与えられる[page-sequence]を持つタイトルを割り当てる為に利用されます。このタイトルは、ページを識別する為のインタラクティブ(対話的)なUser Agentによって利用される場合があります。例えば、[fo:title]のコンテンツは、フォーマットされ、[title]窓や[tool tip]に表示される事が可能になります。

領域

 このフォーマット化オブジェクトは、このフォーマット化オブジェクトの子によって返される領域のシーケンスを返します。

制約

 返される領域のシーケンスは、子の出現指示における[fo:title]フォーマット化オブジェクトのそれぞれの子フローによって返される領域のサブシーケンスを結合しなければいけません。

コンテンツ


(#PCDATA|%inline;)*

 [fo:title]は、子孫として[fo:float]や[fo:footnote ]、[fo:marker]を持つ事を許容されません。

 追記すると、[fo:title]は、絶対配置された領域を生成する[fo:block-container]を子孫として持つ事を許容されません。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.9 Common Font Properties
7.12 Common Margin Properties-Inline
7.18.1 color
7.16.4 line-height
7.30.17 visibility

6.4.22 [ fo:flow-map ]

一般的な利用法

 [fo:flow-map]は、領域へのフローの割り当てを記述する為に利用されます。

領域

 [fo:flow-map]フォーマット化オブジェクトが、が、生成する直接的な領域はありません。それは、領域へのフロー割り当ての為の[fo:page-sequence]フォーマット化オブジェクトによって利用されます。

 [fo:flow-map]の子である各[fo:flow-assignment]は、ソースリストとターゲットリストを定義します。ソースリストは、構成目的の為に単独の[fo:flow]として扱われる([fo:page-sequence]参照内の)[fo:flow]と一致するフロー名のシーケンスです。ターゲットリストは、ソースコンテンツにおいて利用されるそれぞれのページ上にある範囲や領域を識別する[region-names]のシーケンスです。

※注記:これは、ページの事実上のシーケンスの独立であり、それは、[fo:page-sequence]の[master-reference]プロパティによって参照される[fo:simple-page-master]と[:page-sequence-master]オブジェクトを利用中に常に生成されるものとして生成されます。

 [fo:flow-map]の子であるそれぞれの[fo:flow-assignment]は、子[fo:flow-source-list]Sと子[fo:flow-target-list]Tを持っていて、Tの子である[fo:region-name-specifier]によって参照された範囲にあるSの子である[fo:flow-name-specifier]によって参照されたそれぞれのフローを我々は、[fo:flow-map]が「割り当てる」と言っています。

制約

 [flow-map]誘導制約の多くは、『6.4.5 fo:page-sequence』に表記されています。

 [fo:flow-map]の子は、領域に割り当てられた並列制約を含む[fo:flow-assignment]オブジェクトです。与えられる[fo:flow-map]の子である[fo:flow-assignment]以上の数の[flow-name]がソースリスト上に存在する事はエラーとなります。与えられる[fo:flow-map]の子である[fo:flow-assignment]以上の数の[region-name]がターゲットリスト上に存在する事はエラーとなります。

厳密な[flow-map]


<fo:flow-map>
  <fo:flow-assignment>
    <fo:flow-source-list>
      <fo:flow-name-specifier
        flow-name-reference="xsl-region-body"/>
    </fo:flow-source-list>
    <fo:flow-target-list>
      <fo:region-name-specifier
        region-name-reference="xsl-region-body"/>
    </fo:flow-target-list>
  </fo:flow-assignment>
  <fo:flow-assignment>
    <fo:flow-source-list>
      <fo:flow-name-specifier
        flow-name-reference="xsl-region-before"/>
    </fo:flow-source-list>
    <fo:flow-target-list>
      <fo:region-name-specifier
        region-name-reference="xsl-region-before"/>
    </fo:flow-target-list>
  </fo:flow-assignment>
  <fo:flow-assignment>
    <fo:flow-source-list>
      <fo:flow-name-specifier
        flow-name-reference="xsl-region-after"/>
    </fo:flow-source-list>
    <fo:flow-target-list>
      <fo:region-name-specifier
        region-name-reference="xsl-region-after"/>
    </fo:flow-target-list>
  </fo:flow-assignment>
  <fo:flow-assignment>
    <fo:flow-source-list>
      <fo:flow-name-specifier
        flow-name-reference="xsl-region-start"/>
    </fo:flow-source-list>
    <fo:flow-target-list>
      <fo:region-name-specifier
        region-name-reference="xsl-region-start"/>
    </fo:flow-target-list>
  </fo:flow-assignment>
  <fo:flow-assignment>
    <fo:flow-source-list>
      <fo:flow-name-specifier
        flow-name-reference="xsl-region-end"/>
    </fo:flow-source-list>
    <fo:flow-target-list>
      <fo:region-name-specifier
        region-name-reference="xsl-region-end"/>
     </fo:flow-target-list>
  </fo:flow-assignment>
</fo:flow-map>

コンテンツ


(flow-assignment+)

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.27.18 flow-map-name

6.4.23 [ fo:flow-assignment ]

一般的な利用法

 [fo:flow-assignment]は、範囲のシーケンスにおけるフローのシーケンス割り当てを記述する為に利用されます。

領域

 [fo:flow-assignment]フォーマット化オブジェクトが、が、生成する直接的な領域はありません。それは、範囲にフローを割り当てる為の[fo:page-sequence]フォーマット化オブジェクトによって利用されます。

制約

 [fo:flow-assignment]の子は、範囲のシーケンスにおけるフローのシーケンスの割り当ての為の制約を含む[source-list]と[target-list]です。

コンテンツ


(flow-source-list,flow-target-list)

6.4.24 [ fo:flow-source-list ]

一般的な利用法

 [fo:flow-source-list]は、固有の[fo:flow-assignment]に割り当てる為のフローのシーケンスを記述する為に利用されます。

領域

 [fo:flow-source-list]フォーマット化オブジェクトが、が、生成する直接的な領域はありません。それは、範囲にフローを割り当てる為の[fo:page-sequence]フォーマット化オブジェクトによって利用されます。

制約

 [fo:flow-source-list]の子は、シーケンスにおけるフローの識別子[flow-name-specifiers]のシーケンスです。これらのフローは、全て[fo:flow]フォーマット化オブジェクトであるか、または、全て[fo:static-content]フォーマット化オブジェクトのいずれかでなければいけません。この2つが混合している場合にはエラーとなります。

コンテンツ


(flow-name-specifier+)

6.4.25 [ fo:flow-name-specifier ]

一般的な利用法

 [fo:flow-name-specifier]は、[source-list]にあるフローを記述する為に利用されます。

領域

 [fo:flow-name-specifier]フォーマット化オブジェクトが、が、生成する直接的な領域はありません。それは、範囲にフローを割り当てる為の[fo:page-sequence]フォーマット化オブジェクトによって利用されます。

制約

 [flow-name-reference]プロパティは、ソースシーケンスにあるフローの名称を記述します。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.27.20 flow-name-reference

6.4.26 [ fo:flow-target-list ]

一般的な利用法

 [fo:flow-target-list]は、固有の[fo:flow-assignment]に割り当てられるフローにおける範囲のシーケンスを記述する為に利用されます。

領域

 [fo:flow-target-list]フォーマット化オブジェクトが、が、生成する直接的な領域はありません。それは、範囲にフローを割り当てる為の[fo:page-sequence]フォーマット化オブジェクトによって利用されます。

制約

 [fo:flow-target-list]の子は、シーケンスにおけるフローの識別子[region-name-specifiers]のシーケンスです。これらのフローは、全て[fo:flow]フォーマット化オブジェクトであるか、または、全て[fo:static-content]フォーマット化オブジェクトのいずれかでなければいけません。この2つが混合している場合にはエラーとなります。

コンテンツ


(region-name-specifier+)

6.4.27 [ fo:region-name-specifier ]

一般的な利用法

 [fo:region-name-specifier]は、[target-list]にある範囲を記述する為に利用されます。

領域

 [fo:region-name-specifier]フォーマット化オブジェクトが、が、生成する直接的な領域はありません。それは、範囲にフローを割り当てる為の[fo:page-sequence]フォーマット化オブジェクトによって利用されます。

制約

 [region-name-reference]プロパティは、ターゲットシーケンスにある範囲の名称を記述します。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.27.21 region-name-reference


 6.5 ブロックレベルのオブジェクト書式
  6.5.1 概論
   6.5.1.1 例・サンプル
  6.5.2 [ fo:block ]
  6.5.3 [ fo:block-container ]

6.5 ブロックレベルのオブジェクト書式

6.5.1 概論

 [fo:block]フォーマット化オブジェクトは、段落、タイトル、テーブル表題、テーブルタイトルなどによって利用されます。次の例は、スタイルシート内の[fo:block]の利用を記載したものです。

6.5.1.1 例

 次の例は、章やセクション、段落における[fo:block]の利用を示します。

入力サンプル:


<doc>
  <chapter>
    <title>Chapter title</title>
    <section>
      <title>First section title</title>
      <paragraph>Section one's first paragraph.</paragraph>
      <paragraph>Section one's second paragraph.</paragraph>
    </section>
    <section>
      <title>Second section title</title>
      <paragraph>Section two's only paragraph.</paragraph>
    </section>
  </chapter>
</doc>

 このサンプルでは、章タイトルがページのトップに現れます([space-before]は除かれます)。

 章タイトルと最初のセクションの間にあるスペースは、(8pt,8pt,8pt)であり、章タイトルの[space-after]は、(ゼロの初期値を持つ)セクションタイトルの[space-before]より先行する高さにあり、その後は、取り除かれます。

 最初のセクションタイトルとセクション1の最初の段落は、(6pt,6pt,6pt)であり、セクションタイトルの[space-after]は、その段落の[space-before]よりも先行した高さにあり、その後は、取り除かれます。

 2番目の段落との間のスペースは、(6pt,8pt,10pt)であり、最初の段落の[space-after]は、その先行が、次の段落の[space-before]と等しく、最初の段落の[space-after]の最適条件は、2番目の段落の[space-before]の最適条件よりも大きいので取り除かれます。

 最初のセクションの2番目の段落と2番目のセクションのタイトルとの間のスペースは、(12pt,12pt,12pt)であり、段落の[space-after]は、その先行が、セクションタイトルの[space-before]と等しく、段落の[space-after]の最適条件は、セクションタイトルの[space-before]の最適条件よりも小さいので取り除かれます。

 セクション1にある最初の段落とセクション2にある唯一の段落の最初のインデントは、ゼロで、セクション1の2番目の段落の最初の行にあるインデントは、2pcです。

XSLスタイルシート:


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

<xsl:template match="chapter">
  <fo:block break-before="page">
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

<xsl:template match="chapter/title">
  <fo:block text-align="center" space-after="8pt"
            space-before="16pt" space-after.precedence="3">
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

<xsl:template match="section">
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="section/title">
  <fo:block text-align="center" space-after="6pt"
            space-before="12pt" space-before.precedence="0"
            space-after.precedence="3">
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

<xsl:template match="paragraph[1]" priority="1">
  <fo:block text-indent="0pc" space-after="7pt"
            space-before.minimum="6pt" space-before.optimum="8pt"
            space-before.maximum="10pt">
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

<xsl:template match="paragraph">
  <fo:block text-indent="2pc" space-after="7pt"
            space-before.minimum="6pt" space-before.optimum="8pt"
            space-before.maximum="10pt">
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

</xsl:stylesheet>

結果インスタンス:[fo: namespace]中の要素と属性


<fo:block break-before="page">

  <fo:block text-align="center" space-after="8pt"
    space-before="16pt"
    space-after.precedence="3">Chapter title
  </fo:block>

  <fo:block text-align="center" space-after="6pt"
    space-before="12pt" space-before.precedence="0"
    space-after.precedence="3">First section title
  </fo:block>

  <fo:block text-indent="0pc" space-after="7pt"
    space-before.minimum="6pt" space-before.optimum="8pt"
    space-before.maximum="10pt">Section one's first paragraph.
  </fo:block>

  <fo:block text-indent="2pc" space-after="7pt"
    space-before.minimum="6pt" space-before.optimum="8pt"
    space-before.maximum="10pt">Section one's second paragraph.
  </fo:block>

  <fo:block text-align="center" space-after="6pt"
    space-before="12pt" space-before.precedence="0"
    space-after.precedence="3">Second section title
  </fo:block>

  <fo:block text-indent="0pc" space-after="7pt"
    space-before.minimum="6pt" space-before.optimum="8pt"
    space-before.maximum="10pt">Section two's only paragraph.
  </fo:block>

</fo:block>

6.5.2 [ fo:block ]

一般的な利用法

 [fo:block]フォーマット化オブジェクトは、一般的には、フォーマットされた段落、タイトル、ヘッドライン、(図、数字、文字)記号、テーブル表題等々の為に利用されます。

領域

 [fo:block]フォーマット化オブジェクトは、1つ以上のノーマルなブロック領域を生成します。[fo:block]は、これらの領域を返し、いくつかの[page-level-out-of-line]領域といくつかの[reference-level-out-of-line]領域は、[fo:block]の子によって返されます。[fo:block]は、さらに『 4.7.2 Line-building』に一致して通常のブロック領域の子としてのゼロ以上のライン領域を返します。

特性展開

 [half-leading]特性のコンポーネント「.minimum」「.optimum」「.maximum」は、[line-height]プロパティの算出値と[text-altitude]と[text-depth]プロパティの合計の算出値の差の1/2になるようにセットされます。その「.precedence」と「.conditionality」コンポーネントは、[line-height]プロパティからコピーされます。

※注釈:[half-leading]の利用方法については、『4.5 Line-areas』に記載されています。

制約

 領域がない場合には、同じ[fo:block]によって返される1つ以上の通常の子領域を持ちます。

 [fo:block]によって生成されたそれぞれの通常領域である子は、『 4.7.2 Line-building』に記述されている制約を満たさなければいけません。

 追記すると、[fo:block]によって課される制約は、このフォーマット化オブジェクトに適用されるプロパティが満たさなければならないものとして引き継がれます。幾何学制約は、『4 Area Model』に厳格に定義されています。

コンテンツ


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

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.9 Common Font Properties
7.10 Common Hyphenation Properties
7.11 Common Margin Properties-Block
7.13 Common Relative Position Properties
7.20.1 break-after
7.20.2 break-before
7.19.1 clear
7.18.1 color
7.29.5 text-depth
7.29.4 text-altitude
7.16.1 hyphenation-keep
7.16.2 hyphenation-ladder-count
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.19.3 intrusion-displace
7.20.3 keep-together
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.16.3 last-line-end-indent
7.16.7 linefeed-treatment
7.16.4 line-height
7.16.5 line-height-shift-adjustment
7.16.6 line-stacking-strategy
7.20.6 orphans
7.16.8 white-space-treatment
7.21.4 span
7.16.9 text-align
7.16.10 text-align-last
7.16.11 text-indent
7.30.17 visibility
7.16.12 white-space-collapse
7.20.7 widows
7.16.13 wrap-option

6.5.3 [ fo:block-container ]

一般的な利用法

 [fo:block-container]フローオブジェクトは、特に異なる[writing-mode]を持つテキストブロックを含むブロックレベルの参照領域を生成する為に利用されます。追記すると、それは、そのコンテンツの回転の為に異なる[reference-orientation]と共に利用される事もできます。

※注釈:このフローオブジェクトの利用は、[inline-progression-direction]の変更に限っては、要求されません。そのケースでは、BIDIアルゴリズムと[fo:bidi-override]で十分です。

領域

 [fo:block-container]フォーマット化オブジェクトは、1つ以上の[viewport]と[reference]のペアを生成します。全ての生成された[viewport-areas]は、[fo:block-container]の[block-progression-dimension]と[inline-progression-dimension]特性によって与えられる制約が課されます。[fo:block-container]は、これらの領域と[fo:block-container]の子によって返されるいくつかの[page-level-out-of-line]領域を返します。

※注釈:このケースでは、[block-progression-direction.maximum]は、「auto」であれば、[overflow]プロセスが提供されます。[overflow]の値である「repeat」は、「clipping」や「scrolling」ではなく、「repeat」が要求される場合、多数の[viewport]と[reference]のペアを生成する為に利用されます。

 もし、[absolute-position]特性が「auto」であれば、これらの領域全ては、[xsl-normal]の領域クラスを持っています。もし、[absolute-position]特性が「absolute」か「fixed」であれば、それらには、1つの[viewport]と[reference]のペアがあり、その領域クラスは、[xsl-absolute]か[xsl-fixed]である事が想定されます。

特性展開

 [viewport-area]の[reference-orientation]と[writing-mode]特性と参照領域は、[fo:block-container]からきます。これらは、[viewport-area]の[content-rectangle]の「start-edge」、「end-edge」、「before-edge」と「after-edge」の方向と、参照領域の[content-rectangle]の「padding-edge」と「border-edge」を決めます。その参照領域の[reference-orientation]には、「0」がセットされ、それゆえに[viewport-area]によって作られる方向と同じになります。参照領域の[inline-progression-dimension]は、[viewport-area]と同じであり、もし、[inline-progression-dimension]が、[fo:block-container]の親と異なる場合は、「auto」ではない場合もあります。参照領域の[block-progression-dimension]は、制約されません。このように参照領域は、[viewport-area]よりも大きくなる場合があり、これが[overflow]プロパティを操作する要因となる場合があります。

※注釈:このフローオブジェクトサイズによって生成される領域のそれぞれに提供されるプロパティの値は、インスタンスからインスタンスまでのその値がもし、「auto」や長さの範囲であれば、変化させる(変更する)事ができます。

制約

 [fo:block-container]フォーマット化オブジェクトによって生成されるそれぞれの参照領域の子は、[fo:block-container]の子によって返される通常のブロック領域でなければならず、かつ、正確にスタックされ、かつ、正確に指定されなければいけません。

 [fo:block-container]の子によって返される[reference-level-out-of-line]領域は、『 6.12.2 fo:float』に記載されているように操作されます。

コンテンツ


(%block;)+

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.6 Common Absolute Position Properties
7.8 Common Border, Padding, and Background Properties
7.11 Common Margin Properties-Block
7.15.3 block-progression-dimension
7.20.1 break-after
7.20.2 break-before
7.19.1 clear
7.21.1 clip
7.14.4 display-align
7.15.6 height
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.15.7 inline-progression-dimension
7.19.3 intrusion-displace
7.20.3 keep-together
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.21.2 overflow
7.21.3 reference-orientation
7.21.4 span
7.15.14 width
7.29.7 writing-mode
7.30.18 z-index


 6.6 インラインレベルのオブジェクト書式
  6.6.1 概論
   6.6.1.1 例・サンプル
    6.6.1.1.1 Small-caps中の段落の最初の行 First Line of Paragraph in [ small-caps ]
    6.6.1.1.2 Figure with a Photograph
    6.6.1.1.3 ページ番号付けとページ番号参照 Page numbering and page number reference
    6.6.1.1.4 先頭に来る内容 Table of Contents with Leaders
  6.6.2 [ fo:bidi-override ]
  6.6.3 [ fo:character ]
  6.6.4 [ fo:initial-property-set ]
  6.6.5 [ fo:external-graphic ]
  6.6.6 [ fo:instream-foreign-object ]
  6.6.7 [ fo:inline ]
  6.6.8 [ fo:inline-container ]
  6.6.9 [ fo:leader ]
  6.6.10 [ fo:page-number ]
  6.6.11 [ fo:page-number-citation ]
  6.6.12 [ fo:page-number-citation-last ]
  6.6.13 [ fo:folio-prefix ]
  6.6.14 [ fo:folio-suffix ]
  6.6.15 [ fo:scaling-value-citation ]

6.6 インラインレベルフォーマット化オブジェクト

6.6.1 概要

インラインレベルフォーマット化オブジェクトは、たいてい通常は、テキストの一部をフォーマットする為、ルールとリーダーを生成する為に利用されます。これらには、他の利用方法も数多くあります。次の例は、インラインレベルフォーマット化オブジェクトのこれらの利用方法のいくつかを説明しています。

6.6.1.1 例

6.6.1.1.1 「[small-caps]」における「段落」の「最初の」「行」

入力サンプル:


<doc>
<p>This is the text of a paragraph that is going to be presented with the first line in small-caps.</p>
</doc>

XSL Stylesheet:


<?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>
    <fo:initial-property-set font-variant="small-caps"/>
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

</xsl:stylesheet>

結果インスタンス:[fo: namespace]における要素と属性


<fo:block>
  <fo:initial-property-set font-variant="small-caps">
  </fo:initial-property-set>This is the text of a paragraph that is going to be
presented with the first line in small-caps.
</fo:block>

6.6.1.1.2 「段落」を伴う「図」

入力サンプル:


<doc>
  <figure>
    <photo image="TH0317A.jpg"/>
    <caption>C'ieng Tamlung of C'ieng Mai</caption>
  </figure>
</doc>

 この([fo:external-graphic])イメージサンプルでは、中央寄せされたブロックレベルオブジェクトとして配置しています。キャプションは、インデントを10mm伴って中央寄せされます。

XSL Stylesheet:


<?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="figure">
  <fo:block>
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

<xsl:template match="photo">
  <fo:block text-align="center">
    <fo:external-graphic src="'url({@image})'"/>
  </fo:block>
</xsl:template>

<xsl:template match="caption">
  <fo:block space-before="3pt" text-align="center"
    start-indent="10mm" end-indent="10mm">
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

</xsl:stylesheet>

[fo:]要素と属性ツリー:


<fo:block>
  <fo:block text-align="center">
    <fo:external-graphic src="'url(TH0317A.jpg)'"/>
  </fo:block>

  <fo:block space-before="3pt" text-align="center" start-indent="10mm"
    end-indent="10mm">C'ieng Tamlung of C'ieng Mai</fo:block>
</fo:block>

6.6.1.1.3 「ページ番号付け」と「ページ番号参照」

入力サンプル:


<!DOCTYPE doc SYSTEM "pgref.dtd">
<doc>
  <chapter id="x"><title>Chapter</title>
    <p>Text</p>
  </chapter>
  <chapter><title>Chapter</title>
    <p>For a description of X see <ref refid="x"/>.</p>
  </chapter>
</doc>

 この例では、それぞれのページが、「ページ」という言葉を含むフッタ走査が、ページ番号に続けられます。その「page」という言葉を生成する「ref」要素は、「refid」属性が配置された事によって参照されるページのページ番号によって続けられます。

XSL Stylesheet:


<?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="doc">
  <fo:root>
    <fo:layout-master-set>
      <fo:simple-page-master master-name="page"
        page-height="297mm" page-width="210mm"
        margin-top="20mm" margin-bottom="10mm"
        margin-left="25mm" margin-right="25mm">
        <fo:region-body
          margin-top="0mm" margin-bottom="15mm"
          margin-left="0mm" margin-right="0mm"/>
        <fo:region-after extent="10mm"/>
      </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="page">
      <fo:static-content flow-name="xsl-region-after">
        <fo:block>
          <xsl:text>Page </xsl:text>
          <fo:page-number/>
        </fo:block>
      </fo:static-content>
      <fo:flow flow-name="xsl-region-body">
        <xsl:apply-templates/>
      </fo:flow>
    </fo:page-sequence>
  </fo:root>
</xsl:template>

<xsl:template match="chapter/title">
  <fo:block id="{generate-id(.)}">
    <xsl:number level="multiple" count="chapter" format="1. "/>
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

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

<xsl:template match="ref">
  <xsl:text>page </xsl:text>
  <fo:page-number-citation refid="{generate-id(id(@refid)/title)}"/>
</xsl:template>

</xsl:stylesheet>

結果インスタンス:[fo:namespace]における要素と属性:


<fo:root>
  <fo:layout-master-set>
    <fo:simple-page-master master-name="page"
      page-height="297mm" page-width="210mm"
      margin-top="20mm" margin-bottom="10mm"
      margin-left="25mm" margin-right="25mm">
      <fo:region-body margin-top="0mm" margin-bottom="15mm"
        margin-left="0mm" margin-right="0mm"/>
      <fo:region-after extent="10mm"/>
    </fo:simple-page-master>
  </fo:layout-master-set>
  <fo:page-sequence master-reference="page">
    <fo:static-content flow-name="xsl-region-after">
      <fo:block>Page <fo:page-number/>
      </fo:block>
    </fo:static-content>
    <fo:flow flow-name="xsl-region-body">
      <fo:block id="N5">1. Chapter</fo:block>
      <fo:block>Text</fo:block>
      <fo:block id="N13">2. Chapter</fo:block>
      <fo:block>For a description of X see page <fo:page-number-citation refid="N5"/>
      </fo:block>
    </fo:flow>
  </fo:page-sequence>
</fo:root>

6.6.1.1.4 「説明」を伴う「コンテンツ」の「テーブル」

入力サンプル:


<doc>
  <chapter><title>Chapter</title>
    <p>Text</p>
    <section><title>Section</title>
    <p>Text</p>
    </section>
    <section><title>Section</title>
    <p>Text</p>
    </section>
  </chapter>
  <chapter><title>Chapter</title>
    <p>Text</p>
    <section><title>Section</title>
    <p>Text</p>
    </section>
    <section><title>Section</title>
    <p>Text</p>
    </section>
  </chapter>
</doc>

 このコンテンツのテーブル例では、テキストの先頭とページ番号の間にドット[.]を伴ってフォーマットされます。

XSL Stylesheet:


<?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="doc">
  <!-- create the table of contents -->
  <xsl:apply-templates select="chapter/title" mode="toc"/>
  <!-- do the document -->
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="chapter/title" mode="toc">
  <fo:block text-align-last="justify">
    <fo:basic-link internal-destination="{generate-id(.)}">
      <xsl:number level="multiple" count="chapter" format="1. "/>
      <xsl:apply-templates/>
    </fo:basic-link>
    <xsl:text> </xsl:text>
    <fo:leader leader-length.minimum="12pt" leader-length.optimum="40pt"
               leader-length.maximum="100%" leader-pattern="dots"/>
    <xsl:text> </xsl:text>
    <fo:page-number-citation ref-id="{generate-id(.)}"/>
  </fo:block>
  <xsl:apply-templates select="../section/title" mode="toc"/>
</xsl:template>

<xsl:template match="section/title" mode="toc">
  <fo:block start-indent="10mm" text-align-last="justify">
    <fo:basic-link internal-destination="{generate-id(.)}">
      <xsl:number level="multiple" count="chapter|section" format="1.1 "/>
      <xsl:apply-templates/>
    </fo:basic-link>
    <xsl:text> </xsl:text>
    <fo:leader leader-length.minimum="12pt" leader-length.optimum="40pt"
               leader-length.maximum="100%" leader-pattern="dots"/>
    <xsl:text> </xsl:text>
    <fo:page-number-citation ref-id="{generate-id(.)}"/>
  </fo:block>
</xsl:template>

<xsl:template match="chapter/title">
  <fo:block id="{generate-id(.)}">
    <xsl:number level="multiple" count="chapter" format="1. "/>
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

<xsl:template match="section/title">
  <fo:block id="{generate-id(.)}">
    <xsl:number level="multiple" count="chapter|section" format="1.1 "/>
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

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

</xsl:stylesheet>

結果インスタンス:[fo:namespace]における要素と属性:


<fo:block text-align-last="justify">
  <fo:basic-link internal-destination="N4">1. Chapter
  </fo:basic-link>
  <fo:leader leader-length.minimum="12pt" leader-length.optimum="40pt"
    leader-length.maximum="100%" leader-pattern="dots">
  </fo:leader>
  <fo:page-number-citation ref-id="N4">
  </fo:page-number-citation>
</fo:block>
<fo:block start-indent="10mm" text-align-last="justify">
  <fo:basic-link internal-destination="N11">1.1 Section
  </fo:basic-link>
  <fo:leader leader-length.minimum="12pt" leader-length.optimum="40pt"
    leader-length.maximum="100%" leader-pattern="dots">
  </fo:leader>
  <fo:page-number-citation ref-id="N11">
  </fo:page-number-citation>
</fo:block>
<fo:block start-indent="10mm" text-align-last="justify">
  <fo:basic-link internal-destination="N19">1.2 Section
  </fo:basic-link>
  <fo:leader leader-length.minimum="12pt" leader-length.optimum="40pt"
    leader-length.maximum="100%" leader-pattern="dots">
  </fo:leader>
  <fo:page-number-citation ref-id="N19">
  </fo:page-number-citation>
</fo:block>
<fo:block text-align-last="justify">
  <fo:basic-link internal-destination="N28">2. Chapter
  </fo:basic-link>
  <fo:leader leader-length.minimum="12pt" leader-length.optimum="40pt"
    leader-length.maximum="100%" leader-pattern="dots">
  </fo:leader>
  <fo:page-number-citation ref-id="N28">
  </fo:page-number-citation>
</fo:block>
<fo:block start-indent="10mm" text-align-last="justify">
  <fo:basic-link internal-destination="N35">2.1 Section
  </fo:basic-link>
  <fo:leader leader-length.minimum="12pt" leader-length.optimum="40pt"
    leader-length.maximum="100%" leader-pattern="dots">
  </fo:leader>
  <fo:page-number-citation ref-id="N35">
  </fo:page-number-citation>
</fo:block>
<fo:block start-indent="10mm" text-align-last="justify">
  <fo:basic-link internal-destination="N43">2.2 Section
  </fo:basic-link>
  <fo:leader leader-length.minimum="12pt" leader-length.optimum="40pt"
    leader-length.maximum="100%" leader-pattern="dots">
  </fo:leader>
  <fo:page-number-citation ref-id="N43">
  </fo:page-number-citation>
</fo:block>

<fo:block id="N4">1. Chapter</fo:block>

<fo:block>Text</fo:block>

<fo:block id="N11">1.1 Section</fo:block>

<fo:block>Text</fo:block>

<fo:block id="N19">1.2 Section</fo:block>

<fo:block>Text</fo:block>

<fo:block id="N28">2. Chapter</fo:block>

<fo:block>Text</fo:block>

<fo:block id="N35">2.1 Section</fo:block>

<fo:block>Text</fo:block>

<fo:block id="N43">2.2 Section</fo:block>

<fo:block>Text</fo:block>

6.6.2 [ fo:bidi-override ]

一般的な利用法

 [fo:bidi-override]フローオブジェクトは、Unicode BIDIアルゴリズムが失敗した時に利用されます。その効力は、仕様ディレクションに記載される為にテキストの羅列です。

領域

 [fo:bidi-override]フォーマット化オブジェクトは、1つ以上のノーマルなインライン領域を生成します。[fo:bidi-override]は、これらの領域を返し、一緒に[fo:bidi-override]の子によって返されるいくつかの通常のブロック領域、[page-level-out-of-line]領域、[reference-level-out-of-line]領域を伴います。

特性展開

 そのディレクション特性は、『5.5.3 Writing-mode and Direction Properties』に記載されているように[writing-mode]、[direction]と[unicode-bidi]プロパティから引き継ぎます。

制約

 領域がない場合は、同じ[fo:bidi-override]フォーマット化オブジェクトによって返される1つ以上の通常の子領域を持ちます。

 [fo:bidi-override]によって返されるそれぞれの通常領域の子は、『4.7.3 Inline-building』に明記される制約を満たさなければいけません。

コンテンツ


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

 追記としては、このフォーマット化オブジェクトは、その初期値の子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 [fo:footnote]の[fo:leader]や[fo:inline]の子孫である[fo:bidi-override]は、[fo:inline-container]のもっとも近い先祖を持つまでブロックレベルの子を持たない場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.7 Common Aural Properties
7.9 Common Font Properties
7.13 Common Relative Position Properties
7.18.1 color
7.29.1 direction
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.17.2 letter-spacing
7.16.4 line-height
7.30.15 score-spaces
7.29.6 unicode-bidi
7.17.8 word-spacing

6.6.3 [ fo:character ]

一般的な利用法

 [ fo:character ]フローオブジェクトは、表示において象形文字をマップする為にある文字を表示します。それは、フォーマット装置の為に原子化されたユニットです。

 結果ツリーがフォーマット化オブジェクトのツリーとして解釈される場合には、その結果ツリーにある文字は、その文字のUnicode表示と同等の文字属性を伴うタイプ[ fo:character ]のカラの要素であったかのように扱われます。文字プロパティにおけるそれらの典型的な初期値"auto"値のセマンティクスは、Unicode code point を基準にします。優先は、[implementation-specific]マナーの中で明記される場合があります。

 [fo:character]の厳密な作成を行うスタイルシートは、既定のマッピングを厳密に優先する為に利用される場合があります。

※Unicodeタグ文字列がサポートされる必要はありません。

※Unicodeバージョン3.1が明言しているのは、実際には、「HTMLやXMLのように言語タグ付けという意味の変更を提供するいくつかのプロトコルを伴って」利用される事はないという事です。Unicode TR20 ([UNICODE TR20])もまた、マークアップには適していないと明確に宣言しています。

領域

 [fo:character]フォーマット化オブジェクトは、生成され、1つ以上のノーマルなインライン領域を生成します。

※生成された1つ以上のノーマルなインライン領域がある場合は、いくつかの他の文字において前置詞と後置詞符号の両方を生成する単独の文字があるスクリプト内で遭遇します。

制約

 領域の寸法は、象形文字におけるフォントメトリクス(作法(韻律学))によって決められます。

 「true」という値の「treat-as-word-space」を伴う[fo:character]である時、User Agentは、領域の[inline-progression-dimension]を決定する為の異なるメソッド(手法)を利用する場合があります。

※このようなメソッドは、特にフォント中に蓄積されるワードスペース値を作成したり、フォーマット装置がワードスペース値を定義します。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.9 Common Font Properties
7.10 Common Hyphenation Properties
7.12 Common Margin Properties-Inline
7.13 Common Relative Position Properties
7.14.1 alignment-adjust
7.17.7 treat-as-word-space
7.14.2 alignment-baseline
7.14.3 baseline-shift
7.17.1 character
7.18.1 color
7.14.5 dominant-baseline
7.29.5 text-depth
7.29.4 text-altitude
7.29.2 glyph-orientation-horizontal
7.29.3 glyph-orientation-vertical
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.17.2 letter-spacing
7.16.4 line-height
7.30.15 score-spaces
7.17.3 suppress-at-line-break
7.17.4 text-decoration
7.17.5 text-shadow
7.17.6 text-transform
7.30.17 visibility
7.17.8 word-spacing

6.6.4 [ fo:initial-property-set ]

一般的な利用法

 [fo:initial-property-set]準フォーマット化オブジェクトは、[fo:block]の最初の行の為のフォーマット化プロパティを記述します。

※CSSの疑似要素[first-line]に似ています。

※この勧告の未来バージョンでは、複数行番号操作プロパティやこれらのプロパティ初期値である「depth」は、追加される場合がある事を意味しています。

領域

 [fo:initial-property-set]フォーマット化オブジェクトは、領域を生成したり、領域を返したりしません。それは単純に[fo:initial-property-set]の親[fo:block]によって生成された[is-first]特性における「true」という値を持つ領域の行領域に適用される特性のセットを保持します。

特性展開

 [fo:initial-property-set]上の特性は、仮に[fo:block]の子インラインフォーマット化オブジェクトであるものとして、または、[fo:inline]によって囲まれた最初の行をフォーマットする中で利用された[line-break]の一部として、それらの特性を持つ[fo:block]の直接の子として、最初の行を制約する特性としての評価を受け取ります。

制約

 なし。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.9 Common Font Properties
7.13 Common Relative Position Properties
7.18.1 color
7.17.2 letter-spacing
7.16.4 line-height
7.30.15 score-spaces
7.17.4 text-decoration
7.17.5 text-shadow
7.17.6 text-transform
7.17.8 word-spacing

6.6.5 [ fo:external-graphic ]

一般的な利用法

 [fo:external-graphic]フローオブジェクトは、[fo:element]ツリーの外側に存在するグラフィックデータという画像の為に利用されます。

領域

 [fo:external-graphic]フォーマット化オブジェクトは、生成し、外部画像を含む1つのインラインレベル[viewport-area]と1つの[reference-area]を返します。インラインレベル領域は、『4.2.3 Geometric Definitions』に定義されているように[large-allocation-rectangle]を使用します。

※注釈:[fo:external-graphic]は、[fo:block]にある[fo:external-graphic]を囲む事によってブロックレベルで配置される場合があります。
※注釈:「max-height」や「line-height」の「line-stacking-strategy」は、特に[fo:external-graphic]コンテンツを伴う1行以上をスタックする為に利用されます。

制約

 [viewport]のサイズは、[block-progression-dimension]と[inline-progression-dimension ]特性によって決められます。「auto」という値においてその画像のコンテンツサイズが利用されます。

 画像のコンテンツサイズは、そのオブジェクト固有サイズを取り、「content-height」「content-width」「scaling」「allowed-height-scale」「allowed-width-scale」によって記述された時に計測する事によって決められます。もし、「content-height」や「content-width」が「auto」でない場合、(記述された自動でない値を計算して)同じ計測結果であるという事は、両方の指示が等しい事を意味します。

 一度計測された[reference-area]は、「text-align」「display-align」特性を利用している[viewport-area]である事を想定され整列されます。もし、それが[viewport-area]より大き過ぎる場合、画像は、仮にぴったり一致し、[overflow]特性が、クリップしたり、スクロールバーを操作する等々するものとして整列されます。

 このケースでは、画像フォーマットがそのサイズで画像固有サイズを記述していない際には、(implementation-defined manner)で決められます。

※注釈:例えば、ラスター画像における1ピクセルの1/96というサイズが、利用される場合があります。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.12 Common Margin Properties-Inline
7.13 Common Relative Position Properties
7.14.1 alignment-adjust
7.14.2 alignment-baseline
7.15.1 allowed-height-scale
7.15.2 allowed-width-scale
7.14.3 baseline-shift
7.15.3 block-progression-dimension
7.21.1 clip
7.15.4 content-height
7.30.7 content-type
7.15.5 content-width
7.14.4 display-align
7.14.5 dominant-baseline
7.15.6 height
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.15.7 inline-progression-dimension
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.16.4 line-height
7.21.2 overflow
7.15.12 scaling
7.15.13 scaling-method
7.30.16 src
7.16.9 text-align
7.15.14 width

6.6.6 [ fo:instream-foreign-object ]

一般的な利用法

 [fo:instream-foreign-object]フローオブジェクトは、[fo:instream-foreign-object]の子孫として存在するオブジェクトデータである、特にXSLのものではない名前空間にあるXML要素サブツリーのようなインライン画像や他の一般的なオブジェクトによって利用されます。

※注釈:一般的なフォーマットはSVGです。

領域

 [fo:instream-foreign-object]フォーマット化オブジェクトは、生成し、[instream-foreign-object]を含む1つのインラインレベル[viewport-area]と1つの[reference-area]を返します。インラインレベル領域は、『4.2.3 Geometric Definitions』に定義されているように[large-allocation-rectangle]を使用します。

制約

 [viewport]のサイズは、[block-progression-dimension]と[inline-progression-dimension ]特性によって決められます。「auto」という値において一連の外部オブジェクトが利用されます。

 一連の外部オブジェクトのコンテンツサイズは、そのオブジェクト固有サイズを取り、「content-height」「content-width」「scaling」「allowed-height-scale」「allowed-width-scale」によって記述された時に計測する事によって決められます。もし、「content-height」や「content-width」が「auto」でない場合、(記述された自動でない値を計算して)同じ計測結果であるという事は、両方の指示が等しい事を意味します。

 一度計測された[reference-area]は、「text-align」「display-align」特性を利用している[viewport-area]である事を想定され整列されます。もし、それが[viewport-area]に対して大き過ぎる場合、一連の外部オブジェクトは、仮にぴったり一致し、[overflow]特性が、クリップしたり、スクロールバーを操作する等々するものとして整列されます。

 このケースでは、一連の外部オブジェクトがそのオブジェクト固有サイズを記述していない際には、(implementation-defined manner)で決められます。

コンテンツ

 [fo:instream-foreign-object]フローオブジェクトは、XSLでない名前空間による子を持ちます。その許容は、その名前空間によって定義されたこの子を構築します。

 [fo:instream-foreign-object]フローオブジェクトは、XSLでない名前空間にある付加的な属性を持つ場合があります。これらは、XSL定義されたプロパティと同様にフローオブジェクトのコンテンツのプロセッサに利用可能にさせます。それらのセマンティクス(意味論)は、その名前空間によって定義されます。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.12 Common Margin Properties-Inline
7.13 Common Relative Position Properties
7.14.1 alignment-adjust
7.14.2 alignment-baseline
7.15.1 allowed-height-scale
7.15.2 allowed-width-scale
7.14.3 baseline-shift
7.15.3 block-progression-dimension
7.21.1 clip
7.15.4 content-height
7.30.7 content-type
7.15.5 content-width
7.14.4 display-align
7.14.5 dominant-baseline
7.15.6 height
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.15.7 inline-progression-dimension
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.16.4 line-height
7.21.2 overflow
7.15.12 scaling
7.15.13 scaling-method
7.16.9 text-align
7.15.14 width

6.6.7 [ fo:inline ]

一般的な利用法

 [fo:inline]フォーマット化オブジェクトは、一般的には、背景と共にテキストの一部をフォーマットしたり、ボーダーで取り囲んだりする為に利用されます。

領域

 [fo:inline]フォーマット化オブジェクトは、1つ以上の通常インライン領域を生成します。その[fo:inline]は、[fo:inline]の子によって返されるいくつかの通常ブロック領域、[page-level-out-of-line]領域、[reference-level-out-of-line]領域を伴ってこれらの領域を返します。

制約

 領域がない場合には、同じ[fo:inline]フォーマット化オブジェクトによって返される1つ以上の通常子領域を持ちます。

 それぞれの通常領域である子は、『4.7.3 Inline-building』に記述された制約を満たさなければならない[fo:inline]によって返されます。

 追記すると、その制約は、満たさなければならないこのフォーマット化オブジェクトに適用されるプロパティから特性が引き継がれた特性によって課されます。幾何学制約は、『4 領域モデル-Area Model』に厳格に定義されています。

コンテンツ


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

 追記すると、このフォーマット化オブジェクトは、その初期値となる子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 [fo:footnote]の子である[fo:inline]は、ブロックレベルの子を持たない場合があります。[fo:leader]の子孫である[fo:inline]、または、[fo:footnote]の子である[fo:inline]は、[fo:inline-container]であるもっとも近い先祖を持つまでブロックレベルの子を持たない場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.9 Common Font Properties
7.12 Common Margin Properties-Inline
7.13 Common Relative Position Properties
7.14.1 alignment-adjust
7.14.2 alignment-baseline
7.14.3 baseline-shift
7.15.3 block-progression-dimension
7.18.1 color
7.14.5 dominant-baseline
7.15.6 height
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.15.7 inline-progression-dimension
7.20.3 keep-together
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.16.4 line-height
7.17.4 text-decoration
7.30.17 visibility
7.15.14 width
7.16.13 wrap-option

6.6.8 [ fo:inline-container ]

一般的な利用法

 [fo:inline-container]フローオブジェクトは、特に異なる[writing-mode]を持つテキストブロックを含むインライン参照領域を生成する為に利用されます。

※注釈:このフローオブジェクトの利用は、「bi-directional text」を要求しません。このケースでは、Unicode BIDIアルゴリズムと[fo:bidi-override]があれば十分です。

領域

 [fo:inline-container]フォーマット化オブジェクトは、1つ以上の[viewport]と[reference]のペアを生成します。生成される全ての[viewport-areas]は、[fo:inline-container]の[block-progression-dimension]と[inline-progression-dimension]特性によって与えられる制約を課されます。[fo:inline-container]は、これらの領域といくつかの[fo:inline-container]の子によって返される[page-level-out-of-line]領域を返します。

※注釈:このケースでは、[block-progression-dimension.maximum]が「auto」以外であれば、[overflow]解析が提供される場合があります。クリップやスクロールではなく、「repeat」という[overflow]の値の要求であれば、[viewport]と[reference]のペアを混合して生成する為に利用する事ができます。

 もし、[absolute-position]絶対位置特性が「auto」であれば、それらの領域全ては、[xsl-normal]である領域クラスを持ちます。もし、[absolute-position]絶対位置特性が「absolute」または、「fixed」であれば、これらは1つの[viewport]と[reference]のペアであり、その領域クラスは、それぞれ[xsl-absolute]、[xsl-fixed]です。[fo:inline-container]フォーマット化オブジェクトは、1つ以上の[viewport]と[reference]のペアを生成します。生成される全ての[viewport-areas]は、[fo:inline-container]の[block-progression-dimension]と[inline-progression-dimension]特性によって与えられる制約を課されます。[fo:inline-container]は、これらの領域といくつかの[fo:inline-container]の子によって返される[page-level-out-of-line]領域を返します。

特性展開

 [viewport-area]と[reference-area]の[reference-orientation]と[writing-mode]特性は、[fo:inline-container]から引き継ぎます。これらは、 [viewport-area]の[content-rectangle] の「start-edge」、「end-edge」、「before-edge」と「after-edge」、その「padding-edge」、「border-edge」と[reference-area]の[content-rectangles]の方向性を決定します。その参照領域の[reference-orientation]は、「0」にセットされ、それゆえに[viewport-area]によって作られる方向性と同じとなります。参照領域の[inline-progression-dimension]は、[viewport-area]の[inline-progression-dimension]と同じであり、もし、[inline-progression-dimension]が[fo:inline-container]の親と異なる場合には「auto」でない場合があります。参照領域の[block-progression-dimension]は、このようにその参照領域が[viewport-area]より大きく、これが、[overflow]を操作する要因となる場合があるので制約されません。

※注釈:そのサイズにおいてこのフローオブジェクトによって生成された領域のそれぞれを意味するプロパティの値は、インスタンスとインスタンスの間が、もし、「auto」または長さの範囲であれば変化させる(変更する)事ができます。このケースでは、[block-progression-dimension.maximum]が「auto」以外であれば、[overflow]解析が提供される場合があります。クリップやスクロールではなく、「repeat」という[overflow]の値の要求であれば、[viewport]と[reference]のペアを混合して生成する為に利用する事ができます。

 このオブジェクトの[baseline-table]における値は、次のように算出されます。

baselineもし、記述方式(writing mode)が[block-progression-direction]と並列である場合には、その[alignment-point]は、最初の子孫ライン領域の[dominant-baseline]の位置です。もし、このようなライン領域[alignment-point]がない場合には、領域を確保された矩形の[after-edge]の位置です。

もし、親の[block-progression-direction]と並列でない[block-progression-direction]を持つ記述方式(writing mode)である場合、内容矩形の[before-edge]と[after-edge]の半分の位置です。
before-edgeその[alignment-point]は、領域を確保された矩形の[before-edge]として配置されます。
text-before-edgeその[alignment-point]は、2つのエッジ候補から選択された領域を確保された矩形の[before-edge]に近い位置です。もし、記述方式(writing mode)が[block-progression-direction]と並列である場合には、その[alignment-point]は、候補となるエッジは、内容矩形の「before-edge」と「after-edge」であり、もし、そうでないなら、候補となるエッジは、内容矩形の「start-edge」と「end-edge」です。
middleその[alignment-point]は、領域を確保された矩形の[before-edge]と[after-edge]間の半分の位置として配置されます。
after-edgeその[alignment-point]は、領域を確保された矩形の[after-edge]として配置されます。
text-after-edgeその[alignment-point]は、2つのエッジ候補から選択された領域を確保された矩形の[after-edge]に近い位置です。もし、記述方式(writing mode)が[block-progression-direction]と並列である場合には、その[alignment-point]は、候補となるエッジは、内容矩形の「before-edge」と「after-edge」であり、もし、そうでないなら、候補となるエッジは、内容矩形の「start-edge」と「end-edge」です。
ideographicその[alignment-point]は、領域が確保された矩形の[before-edge]から[after-edge]までの距離の7/10の位置です。
alphabeticその[alignment-point]は、領域が確保された矩形の[before-edge]から[after-edge]までの距離の6/10位置です。
hangingその[alignment-point]は、領域が確保された矩形の[before-edge]から[after-edge]までの距離の2/10位置です。
mathematicalその[alignment-point]は、領域が確保された矩形の[before-edge]から[after-edge]までの距離の5/10位置です。

制約

 領域がない場合には、同じ[fo:inline-container]フォーマット化オブジェクトによって返される1つ以上の通常子領域を持ちます。

 それぞれの通常領域である子は、[fo:inline-container]の子によって返される通常のブロック領域にしなければならず、厳密にスタックされ、厳密に指示されなければならない[fo:inline-container]フォーマット化オブジェクトによって生成され、『4.7.3 Inline-building』に記述された制約を満たさなければならない[fo:inline]によって返されます。

 いくつかの[reference-level-out-of-line]領域は、『6.12.2 fo:float』に記述されているように[fo:inline-container]の子が操作される事によって返されます。

コンテンツ


(%block;)+

 追記すると、このフォーマット化オブジェクトは、その初期値となる子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.8 Common Border, Padding, and Background Properties
7.12 Common Margin Properties-Inline
7.13 Common Relative Position Properties
7.14.1 alignment-adjust
7.14.2 alignment-baseline
7.14.3 baseline-shift
7.15.3 block-progression-dimension
7.21.1 clip
7.14.4 display-align
7.14.5 dominant-baseline
7.15.6 height
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.15.7 inline-progression-dimension
7.20.3 keep-together
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.16.4 line-height
7.21.2 overflow
7.21.3 reference-orientation
7.15.14 width
7.29.7 writing-mode

6.6.9 [ fo:leader ]

一般的な利用法

 [fo:leader]は、多くの場合、以下のような使い方をされます。

領域

 [fo:leader]フォーマット化オブジェクトは、生成し、単独の通常インライン領域を返します。

特性展開

 もし、[leader-pattern]の値が、「use-content」であれば、内容矩形の[block-progression-dimension]は、インライン領域として同じ手順で決められ、そうでなければ、[rule-thickness]特性によって決められます。

制約

 もし、そのリーダーの最小長が、ライン領域の場所よりも長すぎる場合には、リーダーは、新しい行に始めます。もし、それが、自身によって行の中に配置するには長すぎる場合、行をオーバーフローし、場合によってはコンテナの[overflow]特性と一致する参照領域をオーバーフローするでしょう。

 [fo:leader]フォーマット化オブジェクトは、[fo:leaders]がネストされていない場合を除き、いくつかのインラインフォーマット化オブジェクトとその子としての文字列を持つ事ができます。その子は、[leader-pattern]特性の値が「use-content」となるまで無視されます。

※注記:もし、その[leader-pattern]特性の値が「use-content」であり、[fo:leader]が子を持たない場合、リーダーは、ブランクスペースを満たす(ブランクで埋める)でしょう。

 [fo:leader]によって生成されたインライン領域は、少なくとも[leader-length.minimum]と大きな[leader-length.maximum]である[inline-progression-direction]にある方向性を持ちます。

 行の長さにきちんとおさまるように記述されている行領域は、行の長さにきちんとおさまる行領域が[fo:leaders]によって生成される行領域の[leader-alignment]特性を信用しなければいけません。

 もし、[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」のいずれも含める必要はありません。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.9 Common Font Properties
7.12 Common Margin Properties-Inline
7.13 Common Relative Position Properties
7.14.1 alignment-adjust
7.14.2 alignment-baseline
7.14.3 baseline-shift
7.18.1 color
7.14.5 dominant-baseline
7.29.5 text-depth
7.29.4 text-altitude
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.22.1 leader-alignment
7.22.4 leader-length
7.22.2 leader-pattern
7.22.3 leader-pattern-width
7.22.5 rule-style
7.22.6 rule-thickness
7.17.2 letter-spacing
7.16.4 line-height
7.17.5 text-shadow
7.30.17 visibility
7.17.8 word-spacing

6.6.10 [ fo:page-number ]

一般的な利用法

 [fo:page-number]フォーマット化オブジェクトは、コンテンツが配置されるインライン領域上にあり、ページの為のページ番号であるインライン領域を取得する為に利用されます。

領域

 [fo:page-number]フォーマット化オブジェクトは、生成し、単独の通常インライン領域を返します。

制約

 インライン領域のコンテンツは、[reference-page]と[reference-page-sequence]に依存します。参照ページである[fo:page-number]においては、インライン領域が配置され、[reference-page-sequence]は、[fo:page-number]の先祖[fo:page-sequence]です。

 このインライン領域の子領域は、[folio-number]記号列にある文字ごとに1つある[fo:character]によって続くとされる[reference-page-sequence]の子であるいくつかの[fo:folio-prefix]と、[reference-page-sequence]の子であるいくつかの[fo:folio-suffix]のコンテンツに続くと記述されている「character文字」だけを持つフォーマット化結果ツリー断片の結果と同じです。

 [folio-number]記号列は、[reference-page-sequence]の記号列変換プロパティにおける番号と一致する参照ページにおける[folio-number]をカバーする事によって取得されます。

※注記:変換プロパティについては、『7.26.1 format』『7.26.2 grouping-separator』『7.26.3 grouping-size』『7.26.4 letter-value』『7.10.1 country』『7.10.2 language』参照。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.9 Common Font Properties
7.12 Common Margin Properties-Inline
7.13 Common Relative Position Properties
7.14.1 alignment-adjust
7.14.2 alignment-baseline
7.14.3 baseline-shift
7.14.5 dominant-baseline
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.17.2 letter-spacing
7.16.4 line-height
7.30.15 score-spaces
7.29.4 text-altitude
7.17.4 text-decoration
7.29.5 text-depth
7.17.5 text-shadow
7.17.6 text-transform
7.30.17 visibility
7.17.8 word-spacing
7.16.13 wrap-option

6.6.11 [ fo:page-number-citation ]

一般的な利用法

 [fo:page-number-citation]は、引用されたフォーマット化オブジェクトによって返された最初の通常領域を含むページの為のページ番号を参照する為に利用されます。

※注記:コンテンツやクロスリファレンス、インデックスエントリーのテーブルにおけるページ番号を提供する為に利用される場合もあります。

領域

 [fo:page-number-citation]フォーマット化オブジェクトは、生成し、単独の通常インライン領域を返します。

制約

 引用されたページは、ページが(フォーマット化オブジェクトを参照した)[fo:page-number-citation]の「id」特性、「ref-id」特性を持つフォーマット化オブジェクトによって返される最初の通常領域を子孫として含んでいるものです。

 生成されたインライン領域の子領域は、『6.6.10 fo:page-number』に定義されているフォーマット化結果ツリー断片の結果と同じであり、参照ページとして引用されたページと、生成された[reference-page-sequence]として引用されたページである[fo:page-sequence]を利用しています。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.9 Common Font Properties
7.12 Common Margin Properties-Inline
7.13 Common Relative Position Properties
7.14.1 alignment-adjust
7.14.2 alignment-baseline
7.14.3 baseline-shift
7.14.5 dominant-baseline
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.17.2 letter-spacing
7.16.4 line-height
7.30.13 ref-id
7.30.15 score-spaces
7.29.4 text-altitude
7.17.4 text-decoration
7.29.5 text-depth
7.17.5 text-shadow
7.17.6 text-transform
7.30.17 visibility
7.17.8 word-spacing
7.16.13 wrap-option

6.6.12 [ fo:page-number-citation-last ]

一般的な利用法

 [fo:page-number-citation-last]は、(a)引用されたフォーマット化オブジェクトと、(b)記述された[page-citation-strategy]を持つ不変の領域クラスを持つ領域を含む最終ページにおけるページ番号を参照する為に利用されます。

※注記:コンテンツやクロスリファレンス、[fo:page-number-citation]を持つ結合時、ページ範囲エントリーにおけるコンテンツのテーブルにページ番号を提供する為に利用される場合もあります。

領域

 [fo:page-number-citation-last]フォーマット化オブジェクトは、生成し、単独の通常インライン領域を返します。

制約

 引用されたページは、(領域ツリーの横断する事前指示[pre-order]にある)最終ページ領域のページであり、それは、この[fo:page-number-citation-last]上に[page-citation-strategy]の制約を満たします。

 生成されたインライン領域の子領域は、『6.6.10 fo:page-number』に定義されているフォーマット化結果ツリー断片の結果と同じであり、参照ページとして引用されたページと、生成された[reference-page-sequence]として引用されたページである[fo:page-sequence]を利用しています。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.9 Common Font Properties
7.12 Common Margin Properties-Inline
7.13 Common Relative Position Properties
7.14.1 alignment-adjust
7.14.2 alignment-baseline
7.14.3 baseline-shift
7.14.5 dominant-baseline
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.17.2 letter-spacing
7.16.4 line-height
7.30.10 page-citation-strategy
7.30.13 ref-id
7.30.15 score-spaces
7.29.4 text-altitude
7.17.4 text-decoration
7.29.5 text-depth
7.17.5 text-shadow
7.17.6 text-transform
7.30.17 visibility
7.17.8 word-spacing
7.16.13 wrap-option

6.6.13 [ fo:folio-prefix ]

一般的な利用法

 [fo:folio-prefix]フォーマット化オブジェクトは、[page-sequence]内にある[folio numbers]における静的な前置詞を記述します。

領域

 [fo:folio-prefix]フォーマット化オブジェクトは、いかなる領域も直接生成しません。その子は、検索されたり、ページ番号をフォーマットする際に利用されます。

制約

 なし。

コンテンツ


(#PCDATA|%inline;)*

 [fo:folio-prefix]は、子孫としての[fo:page-number]、[fo:page-number-citation]や[fo:page-number-citation-last]を持つ事を許容しません。

6.6.14 [ fo:folio-suffix ]

一般的な利用法

 [fo:folio-suffix]フォーマット化オブジェクトは、[page-sequence]内にある[folio numbers]における静的な後置詞を記述します。

領域

 [fo:folio-suffix]フォーマット化オブジェクトは、いかなる領域も直接生成しません。その子は、検索されたり、ページ番号をフォーマットする際に利用されます。

制約

 なし。

コンテンツ


(#PCDATA|%inline;)*

 [fo:folio-suffix]は、子孫としての[fo:page-number]、[fo:page-number-citation]や[fo:page-number-citation-last]を持つ事を許容しません。

6.6.15 [ fo:scaling-value-citation ]

一般的な利用法

 [fo:scaling-value-citation]は、引用された[fo:external-graphic]に提供する[scale-factor]を取得する為に利用されます。

※注記:画像が通常の実際のサイズに見せる、一致しない場合にはスケールダウンするといったアプリケーションにおいて利用されるスケールを提供する為に利用される場合があります。

領域

 [fo:scaling-value-citation]フォーマット化オブジェクトは、生成し、単独の通常インライン領域を返します。

制約

 引用された[fo:external-graphic]は、[fo:scaling-value-citation]の「ref-id」と一致する「id」特性を持つ[fo:external-graphic]です。

 提供される[scale-factor]は、「intrinsic-scale-value」プロパティの値によって増える引用された[fo:external-graphic]の固有のサイズが提供された[scale-factor]です。それは、整数型のパーセンテージ値として表現されます。「scale-option」プロパティは、利用されるべき幅や高さにおける[scale-factor]であれば記述します。

※注記:このケースでは、画像フォーマットには画像固有のサイズを記述せず、そのサイズは、取得された実測値が意味をなさない場合もあるという(implementation-defined manner)で決められています。

 提供される[scale-factor]記号列は、提供された記号列変換プロパティにおける番号と一致する実測値を変換する事によって取得されます。

※注記:変換プロパティについては、『7.26.1 format』『7.26.2 grouping-separator』『7.26.3 grouping-size』『7.26.4 letter-value』『7.10.1 country』『7.10.2 language』参照。

 生成されたインライン領域の子領域は、提供される実測値の記号列にある文字列ごとに[fo:character]フローオブジェクトで構成されるフォーマット化結果ツリー断片の結果と同じであり、「character文字」プロパティが記述されるだけです。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.9 Common Font Properties
7.12 Common Margin Properties-Inline
7.13 Common Relative Position Properties
7.14.1 alignment-adjust
7.14.2 alignment-baseline
7.14.3 baseline-shift
7.10.1 country
7.14.5 dominant-baseline
7.26.1 format
7.26.2 grouping-separator
7.26.3 grouping-size
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.10.2 language
7.17.2 letter-spacing
7.26.4 letter-value
7.16.4 line-height
7.30.9 intrinsic-scale-value
7.30.13 ref-id
7.30.15 score-spaces
7.30.14 scale-option
7.29.4 text-altitude
7.17.4 text-decoration
7.29.5 text-depth
7.17.5 text-shadow
7.17.6 text-transform
7.30.17 visibility
7.17.8 word-spacing
7.16.13 wrap-option


 6.7 テーブルのオブジェクト書式
  6.7.1 概論
   6.7.1.1 例・サンプル
    6.7.1.1.1 中央寄せのシンプルなテーブル Simple Table, Centered and Indented
    6.7.1.1.2 相対列幅を持つシンプルなテーブル Simple Table with Relative Column-width Specifications
  6.7.2 [ fo:table-and-caption ]
  6.7.3 [ fo:table ]
  6.7.4 [ fo:table-column ]
  6.7.5 [ fo:table-caption ]
  6.7.6 [ fo:table-header ]
  6.7.7 [ fo:table-footer ]
  6.7.8 [ fo:table-body ]
  6.7.9 [ fo:table-row ]
  6.7.10 [ fo:table-cell ]

6.7 テーブルにおけるフォーマット化オブジェクト

6.7.1 概要

 [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]、これら9つのフォーマット化オブジェクトは、テーブルを構築する為に利用されます。その結果ツリーは、参照図※のように表現されます。

参照図-『Tree Representation of the Formatting Objects for Tables』-テーブルにおけるフォーマット化オブジェクトのツリー表現参照。

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 Stylesheet:


<?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="{@width}" table-layout="fixed">
    <xsl:apply-templates/>
  </fo:table>
</xsl:template>

<xsl:template match="colspec">
  <fo:table-column column-width="{@colwidth}">
    <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:namespace]における要素と属性


<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-table-model-like」を利用します。列幅は、関連する全ての列幅仕様を利用する事が記述されます。

入力サンプル:


<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 Stylesheet:


<?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="{@colnum}">
    <xsl:if test="@valign">
      <xsl:choose>
        <xsl:when test="@valign='middle'">
          <xsl:attribute name="display-align">center</xsl:attribute>
        </xsl:when>
        <xsl:when test="@valign='top'">
          <xsl:attribute name="display-align">before</xsl:attribute>
        </xsl:when>
        <xsl:when test="@valign='bottom'">
          <xsl:attribute name="display-align">after</xsl:attribute>
        </xsl:when>
        <xsl:otherwise>
          <xsl:attribute name="display-align">before</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>Calculate an XSL FO table column-width specification from a
     * full relative table column-width specification.</p>
     *
     * <p>Table column-widths are in the following basic
     * forms:</p>
     *
     * <ul>
     * <li><b>99.99units</b>, a fixed length-specifier.</li>
     * <li><b>99.99</b>, a fixed length-specifier without any units.</li>
     * <li><b>99.99*</b>, a relative length-specifier.</li>
     * <li><b>99.99*+99.99units</b>, a combination of both.</li>
     * </ul>
     *
     * <p>The units are points (pt), picas (pi), centimeters (cm),
     * millimeters (mm), and inches (in). These are the same units as XSL,
     * except that XSL abbreviates picas "pc" instead of "pi". If a length
     * specifier has no units, the default unit (pt) is assumed.</p>
     *
     * <p>Relative length-specifiers are represented in XSL with the
     * proportional-column-width() function.</p>
     *
     * <p>Here are some examples:</p>
     *
     * <ul>
     * <li>"36pt" becomes "36pt"</li>
     * <li>"3pi" becomes "3pc"</li>
     * <li>"36" becomes "36pt"</li>
     * <li>"3*" becomes "proportional-column-width(3)"</li>
     * <li>"3*+2pi" becomes "proportional-column-width(3)+2pc"</li>
     * <li>"1*+2" becomes "proportional-column-width(1)+2pt"</li>
     * </ul>
     *
     * @param colwidth The column width specification.
     *
     * @returns The XSL column width specification.
     * -->
  <xsl:param name="colwidth">1*</xsl:param>

  <!-- Ok, the colwidth could have any one of the following forms: -->
  <!--        1*       = proportional width -->
  <!--     1unit       = 1.0 units wide -->
  <!--         1       = 1pt wide -->
  <!--  1*+1unit       = proportional width + some fixed width -->
  <!--      1*+1       = proportional width + some fixed width -->

  <!-- If it has a proportional width, translate it to 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>

  <!-- Now get the non-proportional part of the specification -->
  <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>

  <!-- Now the width-units could have any one of the following forms: -->
  <!--                 = <empty string> -->
  <!--     1unit       = 1.0 units wide -->
  <!--         1       = 1pt wide -->
  <!-- with an optional leading sign -->

  <!-- Get the width part by blanking out the units part and discarding -->
  <!-- white space. -->
  <xsl:variable name="width"
       select="normalize-space(translate($width-units,
                                         '+-0123456789.abcdefghijklmnopqrstuvwxyz',
                                         '+-0123456789.'))"/>

  <!-- Get the units part by blanking out the width part and discarding -->
  <!-- white space. -->
  <xsl:variable name="units"
       select="normalize-space(translate($width-units,
                                         'abcdefghijklmnopqrstuvwxyz+-0123456789.',
                                         'abcdefghijklmnopqrstuvwxyz'))"/>

  <!-- Output the width -->
  <xsl:value-of select="$width"/>

  <!-- Output the units, translated appropriately -->
  <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:namespace]における要素と属性


<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="before">
        <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]フォーマット化オブジェクトは、1つ以上の通常ブロック領域を生成します。[fo:table-and-caption]は、これらの領域、[fo:table-and-caption]の子によって返されるいくつかの[page-level-out-of-line]領域、いくつかの[reference-level-out-of-line]領域を返します。

制約

 領域がないものは、同じ[fo:table-and-caption]フォーマット化オブジェクトによって返される1つ以上の通常の子領域を持ちます。

 [fo:table-and-caption]によって生成された領域の子は、テーブルキャプションの為の領域と、テーブル自身の領域の1つまたは2つの領域です。これらは、[caption-side]特性によって記述されているように互いに相関して配置されます。これらは、[text-align]特性によって記述されているように生成された領域の内容矩形に相関して配置されます。

コンテンツ


(table-caption?,table)

 追記すると、このフォーマット化オブジェクトは、初期値の子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.11 Common Margin Properties-Block
7.13 Common Relative Position Properties
7.20.1 break-after
7.20.2 break-before
7.28.7 caption-side
7.19.1 clear
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.19.3 intrusion-displace
7.20.3 keep-together
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.16.9 text-align

6.7.3 [ fo:table ]

一般的な利用法

 [fo:table]フローオブジェクトは、テーブルの表にされた素材をフォーマットする為に利用されます。

 [fo:table]フローオブジェクトとその子フローオブジェクトは、「行優先」の慣習の中でテーブルの視覚的なレイアウトをモデル化します。完全なテーブルは、[row-progression-direction]と[column-progression-direction]にある1つ以上の格子ユニットを占めるそれぞれのセルが行と列の格子のように見える場合があります。

 テーブル内容は、ヘッダ(オプション)、フッタ(オプション)、1つ以上のボディに配分されます。プロパティは、ヘッダとフッタがテーブル中で細分を繰り返されるべき場合に記述します。これらのパーツのそれぞれは、テーブルの格子の中で1行以上を占めます。

領域

 [fo:table]フォーマット化オブジェクトは、生成し、1つ以上の通常ブロック領域を返します。これらの領域は、([table-omit-header-at-break]プロパティに記述されているように省略される場合を除き)[fo:table-header]、それに続く[fo:table-body(s)]のコンテンツの一部、([table-omit-footer-at-break]プロパティによって記述されているように省略される場合を除き)それに続く[fo:table-footer]のコンテンツで構成されます。追記すると、[fo:table]は、[fo:table]の子によって返されるいくつかの[page-level-out-of-line]領域といくつかの[reference-level-out-of-line]領域を返します。  生成される領域と[fo:table]フォーマット化オブジェクトによって返される領域は、子として持ちます。

 これらの領域は、CSS2仕様の17.5.1 (http://www.w3.org/TR/REC-CSS2/tables.html#table-layers")に一致して決定される操作レンダリング指定[z-index]を持ちます。

※注釈:その範囲にあるセルは、それが占める格子ユニットごとに異なる[backgroud]を持つ場合があります。

特性展開

 [column-progression-direction]と[row-progression-direction]は、[writing-mode]特性によって決められます。最初は、それが、もっとも外側のテーブルの升目の境界線と一致する内側のエッジを伴って配置され、[border-separation]プロパティにおける値の半分の幅を持ちます。それは、[fo:table]の[background]プロパティと一致する中で満たされます。2番目にもっとも外側のテーブルの升目の境界線の外側は、テーブルの一端ごとに線は、テーブル上に記述される線上を基準とします。

 もし、[border-collapse]プロパティが「collapse」または「collapse-with-precedence」であれば、線はセルレベルの互いのセグメントにおいて決められます。

※注釈:「collapse-with-precedence」であり、[fo:table]における線仕様上、先行する優先順位の高いものによって、それは、この仕様が全ての線のセグメントで利用される事を保証します。

制約

 領域がないものは、同じ[fo:table]フォーマット化オブジェクトによって返される1つ以上の通常の子領域を持ちます。

 [fo:table-header]と[fo:table-footer]の内容は、「table-omit-header-at-break」と「table-omit-footer-at-break」プロパティによって記述されるように省略されない限り、通常ブロック領域が生成されるごとに、[fo:table]フォーマット化オブジェクトによって返されるごとに繰り返されるでしょう。

 テーブルの内容矩形の[inline-progression-dimension]は、テーブルグリッドにある列の[inline-progression-dimension]の合計です。そのメソッドは、これらの[inline-progression-dimension]が、[table-layout]の値と次に続く慣例にある[inline-progression-dimension]特性によって管理されます。

inline-progression-dimension="auto" table-layout="auto"自動テーブルレイアウトが利用されるでしょう。
inline-progression-dimension="auto" table-layout="fixed"自動テーブルレイアウトが利用されるでしょう。
inline-progression-dimension=「長さ」または「比率(%)」 table-layout="auto"自動テーブルレイアウトが利用されるでしょう。
inline-progression-dimension=「長さ」または「比率(%)」 table-layout="fixed"固定テーブルレイアウトが利用されるでしょう。

 自動テーブルレイアウトと固定テーブルレイアウトについては、CSS2仕様17.5.2(http://www.w3.org/TR/REC-CSS2/tables.html#width-layout")に定義されています。

 テーブルの[block-progression-dimension]を決める為のメソッドは、[block-progression-dimension]特性によって管理されます。

※注釈:厳格なCSS2仕様は、背景が、もし、厳格に記述されたテーブルの[block-progression-dimension]とコンテンツの[block-progression-dimensions]間に不一致があるべきであった場合については、記述していません。
※注釈:[proportional-column-width()]関数の利用は、固定テーブルレイアウトが利用された場合に限定されます。

 もし、相対的な列幅が、系統立てられた未知の幅のテーブル上で要求された場合、[inline-progression-dimension]は、「auto」となるように記述されることができません。代わりに、その幅は、比率(%)で記述されなければいけません。例えば、「table-layout="fixed"」と「inline-progression-dimension="100%"」の設定は、現在のコンテキスト内で可能な幅を同時に作成する間、相対的な列を許容するでしょう。
※注釈:幅において比率(%)を利用する結果は、特に自動テーブルレイアウトで利用する際には、予測できないものとなる場合があります。

 仮に2つまたは1つのテーブルセルが重なり合った場合にエラーとなるとすれば、例えば、2つまたは1つのテーブルセルが、テーブルグリッド内で同一のセル位置にある行や列の範囲で試みようとするためです。手段としては、コンテンツが表現する全てのテーブルセルを再配置する事によってこのエラーから回復する場合があります。

 テーブルセルは、単独の[table-body]、[table-header]、[table-footer]内で水平、垂直の両方それぞれを完全に含まれなければいけません。もし、テーブルセルが範囲外に試みうようとする事はエラーとなるという事です。テーブル中で起き得るこの例では、そのテーブルレイアウトは置かれた方向にある可能な限りの行数や列数より大きな値の「number-rows-spanned」や「number-columns-spanned」値を持つ事で固定されます。方法としては、仮に実現可能なものとして同程度の複数行、複数列に限定してテーブルセルが置かれたようにふるまう事によって回復される場合があります。

コンテンツ


(table-column*,table-header?,table-footer?,table-body+)

 追記すると、このフォーマット化オブジェクトは、初期値の子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.11 Common Margin Properties-Block
7.13 Common Relative Position Properties
7.15.3 block-progression-dimension
7.28.1 border-after-precedence
7.28.2 border-before-precedence
7.28.3 border-collapse
7.28.4 border-end-precedence
7.28.5 border-separation
7.28.6 border-start-precedence
7.20.1 break-after
7.20.2 break-before
7.19.1 clear
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.15.7 inline-progression-dimension
7.19.3 intrusion-displace
7.15.6 height
7.20.3 keep-together
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.28.16 table-layout
7.28.17 table-omit-footer-at-break
7.28.18 table-omit-header-at-break
7.15.14 width
7.29.7 writing-mode

6.7.4 [ fo:table-column ]

一般的な利用法

 [fo:table-column]準フォーマット化オブジェクトは、同じ列とスパンを持つテーブルセルに適用される特性を記述します。最も重要なプロパティは、[column-width]プロパティです。

領域

 [fo:table-column]フォーマット化オブジェクトは、生成したり、領域を返したりしません。それは、列幅における制約の提供と[fo:table](『6.7.3 fo:table』参照)によって生成された領域に影響を及ぼす[background]のようにいくつかの特性表現の特性のセットを保持します。継承されるプロパティが、[fo:table-column]上に記述される場合もあります。これらは、式の中の[from-table-column()]関数によって参照される事ができます。

※注釈:より多くの詳細、特に1より大きい[number-columns-spanned]を持つ[fo:table-column]の利用については、[fo:table]と[from-table-column()]関数の説明にあります。

制約

 なし。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.8 Common Border, Padding, and Background Properties

※注釈:
[background]プロパティ限定:
[background-attachment]、[background-color]、[background-image]、[background-repeat]、[background-position-horizontal]、[and background-position-vertical]のセットは適用します。

テーブルの[border-collapse]の値が、「collapse」または「collapse-with-precedence」である[border]プロパティ:
[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]もまた適用します。

7.28.1 border-after-precedence
7.28.2 border-before-precedence
7.28.4 border-end-precedence
7.28.6 border-start-precedence
7.28.8 column-number
7.28.9 column-width
7.28.12 number-columns-repeated
7.28.13 number-columns-spanned
7.30.17 visibility

6.7.5 [ fo:table-caption ]

一般的な利用法

 [fo:table-caption]フォーマット化オブジェクトは、[fo:table-and-caption]を利用する際に限ってテーブルにおける表題を含んでいるブロックレベルフォーマット化オブジェクトを含める為に利用されます。

領域

 [fo:table-caption]フォーマット化オブジェクトは、1つ以上の通常参照領域を生成します。その[fo:table-caption]は、これらの領域と[fo:table-caption]の子によって返されるいくつかの[page-level-out-of-line]領域を返します。

制約

 [caption-side]特性の値が「before」または「after」のケースにおいて、生成された参照領域の内容矩形の[inline-progression-dimension]がそれを取り囲む参照領域の内容矩形の[inline-progression-dimension]と等しくなります。

 その値が、「start」または「end」の際には、生成された参照領域の[inline-progression-dimension]は、[inline-progression-dimension]特性の値によって制約されます。

 その値が、「top」、「bottom」「left」、「right」の際には、その値は、一致するプロパティ(『5.3 Computing the Values of Corresponding Properties』参照)のように同じ手法でマップされ、そのプロパティはその時、仮に一致する値が記述されているものとして扱われます。

 もし、表題がテーブルの前に配置されていれば、[fo:table-caption]によって生成される領域は、[fo:table-caption]が「always」という値を持つ「keep-with-next」プロパティを持つ[fo:table-caption]を通しているかのように領域ツリーの中に配置されるでしょう。

 もし、表題がテーブルの後に配置されていれば、[fo:table-caption]によって生成される領域は、[fo:table-caption]が「always」という値を持つ「keep-with-previous」プロパティを持つ[fo:table-caption]を通しているかのように領域ツリーの中に配置されるでしょう。

 領域がない場合は、同一の[fo:table-caption]フォーマット化オブジェクトによって返される1つ以上の通常の子領域を持ちます。

 [fo:table-caption]フォーマット化オブジェクトによって返される1つ以上の通常領域のそれぞれの子は、[fo:table-caption]の子によって返される通常ブロック領域でなければならず、厳密にスタックされ、厳密に指定されなければいけません。

 [fo:table-caption]の子によって返されるいくつかの[reference-level-out-of-line]領域は、『6.12.2 fo:float』に記述されているように操作されます。

コンテンツ


(%block;)+

 追記すると、このフォーマット化オブジェクトは、初期値となる子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.13 Common Relative Position Properties
7.15.3 block-progression-dimension
7.15.6 height
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.15.7 inline-progression-dimension
7.19.3 intrusion-displace
7.20.3 keep-together
7.15.14 width

6.7.6 [ fo:table-header ]

一般的な利用法

 [fo:table-header]フォーマット化オブジェクトは、テーブルヘッダの内容を含む為に利用されます。

領域

 [fo:table-header]フォーマット化オブジェクトは、いかなる領域も生成しません。[fo:table-header]フォーマット化オブジェクトは、[fo:table-header]のそれぞれの子によって返される領域のシーケンスを連結する事によって生成される領域のシーケンスを返します。

制約

 [fo:table-header]の子によって返される領域のシーケンスの連結指定は、[fo:table-header]の下に指定された子として同じ指定がなされます。

コンテンツ


(table-row+|table-cell+)

 [fo:table-header]は、その子として(1つ以上の)[fo:table-row]または、これと二者択一で、(1つ以上の)[fo:table-cell]を持ちます。後者のケースでは、セルは、「starts-row」と「ends-row」プロパティを利用する行においてグループ化されます。

 追記すると、このフォーマット化オブジェクトは、初期値となる子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties

※注釈:
[background]プロパティ限定:
[background-attachment]、[background-color]、[background-image]、[background-repeat]、[background-position-horizontal]、[and background-position-vertical]のセットは適用します。

テーブルの[border-collapse]の値が、「collapse」または「collapse-with-precedence」である[border]プロパティ:
[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]もまた適用します。

7.13 Common Relative Position Properties
7.28.1 border-after-precedence
7.28.2 border-before-precedence
7.28.4 border-end-precedence
7.28.6 border-start-precedence
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.30.17 visibility

6.7.7 [ fo:table-footer ]

一般的な利用法

 [fo:table-footer]フォーマット化オブジェクトは、テーブルフッタの内容を含む為に利用されます。

領域

 [fo:table-footer]フォーマット化オブジェクトは、いかなる領域も生成しません。[fo:table-footer]フォーマット化オブジェクトは、[fo:table-footer]のそれぞれの子によって返される領域のシーケンスを連結する事によって生成される領域のシーケンスを返します。

制約

 [fo:table-footer]の子によって返される領域のシーケンスの連結指定は、[fo:table-footer]の下に指定された子として同じ指定がなされます。

コンテンツ


(table-row+|table-cell+)

 [fo:table-footer]は、その子として(1つ以上の)[fo:table-row]または、これと二者択一で、(1つ以上の)[fo:table-cell]を持ちます。後者のケースでは、セルは、「starts-row」と「ends-row」プロパティを利用する行においてグループ化されます。

 追記すると、このフォーマット化オブジェクトは、初期値となる子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties

※注釈:
[background]プロパティ限定:
[background-attachment]、[background-color]、[background-image]、[background-repeat]、[background-position-horizontal]、[and background-position-vertical]のセットは適用します。

テーブルの[border-collapse]の値が、「collapse」または「collapse-with-precedence」である[border]プロパティ:
[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]もまた適用します。

7.13 Common Relative Position Properties
7.28.1 border-after-precedence
7.28.2 border-before-precedence
7.28.4 border-end-precedence
7.28.6 border-start-precedence
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.30.17 visibility

6.7.8 [ fo:table-body ]

一般的な利用法

 [fo:table-body]フォーマット化オブジェクトは、テーブルボディの内容を含む為に利用されます。

領域

 [fo:table-body]フォーマット化オブジェクトは、いかなる領域も生成しません。[fo:table-body]フォーマット化オブジェクトは、[fo:table-body]のそれぞれの子によって返される領域のシーケンスを連結する事によって生成される領域のシーケンスを返します。

制約

 [fo:table-body]の子によって返される領域のシーケンスの連結指定は、[fo:table-body]の下に指定された子として同じ指定がなされます。

コンテンツ


(table-row+|table-cell+)

 [fo:table-body]は、その子として(1つ以上の)[fo:table-row]または、これと二者択一で、(1つ以上の)[fo:table-cell]を持ちます。後者のケースでは、セルは、「starts-row」と「ends-row」プロパティを利用する行においてグループ化されます。

 追記すると、このフォーマット化オブジェクトは、初期値となる子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties

※注釈:
[background]プロパティ限定:
[background-attachment]、[background-color]、[background-image]、[background-repeat]、[background-position-horizontal]、[and background-position-vertical]のセットは適用します。

テーブルの[border-collapse]の値が、「collapse」または「collapse-with-precedence」である[border]プロパティ:
[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]もまた適用します。

7.13 Common Relative Position Properties
7.28.1 border-after-precedence
7.28.2 border-before-precedence
7.28.4 border-end-precedence
7.28.6 border-start-precedence
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.30.17 visibility

6.7.9 [ fo:table-row ]

一般的な利用法

 [fo:table-row]フォーマット化オブジェクトは、行におけるテーブルセルをグループ化する為に利用されます。[table-row]にある全てのテーブルセルは、テーブルグリッド上の同一の幾何学行で始まります。

領域

 [fo:table-row]フォーマット化オブジェクトは、いかなる領域も生成しません。[fo:table-row]フォーマット化オブジェクトは、[fo:table-row]のそれぞれの子によって返される領域のシーケンスを連結する事によって生成される領域のシーケンスを返します。[fo:table-row]は、[fo:table](『6.7.3 fo:table』参照)によって生成された領域に影響を及ぼす[background]のようないくつかの特性表現の仕様を保持します。

制約

 [fo:table-row]の子によって返される領域のシーケンスの連結指定は、[fo:table-row]の下に指定された子として同じ指定がなされます。

 グリッド中にある行の高さを決定する為のメソッドは、[row-height]特性によって管理されます。

コンテンツ


(table-cell+)

 追記すると、このフォーマット化オブジェクトは、初期値となる子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.15.3 block-progression-dimension
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties

※注釈:
[background]プロパティ限定:
[background-attachment]、[background-color]、[background-image]、[background-repeat]、[background-position-horizontal]、[and background-position-vertical]のセットは適用します。

テーブルの[border-collapse]の値が、「collapse」または「collapse-with-precedence」である[border]プロパティ:
[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]もまた適用します。

7.13 Common Relative Position Properties
7.28.1 border-after-precedence
7.28.2 border-before-precedence
7.28.4 border-end-precedence
7.28.6 border-start-precedence
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.15.6 height
7.20.3 keep-together
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.30.17 visibility

6.7.10 [ fo:table-cell ]

一般的な利用法

 [fo:table-cell]フォーマット化オブジェクトは、テーブルセルに配置されるグループ内容の為に利用されます。

 「starts-row」と「ends-row」プロパティは、各行にあるセルを含んでいる要素を持たない入力データである時に利用される事ができますが、代わりに例えば、各行は固有のタイプの要素で始まります。

領域

 [fo:table-cell]フォーマット化オブジェクトは、1つ以上の通常参照領域を生成します。[fo:table-cell]は、これらの参照領域と[fo:table-cell]の子によって返されるいくつかの[page-level-out-of-line]領域を返します。

特性展開

 セルにおける[border]を引き継ぐためのメソッドは、[border-collapse]特性によって記述されます。

 [border-collapse]特性の値が「separate」であれば、[border]は、2つのコンポーネントで構成されます。最初の一つは、テーブルグリッド境界線と一致する外側のエッジと共に配置され、それは[border-separation]特性における半分の値の幅を持ちます。それは、[fo:table]の[background]特性と一致する事によって満たされます。内側のこの[border]は各サイドに配置され、[border]は、セル上に記述された[border]に基づくか、または、継承されます。

 [border-collapse]特性の値が「collapse-with-precedence」であれば、[border]は、そのセグメントにおける全ての[border]仕様から各セルの各サイドが[border]のセグメントごとに選択する事によって決められ、[border]は、最も高い位置に先行する[border]を持ちます。もし、ボーダーが先行した同じような2つのボーダーを持っているが、完全に一致していない場合はエラーとなります。方法としては、ボーダーの1つを選択する事によって回復されます。それぞれの[border]セグメントは、グリッド境界線上で中央に配置されます。デバイス上では、サブピクセルレンダリングをサポートせず、もし、ボーダー幅がピクセルの奇数番号であると決めらている場合には、奇数行のグリッド境界線のサイド上に定義された手法で配置されます。  [border-collapse]特性の値が「collapse」であれば、セルの各サイドにおける[border]は、そのセグメントにおける全てのボーダー仕様からそれぞれの選択されたボーダーのセグメントにおいて決められ、そのボーダーは、ほとんどの場合「目で捉えられる」ボーダースタイルを持ち、その詳細については以下を参照。各ボーダーセグメントは、テーブルグリッド境界線上に中央寄せで配置されます。デバイス上では、サブピクセルレンダリングをサポートせず、もし、ボーダー幅がピクセルの奇数番号であると決めらている場合には、奇数行のグリッド境界線のサイド上に定義された手法で配置されます。それらが、その「collapse」ボーダーセグメントのスタイル間で干渉する場合には、次に勝る(優先される)ボーダースタイルによって決めます。

  1. 「hidden」という[border-style]を持つボーダーは、他の干渉するボーダー全てを超えて先行します。この値を持つボーダーは、この場所において全てのボーダーを抑制します。
  2. 「none」というスタイルを持つボーダーは、最も低い優先順位を持ちます。もし、全要素のボーダープロパティが、このエッジが「none」である場合に限り、ボーダーが省略されるでしょう(しかし、「none」という記述は、ボーダースタイルにおける既定値です)。
  3. もし、スタイルが「hidden」で、少なくとも1つが「none」でない場合には、幅の狭いボーダーが、幅の広いボーダーに託して取り除かれます。
  4. もし、残っているボーダースタイルが同じ[border-width]であれば、スタイルは、「double」、「solid」、「dashed」、「dotted」、「ridge」、「outset」、「groove」、そして最も優先順位の低い「inset」という指定の中から選択されます。
  5. もし、ボーダースタイルが色だけ異なる場合には、スタイルは、行グループ、列、列グループ、そして最後にテーブルを超えて勝るセル上にセットします。

制約

 [table-cell]は、[row-progression-direction]と[column-progression-direction]にある1つ以上のグリッドユニットを占めます。セルの内容矩形は、4辺それぞれにおいてマイナスを引いたグリッドのセルの一部のサイズです。

 グリッドにあるセルの[block-progression-dimension]を決める為のメソッドは、[row-height]特性によって管理されます。

 領域がない場合には、同一の[fo:table-cell]フォーマット化オブジェクトによって返される1つ以上の通常の子領域を持ちます。

 [fo:table-cell]によって返される通常の領域のそれぞれの子は、[fo:table-cell]の子によって返される通常のブロック領域でなければならず、厳密にスタックされ、厳密に指定されなければいけません。

 [fo:table-cell]の子によって返される[reference-level-out-of-line]領域については、『6.12.2 fo:float』に記述されているように操作されます。

コンテンツ


(%block;)+

 追記すると、このフォーマット化オブジェクトは、初期値となる子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.13 Common Relative Position Properties
7.28.1 border-after-precedence
7.28.2 border-before-precedence
7.28.4 border-end-precedence
7.28.6 border-start-precedence
7.15.3 block-progression-dimension
7.28.8 column-number
7.14.4 display-align
7.14.6 relative-align
7.28.10 empty-cells
7.28.11 ends-row
7.15.6 height
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.15.7 inline-progression-dimension
7.28.13 number-columns-spanned
7.28.14 number-rows-spanned
7.28.15 starts-row
7.15.14 width


 6.8 リストのオブジェクト書式
  6.8.1 概論
   6.8.1.1 例・サンプル
    6.8.1.1.1 列挙型リスト
    6.8.1.1.2 HTMLの[ dl ]リスト
  6.8.2 [ fo:list-block ]
  6.8.3 [ fo:list-item ]
  6.8.4 [ fo:list-item-body ]
  6.8.5 [ fo:list-item-label ]

6.8 リストにおけるフォーマット化オブジェクト Formatting Objects for Lists

6.8.1 概要

 [fo:list-block]、[fo:list-item]、[fo:list-item-label]、[fo:list-item-body]の4つのフォーマット化オブジェクトがあり、これらは、リストを構築する為に利用されます。

リストにおけるフォーマット化オブジェクトの木構造表現参照。

 [fo:list-block]は、[inline-progression-direction]にある幾何学リストにおいて利用された値の記述の完全なリストを含む役割を持ちます。(詳細は下記参照)

 [fo:list-block]の子は、1つ以上の[fo:list-item]を持ち、それぞれの[fo:list-item]は、[fo:list-item-label]と[fo:list-item-body]のペアを含んでいます。

 [fo:list-item]は、リストにあるアイテムごとに含んでいる役割を持ちます。

 [fo:list-item-label]は、ブロックレベルフォーマット化オブジェクト、リストアイテムにおけるラベル、通常は番号を含んでいる[fo:block]、dingbat(ディングバット・記号などを集めたフォント)文字列や語句といった内容を含んでいる役割を持ちます。

 [fo:list-item-body]は、ブロックレベルフォーマット化オブジェクト、リストアイテムのボディ、通常は1つ以上の[fo:block]を含んでいる役割を持ちます。

 ボディを配慮したラベルの[block-progression-direction]にあるその配置は、[fo:list-item]の「vertical-align」プロパティと一致するように作られます。

(配置関係図)参照。

 [inline-progression-direction]内の幾何学リストの仕様は、以下によって達成されます。

 [list-item-body]の[start-indent]と[end-indent]の[fo:list-item-label]が要求された場合には、通常は長さとして記述されます。

6.8.1.1 例

6.8.1.1.1 列挙されたリスト

 リストアイテムは、「ol」要素の中に含まれています。そのアイテムは、「item」要素の中に含まれ、(段落と対照的なものとしての)テキストを含みます。

 そのスタイルは、文面の後にドットを付けるアルファベットでアイテムを列挙します。

入力サンプル:


<ol>
<item>List item 1.</item>
<item>List item 2.</item>
<item>List item 3.</item>
</ol>

XSL Stylesheet:


<?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="ol">
  <fo:list-block provisional-distance-between-starts="15mm"
   provisional-label-separation="5mm">
    <xsl:apply-templates/>
  </fo:list-block>
</xsl:template>

<xsl:template match="ol/item">
  <fo:list-item>
    <fo:list-item-label start-indent="5mm" end-indent="label-end()">
      <fo:block>
        <xsl:number format="a."/>
      </fo:block>
    </fo:list-item-label>
    <fo:list-item-body start-indent="body-start()">
      <fo:block>
        <xsl:apply-templates/>
      </fo:block>
    </fo:list-item-body>
  </fo:list-item>
</xsl:template>

</xsl:stylesheet>

結果インスタンス:[fo: namespace]における要素と属性


<fo:list-block provisional-distance-between-starts="15mm"
  provisional-label-separation="5mm">

  <fo:list-item>
    <fo:list-item-label start-indent="5mm" end-indent="label-end()">
      <fo:block>a.
      </fo:block>
    </fo:list-item-label>
    <fo:list-item-body start-indent="body-start()">
      <fo:block>List item 1.
      </fo:block>
    </fo:list-item-body>
  </fo:list-item>

  <fo:list-item>
    <fo:list-item-label start-indent="5mm" end-indent="label-end()">
      <fo:block>b.
      </fo:block>
    </fo:list-item-label>
    <fo:list-item-body start-indent="body-start()">
      <fo:block>List item 2.
      </fo:block>
    </fo:list-item-body>
  </fo:list-item>

  <fo:list-item>
    <fo:list-item-label start-indent="5mm" end-indent="label-end()">
      <fo:block>c.
      </fo:block>
    </fo:list-item-label>
    <fo:list-item-body start-indent="body-start()">
      <fo:block>List item 3.
      </fo:block>
    </fo:list-item-body>
  </fo:list-item>

</fo:list-block>

6.8.1.1.2 HTMLスタイル「DL」リスト

 HTMLスタイルの「dl」リストのスタイルシートの経過であるこの例では、改行を伴わない(ワードラップしない)「dt」と「dd」要素のペアを含み、[fo:list-blocks]においてそれらを変換します。

 バランスのとれた「dt」と「dd」のペアは、[fo:list-items]へ変換されます。バランスのとれていない「dt」と「dd」は、スタイルシートが次に続く仮定を作ります。

換言すれば、この(下記の)ような構造となります。


<doc>
<dl>
  <dt>term</dt>
  <dd>definition</dd>
  <dt>term</dt>
  <dt>term</dt>
  <dd>definition</dd>
  <dt>term</dt>
  <dd>definition</dd>
  <dd>definition</dd>
</dl>
</doc>

[$allow-naked-dd]が「true」の場合、結果インスタンス:[fo: namespace]における要素と属性は、


<fo:list-block provisional-distance-between-starts="35mm"
  provisional-label-separation="5mm">
  <fo:list-item>
    <fo:list-item-label end-indent="label-end()">
      <fo:block>term
      </fo:block>
    </fo:list-item-label>
    <fo:list-item-body start-indent="body-start()">
      <fo:block>definition
      </fo:block>
    </fo:list-item-body>
  </fo:list-item>
  <fo:list-item>
    <fo:list-item-label end-indent="label-end()">
      <fo:block>term
      </fo:block>
      <fo:block>term
      </fo:block>
    </fo:list-item-label>
    <fo:list-item-body start-indent="body-start()">
      <fo:block>definition
      </fo:block>
    </fo:list-item-body>
  </fo:list-item>
  <fo:list-item>
    <fo:list-item-label end-indent="label-end()">
      <fo:block>term
      </fo:block>
    </fo:list-item-label>
    <fo:list-item-body start-indent="body-start()">
      <fo:block>definition
      </fo:block>
    </fo:list-item-body>
  </fo:list-item>
  <fo:list-item>
    <fo:list-item-label end-indent="label-end()">
    </fo:list-item-label>
    <fo:list-item-body start-indent="body-start()">
      <fo:block>definition
      </fo:block>
    </fo:list-item-body>
  </fo:list-item>
</fo:list-block>

[$allow-naked-dd]が「false」の場合、結果インスタンス:[fo: namespace]における要素と属性は、


<fo:list-block provisional-distance-between-starts="35mm"
  provisional-label-separation="5mm">
  <fo:list-item>
    <fo:list-item-label end-indent="label-end()">
      <fo:block>term
      </fo:block>
    </fo:list-item-label>
    <fo:list-item-body start-indent="body-start()">
      <fo:block>definition
      </fo:block>
    </fo:list-item-body>
  </fo:list-item>
  <fo:list-item>
    <fo:list-item-label end-indent="label-end()">
      <fo:block>term
      </fo:block>
      <fo:block>term
      </fo:block>
    </fo:list-item-label>
    <fo:list-item-body start-indent="body-start()">
      <fo:block>definition
      </fo:block>
    </fo:list-item-body>
  </fo:list-item>
  <fo:list-item>
    <fo:list-item-label end-indent="label-end()">
      <fo:block>term
      </fo:block>
    </fo:list-item-label>
    <fo:list-item-body start-indent="body-start()">
      <fo:block>definition
      </fo:block>
      <fo:block>definition
      </fo:block>
    </fo:list-item-body>
  </fo:list-item>
</fo:list-block>

XSL Stylesheet:


<?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:include href="dtdd.xsl"/>

<xsl:template match="doc">
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="dl">
  <xsl:call-template name="process.dl"/>
</xsl:template>

<xsl:template match="dt|dd">
  <fo:block>
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

</xsl:stylesheet>

含まれたスタイルシート「dtdd.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:variable name="allow-naked-dd" select="true()"/>

<xsl:template name="process.dl">
  <fo:list-block provisional-distance-between-starts="35mm"
   provisional-label-separation="5mm">
    <xsl:choose>
      <xsl:when test="$allow-naked-dd">
        <xsl:call-template name="process.dl.content.with.naked.dd"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:call-template name="process.dl.content"/>
      </xsl:otherwise>
    </xsl:choose>
  </fo:list-block>
</xsl:template>

<xsl:template name="process.dl.content.with.naked.dd">
  <xsl:param name="dts" select="./force-list-to-be-empty"/>
  <xsl:param name="nodes" select="*"/>

  <xsl:choose>
    <xsl:when test="count($nodes)="0"">
      <!-- Out of nodes, output any pending DTs -->
      <xsl:if test="count($dts)>0">
        <fo:list-item>
          <fo:list-item-label end-indent="label-end()">
            <xsl:apply-templates select="$dts"/>
          </fo:list-item-label>
          <fo:list-item-body start-indent="body-start()"/>
        </fo:list-item>
      </xsl:if>
    </xsl:when>

    <xsl:when test="name($nodes[1])='dd'">
      <!-- We found a DD, output the DTs and the DD -->
      <fo:list-item>
        <fo:list-item-label end-indent="label-end()">
          <xsl:apply-templates select="$dts"/>
        </fo:list-item-label>
        <fo:list-item-body start-indent="body-start()">
          <xsl:apply-templates select="$nodes[1]"/>
        </fo:list-item-body>
      </fo:list-item>
      <xsl:call-template name="process.dl.content.with.naked.dd">
        <xsl:with-param name="nodes" select="$nodes[position()>1]"/>
      </xsl:call-template>
    </xsl:when>

    <xsl:when test="name($nodes[1])='dt'">
      <!-- We found a DT, add it to the list of DTs and loop -->
      <xsl:call-template name="process.dl.content.with.naked.dd">
        <xsl:with-param name="dts" select="$dts|$nodes[1]"/>
        <xsl:with-param name="nodes" select="$nodes[position()>1]"/>
      </xsl:call-template>
    </xsl:when>

    <xsl:otherwise>
      <!-- This shouldn't happen -->
      <xsl:message>
        <xsl:text>DT/DD list contained something bogus (</xsl:text>
        <xsl:value-of select="name($nodes[1])"/>
        <xsl:text>).</xsl:text>
      </xsl:message>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<xsl:template name="process.dl.content">
  <xsl:param name="dts" select="./force-list-to-be-empty"/>
  <xsl:param name="dds" select="./force-list-to-be-empty"/>
  <xsl:param name="output-on"></xsl:param>
  <xsl:param name="nodes" select="*"/>

  <!-- The algorithm here is to build up a list of DTs and DDs, -->
  <!-- outputing them only on the transition from DD back to DT -->

  <xsl:choose>
    <xsl:when test="count($nodes)="0"">
      <!-- Out of nodes, output any pending elements -->
      <xsl:if test="count($dts)>0 or count($dds)>0">
        <fo:list-item>
          <fo:list-item-label end-indent="label-end()">
            <xsl:apply-templates select="$dts"/>
          </fo:list-item-label>
          <fo:list-item-body start-indent="body-start()">
            <xsl:apply-templates select="$dds"/>
          </fo:list-item-body>
        </fo:list-item>
      </xsl:if>
    </xsl:when>

    <xsl:when test="name($nodes[1])=$output-on">
      <!-- We're making the transition from DD back to DT -->
      <fo:list-item>
        <fo:list-item-label end-indent="label-end()">
          <xsl:apply-templates select="$dts"/>
        </fo:list-item-label>
        <fo:list-item-body start-indent="body-start()">
          <xsl:apply-templates select="$dds"/>
        </fo:list-item-body>
      </fo:list-item>

      <!-- Reprocess this node (and the rest of the node list) -->
      <!-- resetting the output-on state to nil -->
      <xsl:call-template name="process.dl.content">
        <xsl:with-param name="nodes" select="$nodes"/>
      </xsl:call-template>
    </xsl:when>

    <xsl:when test="name($nodes[1])='dt'">
      <!-- We found a DT, add it to the list and loop -->
      <xsl:call-template name="process.dl.content">
        <xsl:with-param name="dts" select="$dts|$nodes[1]"/>
        <xsl:with-param name="dds" select="$dds"/>
        <xsl:with-param name="nodes" select="$nodes[position()>1]"/>
      </xsl:call-template>
    </xsl:when>

    <xsl:when test="name($nodes[1])='dd'">
      <!-- We found a DD, add it to the list and loop, noting that -->
      <!-- the next time we cross back to DT's, we need to output the -->
      <!-- current DT/DDs. -->
      <xsl:call-template name="process.dl.content">
        <xsl:with-param name="dts" select="$dts"/>
        <xsl:with-param name="dds" select="$dds|$nodes[1]"/>
        <xsl:with-param name="output-on">dt</xsl:with-param>
        <xsl:with-param name="nodes" select="$nodes[position()>1]"/>
      </xsl:call-template>
    </xsl:when>

    <xsl:otherwise>
      <!-- This shouldn't happen -->
      <xsl:message>
        <xsl:text>DT/DD list contained something bogus (</xsl:text>
        <xsl:value-of select="name($nodes[1])"/>
        <xsl:text>).</xsl:text>
      </xsl:message>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

</xsl:stylesheet>

 「dtdd.xsl」スタイルシートは、次に続く方法でカスタマイズされます。

 「dtdd.xsl」スタイルシートを利用するスタイルシートでは、リストにおけるラッパーである要素の名称を「dl」に変更します。

6.8.2 [ fo:list-block ]

一般的な利用法

 [fo:list-block]フローオブジェクトは、リストをフォーマットする為に利用されます。

領域

 [fo:list-block]フォーマット化オブジェクトは、1つ以上の通常ブロック領域を生成します。その[fo:list-block]は、これらの領域と[fo:list-block]の子によって返されるいくつかの[page-level-out-of-line]領域といくつかの[reference-level-out-of-line]領域を返します。

制約

 領域がない場合は、同一の[fo:list-block]フォーマット化オブジェクトによって返される1つ以上の通常の子領域を持ちます。

 [fo:list-block]フォーマット化オブジェクトによって返される通常領域のそれぞれの子は、[fo:list-block]の子によって返される通常ブロック領域でなければならず、厳密にスタックされ、厳密に指定されなければいけません。

コンテンツ


(list-item+)

 追記すると、このフォーマット化オブジェクトは、初期値となる子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.11 Common Margin Properties-Block
7.13 Common Relative Position Properties
7.20.1 break-after
7.20.2 break-before
7.19.1 clear
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.19.3 intrusion-displace
7.20.3 keep-together
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.30.12 provisional-distance-between-starts
7.30.11 provisional-label-separation

6.8.3 [ fo:list-item ]

一般的な利用法

 [fo:list-item]フローオブジェクトは、リスト中にあるアイテムのラベルとボディを含める為に利用されます。

領域

 [fo:list-item]フォーマット化オブジェクトは、1つ以上の通常ブロック領域を生成します。その[fo:list-item]は、これらの領域と[fo:list-item]の子によって返されるいくつかの[page-level-out-of-line]領域といくつかの[reference-level-out-of-line]領域を返します。

制約

 領域がない場合は、同一の[fo:list-item]フォーマット化オブジェクトによって返される1つ以上の通常の子領域を持ちます。

 [fo:list-item]フォーマット化オブジェクトによって返される通常領域のそれぞれの子は、[fo:list-item-label]と[fo:list-item-body]フローオブジェクトによって返される通常ブロック領域でなければならず、厳密に指定されなければいけません。[fo:list-item-label]によって返されるブロック領域は厳密にスタックされなければならず、[fo:list-item-body]によって返されるブロック領域は厳密にスタックされなければいけません

 [fo:list-item-label]と[fo:list-item-body]フローオブジェクトによって返される[fo:list-item]フォーマット化オブジェクトによって返される通常領域のそれぞれの子は、[relative-align]特性と一致するそれぞれに配慮する[block-progression-direction]内に配置されます。

 [inline-progression-direction]では、これらの領域は、厳密にスタックされた領域における一般的な慣習によって配置されます。もし、領域の内容矩形がオーバーラップしている場合にはエラーとなります。

 [fo:list-item]によって生成されたある領域の内容矩形の[block-progression-dimension]は、全ての子領域が含まれるように確保された矩形として十分な大きさです。その子領域特有の「space-before」と「space-after」は、リストアイテムのスペースに影響はありません。[fo:list-item]によって生成された領域のブロックスタッキング制約の目的においては、先行する仕切りと次に続く仕切りを持っているものとして扱われます。

※注釈:これらの領域は、参照領域ではなく、したがって、それらの内部にある全てのオブジェクト上のインデントは、[fo:list-block]の内容を保持する参照領域との位置関係を計測されます。

コンテンツ


(list-item-label,list-item-body)

 追記すると、このフォーマット化オブジェクトは、初期値となる子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.11 Common Margin Properties-Block
7.13 Common Relative Position Properties
7.20.1 break-after
7.20.2 break-before
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.19.3 intrusion-displace
7.20.3 keep-together
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.14.6 relative-align

6.8.4 [ fo:list-item-body ]

一般的な利用法

 [fo:list-item-body]フォーマット化オブジェクトは、リスト中にあるボディの内容を含める為に利用されます。

領域

 [fo:list-item-body]フォーマット化オブジェクトは、いかなる領域も生成しません。その[fo:list-item-body]フォーマット化オブジェクトは、[fo:list-item-body]の子のそれぞれによって返される領域のシーケンスを連結する事によって生成される領域のシーケンスを返します。

制約

 [fo:list-item-body]の子によって返される領域のシーケンスの連結指定は、子としての同じ指定が[fo:list-item-body]の下に指定されます。

コンテンツ


(%block;)+

 追記すると、このフォーマット化オブジェクトは、初期値となる子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.20.3 keep-together

6.8.5 [ fo:list-item-label ]

一般的な利用法

 [fo:list-item-label]フォーマット化オブジェクトは、リストアイテムのラベルの内容を通常は、列挙、識別、リストアイテムのボディを装飾する為に利用されます。

領域

 [fo:list-item-label]フォーマット化オブジェクトは、いかなる領域も生成しません。その[fo:list-item-label]フォーマット化オブジェクトは、[fo:list-item-label]の子のそれぞれによって返される領域のシーケンスを連結する事によって生成される領域のシーケンスを返します。

制約

 [fo:list-item-label]の子によって返される領域のシーケンスの連結指定は、子としての同じ指定が[fo:list-item-label]の下に指定されます。

コンテンツ


(%block;)+

 追記すると、このフォーマット化オブジェクトは、初期値となる子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.20.3 keep-together


 6.9 動的効果:リンクとマルチ形式オブジェクト Dynamic Effects: Link and Multi Formatting Objects
  6.9.1 概論
   6.9.1.1 例・サンプル
    6.9.1.1.1 テーブルの内容拡張と折りたたみ Expandable/Collapsible Table of Contents
    6.9.1.1.2 動的な位置づけとしてのXLink装飾 Styling an XLink Based on the Active State
  6.9.2 [ fo:basic-link ]
  6.9.3 [ fo:multi-switch ]
  6.9.4 [ fo:multi-case ]
  6.9.5 [ fo:multi-toggle ]
  6.9.6 [ fo:multi-properties ]
  6.9.7 [ fo:multi-property-set ]

6.9 動的な効果:リストとマルチフォーマット化オブジェクト Dynamic Effects: Link and Multi Formatting Objects

6.9.1 概要

 動的な効果、ユーザー行動(User Agentの進行状態を含む)は、ふるまいと、または、ドキュメントの一部を表現でき、このセクションに含まれたフォーマット化オブジェクトの利用を通して達成する事ができます。

 サブツリー間で切り替える事は、次に続く[fo:multi-switch]、[fo:multi-case]、[fo:multi-toggle]の3つのフォーマット化オブジェクトによって達成されます。その結果ツリー構造は参照図※のように示されます。

参照図「Tree Representation of the Multi Formatting Objects」

 [fo:multi-switch]の役割は、[fo:multi-case]フォーマット化オブジェクトをそれぞれのサブツリーを含めてラップする事です。それぞれのサブツリーは、[fo:multi-case]フォーマット化オブジェクト上に名前を与えられます。例えば、[previous]、[next]や[any]と表示されるサブツリーと名前付けられたサブツリーの要因となる[fo:multi-toggle]をクリックするものとして機能を実行するには、「switch-to」プロパティによって操作されます。「any」において、その実行は、通常[fo:multi-case]の「case-title」プロパティを利用するラベル付けされたそれぞれの選択肢のリストを示します。表示された初期サブツリーは、[fo:multi-case]の「starting-state」プロパティによって操作されます。

 異なるプロパティ値の間の切り替えは、[fo:multi-properties]と[fo:multi-property-set]フォーマット化オブジェクトと「merge-property-values()」関数を利用する事で達成されます。例えば、[fo:multi-property-set]は、[active-state]プロパティの可能な値のそれぞれにおいて様々なプロパティを記述する為に利用され、「merge-property-values()」は、与えられたフォーマット化オブジェクト上でそれらを提供する為に利用されます。

6.9.1.1 例

6.9.1.1.1 コンテンツの展開/折りたたみテーブル

入力サンプル:


<doc>
  <chapter><title>Chapter</title>
    <p>Text</p>
    <section><title>Section</title>
    <p>Text</p>
    </section>
    <section><title>Section</title>
    <p>Text</p>
    </section>
  </chapter>
  <chapter><title>Chapter</title>
    <p>Text</p>
    <section><title>Section</title>
    <p>Text</p>
    </section>
    <section><title>Section</title>
    <p>Text</p>
    </section>
  </chapter>
</doc>

 この例では、章とセクションタイトルが、結果の前に配置されたコンテンツのテーブルに取り出されます。章タイトルは、折りたたみまたは展開状態のいずれかを示すアイコンによって先行されます。もっといえば、それらは、文書中のボディにあるタイトルにそれと一致する内容のテーブルの中にあるタイトルからリンクします。

 その2つの状態は、それぞれの章タイトルにおいて、それぞれの状態における[fo:multi-case]を伴う[fo:multi-switch]を利用する事によって達成されます。そのアイコンは、他の状態で選択する為の[fo:multi-case]「switch-to」プロパティに適した[fo:multi-toggle]の中に含まれています。

 コンテンツのテーブルにあるリンクは、文書中のボディにあるタイトルテキスト上の一意のIDを付加する事によって達成され、IDを参照する為の[fo:basic-link]にあるコンテンツのテーブルにあるタイトルテキストを囲みます。

XSL Stylesheet:


<?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="doc">
  <!-- create the table of contents -->
  <xsl:apply-templates select="chapter/title" mode="toc"/>
  <!-- do the document -->
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="chapter/title" mode="toc">
  <fo:multi-switch>
    <fo:multi-case case-name="collapsed" case-title="collapsed"
    starting-state="show">
      <fo:block>
        <fo:multi-toggle switch-to="expanded">
          <fo:external-graphic href="plus-icon.gif"/>
        </fo:multi-toggle>
        <fo:basic-link internal-destination="{generate-id(.)}">
          <xsl:number level="multiple" count="chapter" format="1. "/>
          <xsl:apply-templates mode="toc"/>
        </fo:basic-link>
      </fo:block>
    </fo:multi-case>
    <fo:multi-case case-name="expanded" case-title="expanded"
    starting-state="hide">
      <fo:block>
        <fo:multi-toggle switch-to="collapsed">
          <fo:external-graphic href="minus-icon.gif"/>
        </fo:multi-toggle>
        <fo:basic-link internal-destination="{generate-id(.)}">
          <xsl:number level="multiple" count="chapter" format="1. "/>
          <xsl:apply-templates mode="toc"/>
        </fo:basic-link>
      </fo:block>
      <xsl:apply-templates select="../section/title" mode="toc"/>
    </fo:multi-case>
  </fo:multi-switch>
</xsl:template>

<xsl:template match="section/title" mode="toc">
  <fo:block start-indent="10mm">
    <fo:basic-link internal-destination="{generate-id(.)}">
      <xsl:number level="multiple" count="chapter|section" format="1.1 "/>
      <xsl:apply-templates/>
    </fo:basic-link>
  </fo:block>
</xsl:template>

<xsl:template match="chapter/title">
  <fo:block id="{generate-id(.)}">
    <xsl:number level="multiple" count="chapter" format="1. "/>
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

<xsl:template match="section/title">
  <fo:block id="{generate-id(.)}">
    <xsl:number level="multiple" count="chapter|section" format="1.1 "/>
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

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

</xsl:stylesheet>

結果インスタンス:[fo: namespace]における要素と属性


<fo:multi-switch>
  <fo:multi-case case-name="collapsed" case-title="collapsed" starting-state="show">
    <fo:block>
      <fo:multi-toggle switch-to="expanded">
        <fo:external-graphic href="plus-icon.gif">
        </fo:external-graphic>
      </fo:multi-toggle>
      <fo:basic-link internal-destination="N4">1. Chapter
      </fo:basic-link>
    </fo:block>
  </fo:multi-case>
  <fo:multi-case case-name="expanded" case-title="expanded" starting-state="hide">
    <fo:block>
      <fo:multi-toggle switch-to="collapsed">
        <fo:external-graphic href="minus-icon.gif">
        </fo:external-graphic>
      </fo:multi-toggle>
      <fo:basic-link internal-destination="N4">1. Chapter
      </fo:basic-link>
    </fo:block>
    <fo:block start-indent="10mm">
      <fo:basic-link internal-destination="N11">1.1 Section
      </fo:basic-link>
    </fo:block>
    <fo:block start-indent="10mm">
      <fo:basic-link internal-destination="N19">1.2 Section
      </fo:basic-link>
    </fo:block>
  </fo:multi-case>
</fo:multi-switch>
<fo:multi-switch>
  <fo:multi-case case-name="collapsed" case-title="collapsed" starting-state="show">
    <fo:block>
      <fo:multi-toggle switch-to="expanded">
        <fo:external-graphic href="plus-icon.gif">
        </fo:external-graphic>
      </fo:multi-toggle>
      <fo:basic-link internal-destination="N28">2. Chapter
      </fo:basic-link>
    </fo:block>
  </fo:multi-case>
  <fo:multi-case case-name="expanded" case-title="expanded" starting-state="hide">
    <fo:block>
      <fo:multi-toggle switch-to="collapsed">
        <fo:external-graphic href="minus-icon.gif">
        </fo:external-graphic>
      </fo:multi-toggle>
      <fo:basic-link internal-destination="N28">2. Chapter
      </fo:basic-link>
    </fo:block>
    <fo:block start-indent="10mm">
      <fo:basic-link internal-destination="N35">2.1 Section
      </fo:basic-link>
    </fo:block>
    <fo:block start-indent="10mm">
      <fo:basic-link internal-destination="N43">2.2 Section
      </fo:basic-link>
    </fo:block>
  </fo:multi-case>
</fo:multi-switch>

<fo:block id="N4">1. Chapter</fo:block>
<fo:block>Text</fo:block>
<fo:block id="N11">1.1 Section</fo:block>
<fo:block>Text</fo:block>
<fo:block id="N19">1.2 Section</fo:block>
<fo:block>Text</fo:block>
<fo:block id="N28">2. Chapter</fo:block>
<fo:block>Text</fo:block>
<fo:block id="N35">2.1 Section</fo:block>
<fo:block>Text</fo:block>
<fo:block id="N43">2.2 Section</fo:block>
<fo:block>Text</fo:block>

6.9.1.1.2 アクティブ状態にあるXLINK基準の装飾(スタイリング)

入力サンプル:


<p>Follow this <xlink:mylink xmlns:xlink="http://www.w3.org/1999/xlink"
        xlink:href="http://www.w3.org/TR"
        xlink:title="An Example"
        xlink:show="new"
        xlink:actuate="onRequest">link</xlink:mylink> to access all
TRs of the W3C.</p>

 この例では、[fo:multi-property-sets]のシリーズを含む[fo:basic-link]は、アクティブ状態に依存して様々な色やテキスト装飾を記述し、[fo:basic-link]周辺にあるラッパーは、[fo:multi-property-sets]に適したそれらを持つ[fo:multi-properties]のプロパティをマージする為に許容します。

XSL Stylesheet:


<?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="xlink:mylink" xmlns:xlink="http://www.w3.org/1999/xlink">
    <xsl:variable name="show"><xsl:value-of select="@xlink:show"/>
    </xsl:variable>
     <fo:multi-properties text-decoration="underline">
        <fo:multi-property-set active-state="link" color="blue"/>
        <fo:multi-property-set active-state="visited" color="red"/>
        <fo:multi-property-set active-state="active" color="green"/>
        <fo:multi-property-set active-state="hover" text-decoration="blink"/>
        <fo:multi-property-set active-state="focus" color="yellow"/>
        <fo:wrapper color="merge-property-values()"
                    text-decoration="merge-property-values()">
              <fo:basic-link external-destination="http://www.w3.org/TR"
                              show-destination="{$show}">
                  <xsl:attribute name="role">
                      <xsl:value-of select="@xlink:title"/>
                  </xsl:attribute>
                  <xsl:apply-templates/>
              </fo:basic-link>
        </fo:wrapper>
      </fo:multi-properties>
</xsl:template>

</xsl:stylesheet>

結果インスタンス:[fo: namespace]における要素と属性


<fo:block>Follow this
  <fo:multi-properties text-decoration="underline">
    <fo:multi-property-set active-state="link" color="blue">
    </fo:multi-property-set>
    <fo:multi-property-set active-state="visited" color="red">
    </fo:multi-property-set>
    <fo:multi-property-set active-state="active" color="green">
    </fo:multi-property-set>
    <fo:multi-property-set active-state="hover" text-decoration="blink">
    </fo:multi-property-set>
    <fo:multi-property-set active-state="focus" color="yellow">
    </fo:multi-property-set>
    <fo:wrapper color="merge-property-values()"
      text-decoration="merge-property-values()">
      <fo:basic-link external-destination="http://www.w3.org/TR"
        show-destination="new" role="An Example">link
      </fo:basic-link>
    </fo:wrapper>
  </fo:multi-properties> to access all
TRs of the W3C.
</fo:block>

6.9.2 [ fo:basic-link ]

一般的な利用法

 [fo:basic-link]は、単独のターゲットリンクのシンプルな単独の方向の開始リソースを表現する為に利用されます。そのオブジェクトは、いくつかの含まれている領域上でクリックする事によって目的のリソースを横断する事を許容します。

領域

 [fo:basic-link]フォーマット化オブジェクトは、1つ以上の通常インライン領域を生成します。その[fo:basic-link]は、通常ブロック領域を伴うこれらの領域と[fo:basic-link]の子によって返されるいくつかの[page-level-out-of-line]領域といくつかの[reference-level-out-of-line]領域を返します。

注釈:[fo:basic-link]は、表示領域を作成する[fo:block]に囲まれる事ができます。

制約

 [external-destination]と[internal-destination]プロパティの1つは、記述されるべきです。もし、両方が記述されている場合には、そのシステムは、エラーとして報告されるか、または、[internal-destination]プロパティを利用します。

 領域がない場合は、同一の[fo:basic-link]フォーマット化オブジェクトによって返される1つ以上の通常の子領域を持ちます。

 [fo:list-block]フォーマット化オブジェクトによって返される通常領域のそれぞれの子は、[fo:list-block]の子によって返される通常ブロック領域でなければならず、厳密にスタックされ、厳密に指定されなければいけません。

 [fo:list-block]によって返される通常領域のそれぞれの子は、『4.7.3 Inline-building』に記述される制約を満たさなければいけません。

コンテンツ


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

 追記すると、このフォーマット化オブジェクトは、初期値となる子としてゼロ以上の[fo:markers]のシーケンスを持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.8 Common Border, Padding, and Background Properties
7.12 Common Margin Properties-Inline
7.13 Common Relative Position Properties
7.14.1 alignment-adjust
7.14.2 alignment-baseline
7.14.3 baseline-shift
7.23.5 destination-placement-offset
7.14.5 dominant-baseline
7.23.6 external-destination
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.23.7 indicate-destination
7.23.8 internal-destination
7.20.3 keep-together
7.20.4 keep-with-next
7.20.5 keep-with-previous
7.16.4 line-height
7.23.9 show-destination
7.23.13 target-processing-context
7.23.12 target-presentation-context
7.23.14 target-stylesheet

6.9.3 [ fo:multi-switch ]

一般的な利用法

 [fo:multi-switch]は、([fo:multi-case]内にあるサブツリーごとの)フォーマット化オブジェクトのサブツリー変更の記述を包み、(アクティブとなった[fo:multi-toggle]経由で)他の変更から切り替える操作をします。リスト中にあるアイテムのラベルとボディを含める為に利用されます。

 [fo:multi-switch]の直接の子は、[fo:multi-case]オブジェクトです。単独の[fo:multi-case]に限っては、1回で見える場合があります。ユーザーは、利用可能なマルチケース間で切り替える場合があります。

 それぞれの[fo:multi-case]は、1つ以上の[fo:multi-toggle]オブジェクトを含む場合があり、それは、[fo:multi-switch]の切り替えをする[fo:multi-case]を操作します。

※注釈:[fo:multi-switch]は、[table-of-content]ビュー、組み込みリンクターゲットビュー、一般化された次や前のビュー(階層上の[multi-layered]でさえ)など多くの対話的なタスクで利用される事が可能です。その後は、他の文書中への「次」「前」リンクによってHTMLでも今日通常操作され、ユーザーが移動する事を決めればいつでも再配置する文書に効力があります。

領域

 [fo:multi-switch]フォーマット化オブジェクトは、いかなる領域も生成しません。[fo:multi-switch]フォーマット化オブジェクトは、可視可能な現在の[fo:multi-case]によって返される領域のシーケンスを返します。もし、返される領域がない、可視可能な現在の[fo:multi-case]がない場合にはエラーとなります。

特性展開

 [currently-visible-multi-case]特性は、[starting-state]特性の「show」という値を持つ最初の[fo:multi-case]を参照するその初期値を持ちます。もし、そのような子がない場合には、可視可能な現在の[fo:multi-case]がないという事を示す値を持ちます。[fo:multi-toggle]が作動され、その停止された先祖にあたる[fo:multi-switch]の[currently-visible-multi-case]特性値は、[fo:multi-toggle]の値である「switch-to」によって選択された[fo:multi-case]への参照を変更します。一度[currently-visible-multi-case]特性が、可視可能な現在の[fo:multi-case]がないと示される値を取得すると、この[fo:multi-switch]内の[fo:multi-toggle]を作動させる事を不可能にします。

制約

 [fo:multi-switch]によって返される領域のシーケンスの指定は、可視可能な現在の[fo:multi-case]によって返される領域の指定として同じ指定がなされます。

※注釈:[fo:multi-case]オブジェクトのいくつかの番号は、「starting-state」を「show」に割り当てる場合があります。

 もし、[fo:multi-case]がない場合は、「show」という値を持つ「starting-state」プロパティを持ち、[fo:multi-case]のないコンテンツは、表示されるべきです。

※注釈:マルチケースが表示されない場合には、[fo:multi-switch]全体は、非表示となるでしょう。

コンテンツ


(multi-case+)

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.23.2 auto-restore
7.30.8 id
7.24.1 index-class
7.24.2 index-key

6.9.4 [ fo:multi-case ]

一般的な利用法

 [fo:multi-case]は、親[fo:multi-switch]が、残りを見せるか、隠すか選択する間における変更ごとにフォーマット化オブジェクトのサブツリーを([fo:multi-switch]内で)含める為に利用されます。

領域

 [fo:multi-case]フォーマット化オブジェクトは、いかなる領域も生成しません。その[fo:multi-case]フォーマット化オブジェクトは、[fo:multi-case]の子のそれぞれによって返される領域のシーケンスを連結する事によって生成される領域のシーケンスを返します。

制約

 [fo:multi-case]の子によって返される領域のシーケンスの連結指定は、子としての同じ指定が[fo:multi-case]の下に指定されます。

コンテンツ


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

 [fo:multi-case]は、子を持つ事が許容される場合に限り、それが、[fo:multi-case]が[fo:multi-marker]を含まない場合を除いて[fo:multi-case]の親である[fo:multi-switch]の親の子になる事を許容されます。典型的には、それは、[fo:multi-toggle]を含める事ができ、[fo:multi-case]切り替えを操作します。

 この制限は、再帰的に提供します。

※注釈:例えば、親[fo:multi-switch]が、他の[fo:multi-case]の子である[fo:multi-case]は、外側の[fo:multi-case]の親[fo:multi-switch]を配置する事を許容するであろう子を限定的に持つ事ができます。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.23.10 starting-state
7.23.3 case-name
7.23.4 case-title

6.9.5 [ fo:multi-toggle ]

一般的な利用法

 [fo:multi-toggle]は、(「クリックされた」という実行例において)作動される領域を作る為に利用されるのが典型的で、ある[fo:multi-case]からの他への切り替えの効果を持ちます。[fo:multi-toggle]の「switch-to」プロパティ値は、典型的に切り替える為の[fo:multi-case]の「case-name」プロパティ値と一致します。

領域

 [fo:multi-toggle]フォーマット化オブジェクトは、いかなる領域も生成しません。その[fo:multi-toggle]フォーマット化オブジェクトは、[fo:multi-toggle]の子のそれぞれによって返される領域のシーケンスを連結する事によって生成される領域のシーケンスを返します。[fo:multi-toggle]によって返されたそれぞれの領域は、返される[fo:multi-toggle]上にある値と同じ値を持つ「switch-to」特性を持ちます。

制約

 [fo:multi-toggle]の子によって返される領域のシーケンスの連結指定は、子としての同じ指定が[fo:multi-toggle]の下に指定されます。

 [fo:multi-toggle]によって返された領域の稼働は、停止中の先祖[fo:multi-switch]の「currently-visible-multi-case」の値を変更する事に起因します。(「switch-to」がどのように[fo:multi-case]を選択するのかについては『7.23.11 switch-to』参照)

コンテンツ


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

 [fo:multi-toggle]は、[fo:multi-case]の子孫として許容される場合に限定します。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.23.11 switch-to

6.9.6 [ fo:multi-properties ]

一般的な利用法

 [fo:multi-properties]は、2つ以上のプロパティセットが、与えられたコンテンツの一部が結合される間の切り替えの為に利用されます。

※注釈:[fo:multi-properties]フォーマット化オブジェクトは、例えば、この文書をフォーマットする為に利用されるであろうプロパティのセットを変更する事ができた[visited-state]における「not-yet-visited」状態などの与えられたコンテンツの一部と異なる出現を利用する為に利用されます。デザイナーは、それらが変更されるプロパティを選択する際には注意深く行うべきであり、なぜなら、多くのプロパティ変更は、多くの状況で要求されない場合のテキストの再フローの原因となるからです。「color」や「text-decoratoin」のようなプロパティ変更は、テキストを再フローする要求をしないべきです。

 [fo:multi-properties]フォーマット化オブジェクトの直接の子は、単独の[fo:wrapper]フォーマット化オブジェクトによって続く[fo:multi-property-set]フォーマット化オブジェクトのセットを指示されます。そのプロパティは、[fo:wrapper]上に記述され、[fo:multi-properties]上にある値のマージされた値を取る「merge-property-values()」のセットを指定され、[fo:multi-properties]フォーマット化オブジェクト上に記述された値が提供します。

領域

 [fo:multi-properties]フォーマット化オブジェクトは、いかなる領域も生成しません。その[fo:multi-properties]フォーマット化オブジェクトは、[fo:multi-properties]の子のそれぞれによって返される領域のシーケンスを連結する事によって生成される領域のシーケンスを返します。

制約

 [fo:multi-properties]の子によって返される領域のシーケンスの連結指定は、子としての同じ指定が[fo:multi-properties]の下に指定されます。

コンテンツ


(multi-property-set+,wrapper)

 プロパティは、プロパティが、「merge-property-values()」の値を持つと記述されるマージされた値を取ります。この関数は、[fo:multi-properties]の直接の子である[fo:wrapper]上に提供される際に属する[fo:multi-property-set]上の定義を適用するプロパティにマージします。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties

6.9.7 [ fo:multi-property-set ]

一般的な利用法

 [fo:multi-property-set]準フォーマット化オブジェクトは、この[fo:multi-property-set]の親の子である[fo:wrapper]の子フローオブジェクトの表現の変更を提供する為に利用される事が出来るフォーマット化プロパティのセットの変更を記述する為に利用されます。

領域

 [fo:multi-property-set]フォーマット化オブジェクトは、いかなる領域も生成しません。それは単純に式によるアクセスされた場合の特性のセットを保持します。

制約

 なし。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.30.8 id
7.24.1 index-class
7.24.2 index-key
7.23.1 active-state


 6.10 インデックス化のオブジェクト書式
  6.10.1 概論
   6.10.1.1 例・サンプル
    6.10.1.1.1 インデックスキー結合オブジェクト書式 Associating Index Keys with Formatting Objects
    6.10.1.1.2 インデックス構築 Building the Index
   6.10.1.2 インデックス化処理例 Processing the Example Index
    6.10.1.2.1 [ merge-pages-across-index-key-references="leave-separate" ]
    6.10.1.2.2 [ merge-pages-across-index-key-references="merge" ]
   6.10.1.3 インデックス例
  6.10.2 [ fo:index-page-number-prefix ]
  6.10.3 [ fo:index-page-number-suffix ]
  6.10.4 [ fo:index-range-begin ]
  6.10.5 [ fo:index-range-end ]
  6.10.6 [ fo:index-key-reference ]
  6.10.7 [ fo:index-page-citation-list ]
  6.10.8 [ fo:index-page-citation-list-separator ]
  6.10.9 [ fo:index-page-citation-range-separator ]

6.10 インデックス化におけるフォーマット化オブジェクト

6.10.1 概要

 インデックス化におけるフォーマット化オブジェクトとプロパティは、[back-of-the-book]インデックス化内での利用のようにフォーマット化オブジェクトツリー中のアイテム仕様を伴って結合されたページ番号のリストの生成を利用可能にします。このようにこれらには、オブジェクトとプロパティという2種類があり、これらは、ツリー全体のフォーマット化オブジェクトを持つインデックスキーと固有のインデックスキーの存在を持つフォーマット化オブジェクトから得られる領域であるページにおいてページ参照構成をインデックスする[back-of-the-book]での利用におけるフォーマット化オブジェクトを結びつけます。更にフォーマット化プロパティとオブジェクトは、これらのページ参照が範囲内でグループ化され、編集される中でその手法を操作します。

 フォーマット化オブジェクトを伴うインデックスキーを結びつけるためのプロパティには[index-key]と[index-class]という2つがあります。これら2つのプロパティは、たいてい全てのフォーマット化オブジェクトに適用されます。

 系統立てられたインデックスキー範囲を結びつけるための2つのフォーマット化オブジェクト[fo:index-range-begin]と[fo:index-range-end]があります。

 固有のインデックスキーを伴って結合される引用されたページアイテムは、[fo:index-key-reference]利用中に条件が満たされます。その親、[fo:index-page-citation-list]は、これらをグループ化し、編集します。追記すると生成されたページ番号リストの構成形式は、フォーマット化オブジェクト[fo:index-page-number-prefix]、[fo:index-page-number-suffix]、[fo:index-page-citation-list-separator]と[fo:index-page-citation-range-separator]を利用中に定義され、操作される事が可能です。インデックス語句ごとの[back-of-the-book]インデックスにおいては、その文書中の語句の出現それぞれを識別する為に利用されるインデックスキーを持ちます。[back-of-the-book]インデックスでは、インデックスキーが利用されるごとにそれらが少なくとも1つの[fo:index-key-reference]となります。例えば、


<fo:block>Eiffel Tower
  <fo:index-page-citation-list>
    <fo:index-key-reference ref-index-key="Eiffel Tower;;"/>
  </fo:index-page-citation-list>
</fo:block>

 生成されたページ番号リストのこの構成と内容は、更にインデックス入力情報の異なる種類を識別したり、文書中の異なる部分にある説明の入力情報を識別する為のインデックスクラスの利用を通して操作される事が可能です。例えば、異なるクラスは、通常の入力上の図におけるインデックス入力情報を識別したり、たとえば他のセクションからの入力情報から序章やページ範囲の構成を操作する為にメインとなるボディといったあるセクション内の入力情報を識別する為に利用されます。[fo:index-page-number-prefix]と[fo:index-page-number-suffix]は、たとえば、インデックス内にあるページ番号の周囲にある"["、"]"(開始ブラケットと終了ブラケット)という付加的なテキストを記述します。

※注釈:インデックス化におけるフォーマット化オブジェクトは、独立したインデックスキーにおけるページ番号のリスト生成の為の仕組みに限定して提供します。すべての入力情報の識別、それらの整列、そしてフォーマット化オブジェクトの作成、たとえば、[fo:block]、テキスト、たとえば、入力における「エッフェル塔」、参照する妥当なインデックスキー、たとえば「エッフェル塔;;」といったインデックス入力情報の組み立ては、一般的なスタイルシートメカニズムによってなされます。
6.10.1.1 例

 次に続く文書例は、インデックス化プロセスと様々なオプションがインデックスの記述をどのようにして変更するかを表現するこのセクション全体に利用されます。

 このソース文書は、[back-of-the-book]インデックス入力情報を表現する為にマークアップに典型的なXMLを利用します。文書は、序章、4つの章、用語解説、インデックスで構成します。この文書におけるフォーマット化スタイルは、序章、章、用語解説全てが以下に示すような異なるページ番号を利用します。

ComponentNumbered pagesOrdinal page numbers
Title Page Recto/Verson/a1-2
Table of Contentsiii/iv3/4
List of Figuresv/vi5/6
Prefacevii/x7-10
Chapter 11-3/411-13/14
Chapter 25-12 (pg 4 is blank)15-22
Chapter 313-17/1823-27/28
Chapter 419-24 (pg 18 is blank)29-34
GlossaryG-1 to G-435-38
IndexI-1 to ...39-...

 用語解説内で利用される例えば「G1」のような各種の要素から成るページ番号は、[fo:folio-prefix]利用中に作成されます。


<fo:page-sequence id="glossary" initial-page-number="1">
  <fo:page-number-folio-prefix>
    <fo:inline>G-</fo:inline>
  </fo:page-number-folio-prefix>
  <fo:flow>...</fo:flow>
</fo:page-sequence>

 文書全体を通して、エッフェル塔という用語インデックスの番号があります。この例は、ソース文書の語彙にある系統立てられたマークアップを利用します。外部インデックス文書のような他のメカニズムは、同等の長さの正しいフォーマット化オブジェクトが生成される事をサポートさせる事もできます。このインデックス用語例は、最優先、第2候補、第3候補となる場合や典型的な[multi-level]インデックスが反映される場合もあります。最優先の入力情報は、補助的な第2候補を持つ場合があります。第2候補入力情報は、補助的な第3候補を持つ場合があります。この文書において最も低レベルの入力情報に限っては、([indexterm]要素が、セパレータ、この例では、それらの間にある「;」を伴う第1候補、第2候補、第3候補用語値の結合によってインデックスキー値に単純に翻訳される事ができる)ページ番号を伴って結合されます。

6.10.1.1.1 フォーマット化オブジェクトを伴うインデックスキーの結合

 インデックスを生成する最初のステップは、フォーマット化オブジェクトのあるソース文書からインデックス語句情報を転送する事です。それは、インデックス中に現れるページを決めるであろうフォーマット化オブジェクトにあるこの情報の位置です。

 「id」プロパティを適用するいくつかのフォーマット化オブジェクトは、「index-key」プロパティを持つ事もできます。「index-key」を伴うフォーマット化オブジェクトは、一致するインデックスキーと結合されたテキストのある場所や範囲の定義を記述します。

 この例を簡素化すると、ポイントアンカーは、(他の目的のために利用したフォーマット化オブジェクト上にある「index-key」を配置する事とは対照的に)それぞれの語句の為に生成されるでしょう。

 次に続くテンプレートを考察します。


<xsl:template match="indexterm[@significance='preferred']"
     priority="100">
  <fo:wrapper>
    <xsl:attribute name="index-key">
      <xsl:value-of select="primary"/>
      <xsl:text>;</xsl:text>
      <xsl:value-of select="secondary"/>
      <xsl:text>;</xsl:text>
      <xsl:value-of select="tertiary"/>
      <xsl:text>;preferred</xsl:text>
    </xsl:attribute>
  </fo:wrapper>
</xsl:template>

<xsl:template match="indexterm[@class='startofrange']"
     priority="75">
  <fo:index-range-begin id="{@id}"/>
    <xsl:attribute name="index-key">
      <xsl:value-of select="primary"/>
      <xsl:text>;</xsl:text>
      <xsl:value-of select="secondary"/>
      <xsl:text>;</xsl:text>
      <xsl:value-of select="tertiary"/>
    </xsl:attribute>
</xsl:template>

<xsl:template match="indexterm[@class='endofrange']"
     priority="75">
  <fo:index-range-end ref-id="{@startref}">
  </fo:index-range-end>
</xsl:template>

<xsl:template match="figure/indexterm" priority="50">
  <fo:wrapper>
    <xsl:attribute name="index-key">
      <xsl:value-of select="primary"/>
      <xsl:text>;</xsl:text>
      <xsl:value-of select="secondary"/>
      <xsl:text>;</xsl:text>
      <xsl:value-of select="tertiary"/>
      <xsl:text>;figure</xsl:text>
    </xsl:attribute>
  </fo:wrapper>
</xsl:template>

<xsl:template match="indexterm">
  <fo:wrapper>
    <xsl:attribute name="index-key">
      <xsl:value-of select="primary"/>
      <xsl:text>;</xsl:text>
      <xsl:value-of select="secondary"/>
      <xsl:text>;</xsl:text>
      <xsl:value-of select="tertiary"/>
    </xsl:attribute>
  </fo:wrapper>
</xsl:template>

 このインデックス語句例に適用されるこれらのテンプレートは、例えばフォーマット化オブジェクトの間に間隔をおいて配置されると想定されるインデックスキーのセットを生成するでしょう。


[E  9] <fo:wrapper index-key="Eiffel Tower;;"/>
[F 10] <fo:wrapper index-key="Eiffel Tower;;"/>
[G 11] <fo:wrapper index-key="Eiffel Tower;;"/>
[H 13] <fo:index-range-begin id="ei.idx" index-key="Eiffel Tower;;"/>
[Y 15] <fo:wrapper index-key="Eiffel Tower;;"/>
[C 15] <fo:wrapper index-key="Eiffel Tower;;;figure"/>
[K 16] <fo:index-range-end ref-id="ei.idx"/>
[L 18] <fo:index-range-begin id="ei2.idx" index-key="Eiffel Tower;;"/>
[A 19] <fo:wrapper index-key="Eiffel Tower;;;preferred"/>
[O 21] <fo:index-range-end ref-id="ei2.idx"/>
[B 23] <fo:wrapper index-key="Eiffel Tower;;;preferred"/>
[D 25] <fo:wrapper index-key="Eiffel Tower;;;figure"/>
[P 27] <fo:wrapper index-key="Eiffel Tower;;"/>
[Q 29] <fo:wrapper index-key="Eiffel Tower;;"/>
[R 30] <fo:wrapper index-key="Eiffel Tower;;"/>
[S 31] <fo:wrapper index-key="Eiffel Tower;;"/>
[T 32] <fo:wrapper index-key="Eiffel Tower;;"/>
[U 33] <fo:wrapper index-key="Eiffel Tower;;"/>
[V 34] <fo:wrapper index-key="Eiffel Tower;;"/>
[X 37] <fo:wrapper index-key="Eiffel Tower;;"/>

 上記リストでは、ラベルは、文章の含まれているそれぞれのフォーマット化オブジェクトと順序を表すページ番号(以下参照)の為に追加されます。これらは、参照と読み込みをさせる事を通して保持される簡単な例です。

 これらのフォーマット化オブジェクトは、文書全体のスプレッドで、インデックスページ参照ごとに要求されるフォーマット化オブジェクトツリーに現れています。もちろん、実際の文書中では、もっと多くのこれらのフォーマット化オブジェクトがあるでしょうし、インデックス中に1つ以上の複数の語句が現れるでしょう。

6.10.1.1.2 インデックス構築

 適切に照合され、整列されたインデックスを組み立てるという事は、一般的なスタイルシートメカニズムを利用する事を遂行されるという事です。これらの詳細については、ここでは考慮されていません。

※注釈:(入力情報を、入力情報も)参照を横断するインデックスは、ページ番号を伴って結合されず、その為、それらは、インデックス化フォーマット化オブジェクトを利用しません。

 このセクションは、フォーマット化オブジェクトが、照合し、整列する為に利用したインデックス中のそれぞれの入力を結合する引用ページ番号のリストを記述します。インデックスキーによって参照されたフォーマット化オブジェクトは、ページ分割された領域ツリーからページのセットを参照する引用されたページアイテムのセットを生成する為に利用されます。これらは、引用されたページアイテムが、照合、整列され、引用されたページアイテム範囲を可能な限り折りたたみ、その際に最後のフォーマット化プロセスが適用されます。インデックスキーによってフォーマット化オブジェクトを参照するものとしてインデックス化プロセス開始は、範囲内のこれらのフォーマット化オブジェクト上にある現実のページの領域に移動し、その際に、1度ページのリストは、セットとフォーマット化されたページ番号と範囲のリストにある結果範囲を縮小しています。

 [fo:index-page-citation-list]フォーマット化オブジェクトは、共にグループインデックスキー参照に利用されます。その最終的な効果は、ページ番号と範囲のリストがフォーマット化され作成される事です。引用されたページアイテムのセットを開始は、利用する[fo:index-key-reference]フォーマット化オブジェクトを作成します。それぞれの[fo:index-key-reference]フォーマット化オブジェクトは、その出現を持つフォーマット化オブジェクト上のページにおける引用されたページアイテムを生成する為の単独のインデックスキーを利用します。[fo:index-key-reference]は、またこれらのページ番号におけるフォーマット化プロパティを提供します。単独の[fo:index-page-citation-list]フォーマット化オブジェクトから生成された引用されたページアイテムの全ては、一緒に整列、照合されます。

 この例においては、そのフォーマット化スタイルは、太字のページ番号を利用する事によってアイテムの重要な説明を持つページを識別し、象形に現れるインデックスキーであるページ番号を角かっこで囲みます。次に続くフォーマット化オブジェクトはこれを遂行します。


<fo:index-page-citation-list
   merge-sequential-page-numbers="merge"/>
  <fo:index-key-reference ref-index-key="Eiffel Tower;;;preferred"
         font-weight="bold"
         id="XB"/>
  <fo:index-key-reference ref-index-key="Eiffel Tower;;;figure"
         font-style="italic"
         id="XI">
    <fo:index-page-number-prefix>
      <fo:inline>[</fo:inline>
    </fo:index-page-number-prefix>
    <fo:index-page-number-suffix>
      <fo:inline>]</fo:inline>
    </fo:index-page-number-suffix>
  </fo:index-key-reference>
  <fo:index-key-reference ref-index-key="Eiffel Tower;;"
                 id="XX"/>
</fo:index-page-citation-list>

 このインデックスページ引用リストでは、3つの異なるページ引用のグループが、3つの異なる参照によって表現されますが、関連したキーは、ページ引用の単独の結果リストにマージされます。語句例に適用されるこれらのテンプレートは、例えばフォーマット化オブジェクトの間に間隔をおいて配置されると想定されるインデックスキーのセットを生成するでしょう。

※注釈:[fo:index-key-reference]フォーマット化オブジェクト上にある[id]値は、下に続くテキストの中にある参照目的のためにあります。それらは、インデックス化には必要ではありません。

6.10.1.2 インデックス例処理

 例にあるアイテムがどのようにインデックスするかを記述するこのセクションは、フォーマット化されたページ番号とページ範囲の最終リストを生成する為に処理されます。

 例の目的においては、次に続くインデックスクラスが利用されるものと仮定します。序論は、[index-class="preface"]に記述、すべての章は、[index-class="chapter"]に記述、用語解説は、[index-class="glossary"]に記述。

 それぞれの[fo:index-key-reference]は、1ページ以上または(領域ツリー中の[page-viewport-areas]が参照されたフォーマット化オブジェクトによって生成された子孫領域として持つ)ページ範囲を参照します。条件を満たした領域ツリーにあるそれぞれの[page-viewport-area]は、序数のページ番号と呼ばれる順序を表す番号を持ちます。

 この例では、次に続くページのセットは、3つの[fo:index-key-reference]オブジェクトによって参照されます。

KeyOrdinal page numbers
Eiffel Tower;;;preferred19, 23
Eiffel Tower;;;figure15, 25
Eiffel Tower;;9, 10, 11, 13-16, 15, 18-21, 27, 29, 30, 31, 32, 33, 34, 37
※注釈:順番を表すページ番号9を「ⅸ」としてフォーマットし、順番を表すページ番号37を「G-3」としてフォーマットするフォーマット化の大きな変化は、後に考慮されるでしょう。

 各[fo:index-key-reference]内部、ページ範囲は、独立したページのシーケンスと分割されたページが拡張され、『6.10.6 fo:index-key-reference』内に記述されているように結果内にある重複は削除されます。

KeyOrdinal page numbers
Eiffel Tower;;;preferred19, 23
Eiffel Tower;;;figure15, 25
Eiffel Tower;;9, 10, 11, 13, 14, 15, 16, 18, 19, 20, 21, 27, 29, 30, 31, 32, 33, 34, 37

 [fo:index-page-citation-list]によって処理される目的においては、それぞれの引用されたページアイテムは、順番を表すページ番号、[index-key-reference]によって参照されたフォーマット化オブジェクト、参照されたフォーマット化オブジェクトのインデックスクラス、(上の例にある割り当てられたID値によって示された)ページを参照する[fo:index-key-reference]の4つの組を熟考される事が可能です。


[A] (19, fo:wrapper,           chapter,  XB)
[B] (23, fo:wrapper,           chapter,  XB)
[C] (15, fo:wrapper,           chapter,  XI)
[D] (25, fo:wrapper,           chapter,  XI)
[E] ( 9, fo:wrapper,           preface,  XX)
[F] (10, fo:wrapper,           preface,  XX)
[G] (11, fo:wrapper,           chapter,  XX)
[H] (13, fo:index-range-begin, chapter,  XX)
[I] (14, null,                 chapter,  XX)
[J] (15, null,                 chapter,  XX)
[K] (16, fo:index-range-end,   chapter,  XX)
[L] (18, fo:index-range-begin, chapter,  XX)
[M] (19, null,                 chapter,  XX)
[N] (20, null,                 chapter,  XX)
[O] (21, fo:index-range-end,   chapter,  XX)
[P] (27, fo:wrapper,           chapter,  XX)
[Q] (29, fo:wrapper,           chapter,  XX)
[R] (30, fo:wrapper,           chapter,  XX)
[S] (31, fo:wrapper,           chapter,  XX)
[T] (32, fo:wrapper,           chapter,  XX)
[U] (33, fo:wrapper,           chapter,  XX)
[V] (34, fo:wrapper,           chapter,  XX)
[X] (37, fo:wrapper,           glossary, XX)

※注釈:範囲のケースでは、範囲内の最初のページは、範囲の開始を結合し、最後のページは、範囲の末尾を結合します。中間のページは、ページ上の固有の場所を参照するのではなく、それらは、全体としてのページを参照します。

 次のセクションは、[merge-pages-across-index-key-references]プロパティが「leave-separate」という値を持つ時に[fo:index-page-citation-list]の処理におけるステップの抽象的な概念を記述します。『6.10.1.2.2 merge-pages-across-index-key-references="merge"』は、[merge-pages-across-index-key-references]が「merge」という値を持つ時の同様のステップです。

6.10.1.2.1 merge-pages-across-index-key-references="leave-separate"

 [fo:index-page-citation-list](『6.10.7 fo:index-page-citation-list』参照)の処理であるステップAは、子[fo:index-key-reference]全てから引用されたページアイテムを照合し、整列します。[merge-pages-across-index-key-references]は、同一ページへの多数の参照が保持されるかどうかを操作します。

 次に続く組のセットは、[merge-pages-across-index-key-references]が「leave-separate」という値を持つ場合を示します。例えば、順番を表すページ番号19は、それを参照する[fo:index-key-reference]ごとに1回、(つまり、下の例では、計)2回表示されます。


[E] ( 9, fo:wrapper,           preface,  XX)
[F] (10, fo:wrapper,           preface,  XX)
[G] (11, fo:wrapper,           chapter,  XX)
[H] (13, fo:index-range-begin, chapter,  XX)
[I] (14, null,                 chapter,  XX)
[J] (15, null,                 chapter,  XX)
[C] (15, fo:wrapper,           chapter,  XI)
[K] (16, fo:index-range-end,   chapter,  XX)
[L] (18, fo:index-range-begin, chapter,  XX)
[A] (19, fo:wrapper,           chapter,  XB)
[M] (19, null,                 chapter,  XX)
[N] (20, null,                 chapter,  XX)
[O] (21, fo:index-range-end,   chapter,  XX)
[B] (23, fo:wrapper,           chapter,  XB)
[D] (25, fo:wrapper,           chapter,  XI)
[P] (27, fo:wrapper,           chapter,  XX)
[Q] (29, fo:wrapper,           chapter,  XX)
[R] (30, fo:wrapper,           chapter,  XX)
[S] (31, fo:wrapper,           chapter,  XX)
[T] (32, fo:wrapper,           chapter,  XX)
[U] (33, fo:wrapper,           chapter,  XX)
[V] (34, fo:wrapper,           chapter,  XX)
[X] (37, fo:wrapper,           glossary, XX)

 ステップBは、もし、[merge-sequential-page-numbers]が「merge」という値を持っていれば行われます。それは、範囲における3以上の順次的なページ(『6.10.7 fo:index-page-citation-list』参照)を参照する引用されたページアイテムをマージして構成します。

 もし、[merge-ranges-across-index-key-references]が「leave-separate」という値を持つ場合、その範囲は、以下に示すようになるでしょう。(範囲は、範囲の開始である最初と範囲の終端である2番目の2組のペアによって示されます)


[E] ( 9,   fo:wrapper,            preface,  XX)
[F] (10,   fo:wrapper,            preface,  XX)
[G] (11,   fo:wrapper,            chapter,  XX)
([H] (13,  fo:index-range-begin,  chapter,  XX), [K] (16, fo:index-range-end,    chapter,  XX))
[C] (15,   fo:wrapper,            chapter,  XI)
([L] (18,  fo:index-range-begin,  chapter,  XX), [O] (21, fo:index-range-end,    chapter,  XX))
[A] (19,   fo:wrapper,            chapter,  XB)
[B] (23,   fo:wrapper,            chapter,  XB)
[D] (25,   fo:wrapper,            chapter,  XI)
[P] (27,   fo:wrapper,            chapter,  XX)
([Q] (29,  fo:wrapper,            chapter,  XX), [V] (34, fo:wrapper,            chapter,  XX))
[X] (37,   fo:wrapper,            glossary, XX)

 [merge-ranges-across-index-key-references]が「merge」という値を持つ場合、その範囲は(次のようになるでしょう)


[E] ( 9,   fo:wrapper,            preface,  XX)
[F] (10,   fo:wrapper,            preface,  XX)
[G] (11,   fo:wrapper,            chapter,  XX)
([H] (13,  fo:index-range-begin,  chapter,  XX), [K] (16, fo:index-range-end,    chapter,  XX))
([L] (18,  fo:index-range-begin,  chapter,  XX), [O] (21, fo:index-range-end,    chapter,  XX))
[B] (23,   fo:wrapper,            chapter,  XB)
[D] (25,   fo:wrapper,            chapter,  XI)
[P] (27,   fo:wrapper,            chapter,  XX)
([Q] (29,  fo:wrapper,            chapter,  XX), [V] (34, fo:wrapper,            chapter,  XX))
[X] (37,   fo:wrapper,            glossary, XX)

 ステップCは、引用されたページアイテムと実際のページ番号と範囲としての引用されたページアイテム範囲のフォーマット化という構成であり、いくつかのインデックスページ番号前置詞と後置詞、妥当なインデックスページ引用リストセパレータとインデックスページ引用範囲セパレータ利用を考慮に入れます。

6.10.1.2.2 merge-pages-across-index-key-references="merge"

 [merge-pages-across-index-key-references]が「merge」という値を持つ際のステップAとBを次に続けて示します。

 ステップAでは、組[C]が組[J]を伴ってマージされ、組[M]が組[A]を伴ってマージされます。


[E] ( 9, fo:wrapper,           preface,  XX)
[F] (10, fo:wrapper,           preface,  XX)
[G] (11, fo:wrapper,           chapter,  XX)
[H] (13, fo:index-range-begin, chapter,  XX)
[I] (14, null,                 chapter,  XX)
[C] (15, fo:wrapper,           chapter,  XI)
[K] (16, fo:index-range-end,   chapter,  XX)
[L] (18, fo:index-range-begin, chapter,  XX)
[A] (19, fo:wrapper,           chapter,  XB)
[N] (20, null,                 chapter,  XX)
[O] (21, fo:index-range-end,   chapter,  XX)
[B] (23, fo:wrapper,           chapter,  XB)
[D] (25, fo:wrapper,           chapter,  XI)
[P] (27, fo:wrapper,           chapter,  XX)
[Q] (29, fo:wrapper,           chapter,  XX)
[R] (30, fo:wrapper,           chapter,  XX)
[S] (31, fo:wrapper,           chapter,  XX)
[T] (32, fo:wrapper,           chapter,  XX)
[U] (33, fo:wrapper,           chapter,  XX)
[V] (34, fo:wrapper,           chapter,  XX)
[X] (37, fo:wrapper,           glossary, XX)

 ステップBは、もし、[merge-sequential-page-numbers]が「leave-separate」という値を持つ場合、範囲は(次のようになるでしょう)


[E] ( 9,   fo:wrapper,           preface,  XX)
[F] (10,   fo:wrapper,           preface,  XX)
[G] (11,   fo:wrapper,           chapter,  XX)
[H] (13,   fo:index-range-begin, chapter,  XX)
[I] (14,   null,                 chapter,  XX)
[C] (15,   fo:wrapper,           chapter,  XI)
[K] (16,   fo:index-range-end,   chapter,  XX)
[L] (18,   fo:index-range-begin, chapter,  XX)
[A] (19,   fo:wrapper,           chapter,  XB)
[N] (20,   null,                 chapter,  XX)
[O] (21,   fo:index-range-end,   chapter,  XX)
[B] (23,   fo:wrapper,           chapter,  XB)
[D] (25,   fo:wrapper,           chapter,  XI)
[P] (27,   fo:wrapper,           chapter,  XX)
([Q] (29,  fo:wrapper,           chapter,  XX), [V] (34, fo:wrapper,           chapter,  XX))
[X] (37,   fo:wrapper,           glossary, XX)

 [merge-ranges-across-index-key-references]が「merge」という値を持つ場合、その範囲は(次のようになるでしょう)


[E] ( 9,   fo:wrapper,           preface,  XX)
[F] (10,   fo:wrapper,           preface,  XX)
[G] (11,   fo:wrapper,           chapter,  XX)
([H] (13,  fo:index-range-begin, chapter,  XX), [K] (16, fo:index-range-end,   chapter,  XX))
([L] (18,  fo:index-range-begin, chapter,  XX), [O] (21, fo:index-range-end,   chapter,  XX))
[B] (23,   fo:wrapper,           chapter,  XB)
[D] (25,   fo:wrapper,           chapter,  XI)
[P] (27,   fo:wrapper,           chapter,  XX)
([Q] (29,  fo:wrapper,           chapter,  XX), [V] (34, fo:wrapper,           chapter,  XX))
[X] (37,   fo:wrapper,           glossary, XX)

6.10.1.3 インデックス例

 ページ番号の最後のセットは、[merge-pages-across-index-key-references]、[ merge-ranges-across-index-key-references]、[index-class]特性の値に依存して入力するインデックス例に現れるでしょう。もし、例にあるケースのように異なる値を持つ序章、章、用語解説からのインデックス語句である場合、生成されたページ番号リストにおける結果は(次のようになります)

merge-pages-across-index-key-references
/
merge-ranges-across-index-key-references
Resulting index pages
leave-separate/leave-separateix, x, 1, 3-6, [5], 8-11, 9, 13, [15], 17, 19-24, G-3
leave-separate/mergeix, x, 1, 3-6, 8-11, 13, [15], 17, 19-24, G-3
merge/leave-separateix, x, 1, 3, 4, [5], 6, 8, 9, 10, 11, 13, [15], 17, 19-24, G-3
merge/mergeix, x, 1, 3-6, 8-11, 13, [15], 17, 19-24, G-3

 もし、序章、章、巻末ページからのインデックス語句が、[index-class]と同一である場合:

merge-pages-across-index-key-references
/
merge-ranges-across-index-key-references
Resulting index pages
leave-separate/leave-separateix-1, 3-6, [5], 8-11, 9, 13, [15], 17, 19-24, G-3
leave-separate/mergeix-1, 3-6, 8-11, 13, [15], 17, 19-24, G-3
merge/leave-separateix-1, 3, 4, [5], 6, 8, 9, 10, 11, 13, [15], 17, 19-24, G-3
merge/mergeix-1, 3-6, 8-11, 13, [15], 17, 19-24, G-3

6.10.2 [ fo:index-page-number-prefix ]

一般的な利用法

 [fo:index-page-number-prefix]フォーマット化オブジェクトは、[fo:index-key-reference]によって作成された引用されたページアイテムにおける静的な前置詞を記述します。

領域

 [fo:index-page-number-prefix]フォーマット化オブジェクトは、直接的にいかなる領域も生成しません。その子は、検索され、引用されたページアイテムと引用されたページアイテム範囲をフォーマットする際に[fo:index-page-citation-list]によって利用されます。

制約

 なし。

コンテンツ


(#PCDATA|%inline;)*

6.10.3 [ fo:index-page-number-suffix ]

一般的な利用法

 [fo:index-page-number-suffix]フォーマット化オブジェクトは、[fo:index-key-reference]によって作成された引用されたページアイテムにおける静的な後置詞を記述します。

領域

 [fo:index-page-number-suffix]フォーマット化オブジェクトは、直接的にいかなる領域も生成しません。その子は、検索され、引用されたページアイテムと引用されたページアイテム範囲をフォーマットする際に[fo:index-page-citation-list]によって利用されます。

制約

 なし。

コンテンツ


(#PCDATA|%inline;)*

6.10.4 [ fo:index-range-begin ]

一般的な利用法

 [fo:index-range-begin]フォーマット化オブジェクトは、インデックスキーを結合させる「インデックスされた範囲」の開始位置を示す為に利用されます。そのインデックス範囲は、[fo:index-range-end]と一致する事によって終了されます。

 この[fo:index-range-begin]に(文書命令の中で)次に続くフォーマット化オブジェクトが[fo:index-range-end]と一致するまでは、この[fo:index-range-begin]の影響するインデックス範囲の下にある事を考慮されます。

領域

 [fo:index-range-begin]フォーマット化オブジェクトは、いかなる領域も生成しません。

制約

 各[fo:index-range-begin]フォーマット化オブジェクトは、「id」と「index-key」の両方を記述しなければいけません。

 [fo:index-range-end]の「ref-id」プロパティが[fo:index-range-begin]上の「id」プロパティと同じ値を持つ場合、各[fo:index-range-begin]と[fo:index-range-end]のペアは、ペアとの一致を考慮します。

 文書命令中でこの[fo:index-range-begin]に続くそれらは、ペアと一致する形式を伴った[fo:index-range-end]としなければいけません。もし、[fo:index-range-end]がない場合には、エラーとなり、条件を満たすには、文書の終りで[fo:index-range-end]と一致するのと等価であると仮定して復旧すべきです。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.30.8 id
7.24.2 index-key
7.24.1 index-class

6.10.5 [ fo:index-range-end ]

一般的な利用法

 [fo:index-range-end]は、[fo:index-range-begin]と一致する事によって開始された「インデックスされた範囲」の終わりを示すために利用されます。詳細については『6.10.4 fo:index-range-begin』参照。

領域

 [fo:index-range-end]フォーマット化オブジェクトは、いかなる領域も生成しません。

制約

 文書命令中で[fo:index-range-end]に先行するのは、その形式がペアと一致する[fo:index-range-begin]でなければいけません。もし、[fo:index-range-begin]がない場合には、エラーとなり、条件を満たすためには、[fo:index-range-end]を無視する事によって復旧すべきです。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.30.13 ref-id

6.10.6 [ fo:index-key-reference ]

一般的な利用法

 [fo:index-key-reference]フォーマット化オブジェクトは、記述された「index-key」の全ての出現において引用されたページアイテムのセットを生成する為に利用されます。

 「引用されたページアイテム」には、次の情報を含んでいるコレクションとしての名称があります。

領域

 [fo:index-key-reference]フォーマット化オブジェクトは、いかなる領域も生成しません。[fo:index-page-citation-list]を含んでいるフォーマット化オブジェクトは、生成されたページ番号のリストを作成する為に含まれる引用されたページアイテムを利用します。

制約

 各[fo:index-key-reference]フォーマット化オブジェクトは、[fo:index-key-reference]の「ref-index-key」プロパティと一致する「index-key」値を持つフォーマット化オブジェクトツリーにある1つ以上のフォーマット化オブジェクトを識別します。もし、そのようなフォーマット化オブジェクトがない場合にはエラーとなります。条件を満たすには、[fo:index-key-reference]を無視する事によってこのエラーから復旧すべきです。

 もし、[fo:index-range-begin]上に一致する「index-key」が出現する場合には、[fo:index-range-begin]の影響するインデックス範囲の下でフォーマット化オブジェクトによって生成された領域を含む子孫であるすべてのページは、生成された引用されたページアイテムによって参照されます。

 「index-key」との一致を含むそれぞれのフォーマット化オブジェクト、引用されたページアイテムは、フォーマット化オブジェクトから返される領域を含む子孫であるページごとに生成されます。これら引用されたページアイテムのインデックスクラスは、そのフォーマット化オブジェクトから取得します。もし、フォーマット化オブジェクトから返される領域がない場合には、引用されたページアイテムは、次に続くフォーマット化オブジェクトから返される最初の領域を含むページへの参照や先行しているフォーマット化オブジェクトから返される最後の領域への参照等々を生成します。

※注釈:例えば、[fo:block]とブロックスパンページ3と4上に現れる[index-key]と一致する場合には、ページ3とページ4は、参照されます。もし、ブロックがページ3上に包括的に含まれる場合には、ページ3だけが参照されます。同様に、もし、一致する要素がページ8上にある[fo:index-range-begin]とその一致するペアである[fo:index-range-end]がページ10上にある場合には、ページ8~10が参照されます。もし、範囲の開始位置と範囲の終端が共にページ8上に現れる場合には、ページ8だけが参照されます。

 [fo:index-key-reference]内にあるページ範囲は、独立した引用されたページアイテムのシーケンスと全体に拡充されますが、ある引用されたページアイテムは、その同じページが削除されたことを参照します。2つの引用されたページアイテムが同一ページを参照する際には、文書内で最初に出現する[fo:index-range-begin]や[fo:index-range-end]を参照する引用されたページアイテムが保持されます。

※注釈:重複は、インデックスクラスを無視して削除されます。

コンテンツ


(index-page-number-prefix?,index-page-number-suffix?)

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.24.3 page-number-treatment
7.24.7 ref-index-key

6.10.7 [ fo:index-page-citation-list ]

一般的な利用法

 [fo:index-page-citation-list]フォーマット化オブジェクトは、その子[fo:index-key-reference]によって生成された引用されたページアイテムのセットと一緒のグループの為に利用されます。それぞれの子[fo:index-key-reference]は、一致する引用されたページアイテムにおいてフォーマット化プロパティを提供します。結果として導かれた引用されたページアイテムは、ともに整列、照合されます。[fo:index-page-citation-list]のその最終的な効果は、フォーマットされたページ番号と範囲のリストを生成する事です。

領域

 [fo:index-page-citation-list]フォーマット化オブジェクトは、生成し、1つ以上の通常インライン領域を返します。

特性展開

 ページ番号と範囲のリストの独立した一部をフォーマットする為に利用した特性は、以下のように記述されます。

制約

※注釈:制約というものは、ステップのシリーズを表すものとして記述されるものですが、これは、単に解説の利便性の為であり、慣習に従ういくつかの手法にあるステップを分割するものとして手段を提供されなければいけないという事を意味するわけではありません。慣習に従う手法は、同じ効果を取得する点に限定されなければいけません。

ステップA:
 全ての子[fo:index-key-reference]フォーマット化オブジェクトから引用されたページアイテムは、領域ツリー指示の中で整列されます。その際には2つのケースがあり、もし、[merge-pages-across-index-key-references]が「leave-separate」という値を持つ場合には、異なる[fo:index-key-reference]フォーマット化オブジェクトによって生成された同一ページを参照している引用されたページアイテムが保存されるでしょう。もし、[merge-pages-across-index-key-references]が「merge」という値を持つ場合には、『7.24.6 merge-pages-across-index-key-references』に記述されているように与えられたページを参照する引用されたページアイテムの内の1つだけ保存されるでしょう。

ステップB:
 引用されたページアイテム範囲にある3つ以上の順序立てられた引用されたページアイテムのシーケンスをマージする構成。
 [merge-pages-across-index-key-references]の値が「merge」である場合に限り実行されます。

 完全な引用されたページアイテムのセットから引用されたページが2つか否かといういくつかの影響の条件は、順次的に考慮されます。引用された2つのページアイテムは、もし、次に続く条件を全て満たす場合に限り、順次的です。

  1. 引用されたページアイテムが連続した領域ツリーのルートの子である[page-viewport-areas]を参照
  2. それらが同一の[index-class]を持つ
  3. 引用されたページアイテムが同一の[fo:index-key-reference]によって生成されたか、または、[merge-ranges-across-index-key-references]が「merge」である

ステップC:
 フォーマットされたページ番号と範囲のリストにあるフォーマットする引用されたページアイテムと引用されたページアイテム範囲の構成
 その結果は、独立したページ番号、インデックスページ番号の前置詞または後置詞、範囲とリストセパレータと一致する結果ツリー断片のシーケンスをフォーマット化する事と同じです。

 [fo:index-key-reference]Rから引用されたそれぞれのページアイテムのその結果領域は、フォーマット化の結果と同様です。

  1. もし、Rが子[fo:index-page-number-prefix]、結果ツリー断片を含む[fo:inline]を持つ場合には、それは、[fo:index-page-number-prefix]の子です。「always」という値を持つ[keep-with-next.within-line]を除き、[fo:inline]の特性は、Rから継承されます。
  2. 結果ツリー断片を含んでいる[fo:inline]、参照ページ[reference-page]としての引用されたページアイテムによって参照されたページを利用する事、そして[fo:page-sequence]が、[reference-page-sequence]として参照されたページを生成する事は、『6.6.10 fo:page-number』に記述されています。[fo:inline]の特性は、Rから継承されます。もし、[page-number-treatment]が「link」を持つ場合、[fo:inline]は、[fo:basic-link]におけるものとして参照ソースへ戻るようリンクするべきです。
  3. もし、Rが子[fo:index-page-number-suffix]を持つ場合、結果ツリー断片を含む[fo:inline]は、[fo:index-page-number-suffix]の子です。[fo:inline]の特性は、[keep-with-previous.within-line]が「always」という値を持つ場合を除き、Rから継承されます。

 結果ツリーにおけるそれぞれの引用されたページアイテムは、フォーマット化の結果と同様です。

  1. 引用されたページアイテムとして同じ慣習にある範囲内にある最初の引用されたページアイテム:上記参照。
  2. もし、[fo:index-page-citation-list]は、子[fo:index-page-citation-range-separator]、結果ツリー断片を含んでいる[fo:inline]は、[fo:index-page-citation-range-separator]の子です。[fo:inline]の特性は、[keep-with-previous.within-line]と[keep-with-next.within-line]が「always」という値を持つ場合を除き、[fo:index-page-citation-range-separator]から継承されます。

    他方で、特性を持つ[fo:character]の場合:
     U+2013(en dash)という値を持つ[character]、[keep-with-previous.within-line]と[keep-with-next.within-line]は、「always」という値を持ちます。他の全ての特性は、[fo:index-page-citation-list]から継承されます。条件を満たす為に、たとえば、[language-specific]、[locale-specific]インデックス範囲セパレータを提供する等といった既定値の変更を提供する場合があります。
  3. 引用されたページアイテムとして同じ慣習にある範囲内にある最後の引用されたページアイテム:上記参照。

 それぞれのフォーマットされたページアイテムや範囲の後には、最後を除いてセパレータが挿入されます。その結果領域はフォーマット化の結果と同様です。

 もし、[fo:index-page-citation-list]が、子[fo:index-page-citation-list-separator]を持つ場合、結果ツリー断片は[fo:index-page-citation-list-separator]の子です。[fo:inline]の特性は、[fo:index-page-citation-list-separator]から継承されます。

 他方で、特性を持つ[fo:character]の場合:
 U+002C(comma)という値を持つ[character]と「always」という値を持つ[keep-with-previous.within-line]は、U+0020(space)を持つ[character]特性を持つ[fo:character]によってフォローされます。他の全ての特性は、[fo:index-page-citation-list]から継承されます。条件を満たす為に、たとえば、[language-specific]、[locale-specific]インデックスリストセパレータを提供する等といった既定値の変更を提供する場合があります。

コンテンツ


(index-page-citation-list-separator?,index-page-citation-range-separator?,index-key-reference+)

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.24.5 merge-sequential-page-numbers
7.24.4 merge-ranges-across-index-key-references
7.24.6 merge-pages-across-index-key-references

6.10.8 [ fo:index-page-citation-list-separator ]

一般的な利用法

 [fo:index-page-citation-list-separator]フォーマット化オブジェクトは、生成されたページ番号にある1つずつあるページ番号やページ番号範囲を分割する為に利用したフォーマット化オブジェクトを記述します。

領域

 [fo:index-page-citation-list]フォーマット化オブジェクトは、直接的にいかなる領域も生成しません。その子は、検索され、ページ参照のリストをフォーマットする際に[fo:index-page-citation-list]によって利用されます。

制約

 なし。

コンテンツ


(#PCDATA|%inline;)*

6.10.9 [ fo:index-page-citation-range-separator ]

一般的な利用法

 [fo:index-page-citation-range-separator]フォーマット化オブジェクトは、生成されたページ番号にある1つずつあるページ番号やページ番号範囲を分割する為に利用したフォーマット化オブジェクトを記述します。

領域

 [fo:index-page-citation-range-separator]フォーマット化オブジェクトは、直接的にいかなる領域も生成しません。その子は、検索され、ページ参照のリストをフォーマットする際に[fo:index-page-citation-list]によって利用されます。

制約

 なし。

コンテンツ


(#PCDATA|%inline;)*


 6.11 ブックマークのオブジェクト書式
  6.11.1 [ fo:bookmark-tree ]
  6.11.2 [ fo:bookmark ]
  6.11.3 [ fo:bookmark-title ]

6.11 ブックマークにおけるフォーマット化オブジェクト

6.11.1 [ fo:bookmark-tree ]

一般的な利用法

 [fo:bookmark-tree]フォーマット化オブジェクトは、コンテンツのテーブルや図のリストやテーブルのような文書中にあるアクセスポイントのリストを保持する為に利用されます。それぞれのアクセスポイントは、ブックマークと呼ばれます。

領域

 このフォーマット化オブジェクトは、このフォーマット化オブジェクトの子によって返される領域のシーケンスを返します。

制約

 返される領域のシーケンスは、子の出現における命令の中で[fo:bookmark-tree]フォーマット化オブジェクトの子フローのそれぞれによって返される領域のサブシーケンスを結合しなければいけません。

コンテンツ


(bookmark+)

6.11.2 [ fo:bookmark ]

一般的な利用法

 [fo:bookmark]フォーマット化オブジェクトは、名前によるアクセスポイントの識別と文書中または、他の外部の文書出現の中にあるアクセスポイントを記述する為に利用されます。与えられたブックマークは、作者が要求した多くのレベルとしてブックマークまたはサブブックマークのシーケンスへ距離を置いて細分化される場合があります。

※注釈:[fo:bookmark]は、適用されるプロパティとそのコンテンツモデル上にある制限を持つ[fo:basic-link]の特殊化された形式です。

領域

 [fo:bookmark]フォーマット化オブジェクトは、1つ以上の通常インライン領域を生成します。[fo:bookmark]はそれらの領域を返します。

制約

 [external-destination]と[internal-destination]プロパティの1つは、記述されるべきです。もし、両方が記述されている場合には、そのシステムは、エラーを報告するか、または、[internal-destination]プロパティを利用します。

 領域がない場合には、同一の[fo:bookmark]フォーマット化オブジェクトによって返される1つ以上の通常の子領域を持ちます。

 [fo:bookmark]によって返される通常の領域のそれぞれの子は、『4.7.3 Inline-building』に記述された制約を満たさなければいけません。

 [starting-state]プロパティは、ブックマークのサブリストが初期化された状態で表示されるのか、隠されるのかを決めます。「show」という値は、このブックマークの表示の中にあるブックマークのサブリストを含む事を意味します。「hide」という値は、表示にあるこのブックマークだけを表示するという意味です。

コンテンツ


(bookmark-title,bookmark*)

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.23.6 external-destination
7.23.8 internal-destination
7.23.10 starting-state

6.11.3 [ fo:bookmark-title ]

一般的な利用法

 [fo:bookmark-title]フォーマット化オブジェクトは、人間が解読できる形式でアクセスポイントを識別する為に利用されます。

※注釈:[fo:bookmark-title]は、適用されるプロパティとそのコンテンツモデル上にある制限を持つ[fo:inline]の特殊化された形式です。

領域

 [fo:bookmark-title]フォーマット化オブジェクトは、1つ以上の通常のインライン領域を生成します。[fo:bookmark-title]はこれらの領域を返します。

特性展開

 [fo:bookmark-title]に適用しない「white-space-treatment」、「linefeed-treatment」、「white-space-collapse」でさえ、その条件を満たす為には、これらのプロパティが適用されたかのようにふるまい、それらの初期値を持っているべきです。

制約

 領域がない場合には、同一の[fo:bookmark-title]フォーマット化オブジェクトによって返される1つ以上の通常の子領域を持ちます。

 [fo:bookmark-title]によって返される通常の領域のそれぞれの子は、『4.7.3 Inline-building』に記述された制約を満たさなければいけません。

コンテンツ


(#PCDATA)

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.18.1 color
7.9.7 font-style

※注釈:「normal」と「italic」に限定した空間値を持つ。

7.9.9 font-weight
※注釈:「normal」と「bold」に限定した空間値を持つ。


 6.12 Out-of-Line Formatting Objects
  6.12.1 概論
   6.12.1.1 Floats
   6.12.1.2 Footnotes
   6.12.1.3 Conditional Sub-Regions
   6.12.1.4 例・サンプル
    6.12.1.4.1 Floating Figure
    6.12.1.4.2 Footnote
  6.12.2 [ fo:float ]
  6.12.3 [ fo:footnote ]
  6.12.4 [ fo:footnote-body ]

6.12 [ Out-of-Line ]フォーマット化オブジェクト

6.12.1 概論
6.12.1.1 [ Floats ]

 [fo:float]フォーマット化オブジェクトは、異なる2つの目的のために利用されます。1つは、いくつかの関連するコンテンツにおけるコンテンツの通常の配置は、リーダー上にすぐに割り込む事無く読む事が出来るページの開始位置にある分割領域にフォーマットされます。[fo:float]のこの種類によって生成されたその領域は、[before-floats]と呼ばれます。[fo:float]は、もし、「before」という値の[float]プロパティを持つ場合に[before-floats]を生成する為に記述されます。ページ上の[before-floats]を配置する上での制約は、この概論の『6.12.1.3 Conditional Sub-Regions』セクションと[fo:float]フォーマット化オブジェクトの説明にあります。

 2つめは、[fo:float]フォーマット化オブジェクトは、フロートされた領域ときれいに並んでいる通常コンテンツを持ち、領域が一端にフロートする為に意図されます。[fo:float]のこの種類によって生成されたその領域は、[side-floats]と呼ばれます。[side-float]は、常に最も近くにある先祖参照領域の子を作ります。[side-float]フロートに向かう参照領域のエッジは、[float]プロパティの値によって操作されます。

 なだらかに横に並んでいる通常コンテンツは、[side-float]の親参照領域の通常の子領域の[start-intrusion-adjustment]や[end-intrusion-adjustment]を増やす事によって実現されます。

 「clear」プロパティは、ブロックレベルフォーマット化オブジェクトに適用します。もし、固有のフォーマット化オブジェクトにおけるこのプロパティの値が「none」以外のいずれかであれば、ブロックによって生成されたその領域は、「clear」プロパティ値によって決められたものとして[side-float]を適用する領域確保された矩形とオーバーラップしないそれらの線矩形を確保する為に配置されるでしょう。

6.12.1.2 [ Footnotes ]

 [fo:footnote]フォーマット化オブジェクトは、脚注と引用の両方を生成する為に利用されます。[fo:footnote]は、表示する為に共に要求される2つの子を持ちます。最初の子は、脚注引用を生成する為にフォーマットされた[fo:inline]フォーマット化オブジェクトです。2つめの子は、脚注の内容(またはボディ)を生成する[fo:footnote-body]フォーマット化オブジェクトです。

 [fo:footnote-body]フォーマット化オブジェクトの子孫によって生成された実体領域は、子孫サブツリーから成るフォーマット化オブジェクトによって決定されます。例えば、脚注はラベル付きでフォーマットされ、[fo:footnote-body]なしで[fo:list-block]フォーマット化オブジェクト利用によってボディ部がインデントされます。

6.12.1.3 条件付きサブ領域

 [region-body]は、[before-float-reference-area]と[footnote-reference-area]と呼ばれる参照領域と一致する厳密な仕様の2つの条件付きサブ領域を持ちます。これらの参照領域は、[region-reference-area]の子として条件付きで生成されます。[before-float-reference-area]は、もし、そのページが領域クラス[xsl-before-float]を持つ1つ以上の領域を含む場合に限り生成されます。[footnote-reference-area]は、もし、そのページが領域クラス[xsl-footnote]を持つ1つ以上の領域を含む場合に限り生成されます。

 条件付きで生成された領域は、メイン参照領域を犠牲にして[region-reference-area](範囲参照領域)なしで[block-progression-dimension]([writing-mode]が「lr-tb」の際の「高さ」)内にスペースを借ります。

 条件付きで生成された領域か否かは、更に加えて、メイン参照領域の左側に十分なスペースがあるか否かに依存して実際に生成されます。

 [region-reference-area]から借りる事が出来る条件付きで生成された領域がどのくらいのスペースであるかについての制限がある場合があります。それは、これらの制限を決めるユーザーエージェントの為の「left」です。

 [main-reference-area]の[block-progression-dimension]は、実際に生成された条件付きで生成された参照領域の領域確保された矩形の[block-progression-dimension]にあるサイズの合計を引いた[region-reference-area]の領域確保された矩形の[block-progression-dimension]と等しくセットされます。メイン参照領域は、[before-float-reference-area]の領域確保された矩形の[after-edge]にすぐに続けて配置されます。メイン参照領域の「after-edge」は、脚注参照領域の領域確保された矩形の[before-edge]とぴったりと一致します。範囲参照領域によって一般的に決められた制約について追記すると、条件付きで生成された参照領域の[inline-progression-dimension](この場合は、[writing-mode]が「lr-tb」の際の幅)は、メイン参照領域の[inline-progression-dimension]と一致する事を制約されます。

 それぞれの条件付きで生成された参照領域は、更にメイン参照領域から参照領域を分割する為に利用される領域のシーケンスを含む場合があります。その領域のシーケンスは、ページをフォーマットする為に利用されるページシーケンス中に記述される[fo:static-content]をフォーマットする事によって返されるシーケンスです。

 もし、「flow-name」プロパティ値が「xsl-before-float-separator」であるページシーケンス中にある[fo:static-content]であれば、[fo:static-content]をフォーマットする事によって返される領域は、同一のページマスタを利用中に生成された[before-float-reference-area]の最後の子として妥当な命令に挿入され、提供されるページ上のメイン参照領域は、空(カラ・EMPTY)ではありません。

 もし、「flow-name」プロパティ値が「xsl-footnote-separator」である[fo:static-content]があれば、[fo:static-content]をフォーマットする事によって返される領域は、同一のページマスタを利用中に生成された[footnote-reference-area]の初期値の子として妥当な命令に挿入されます。

 対話的なユーザーエージェントは、条件付きのサブ範囲を実現する代わりに脚注引用から脚注に動的なリンクを生成するか、または、厳密な引用から[before-floats]に動的なリンクを生成する場合があります。

 フォーマット化オブジェクトの説明に記述されている領域クラス[xsl-before-float]または[xsl-footnote]を持つ領域の生成は、初期設定としてそれらの領域クラスを持つ領域を返します。

6.12.1.4 例

6.12.1.4.1 フロートしている図

入力サンプル:


<doc>
  <p>C'ieng pieces were made in northern towns, such as C'ieng Mai.
They were typically of tamlung weight.</p>
  <figure>
    <photo image="TH0317A.jpg"/>
    <caption>C'ieng Tamlung of C'ieng Mai</caption>
  </figure>
</doc>

 この例では、図は前の一端にフロートするものとして配置されます(「lr-tb」[writing-mode]中の「top」)。

XSL Stylesheet:


<?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="figure">
  <fo:float float="before">
    <xsl:apply-templates/>
  </fo:float>
</xsl:template>

<xsl:template match="photo">
  <fo:block text-align="center">
    <fo:external-graphic src="{@image}"/>
  </fo:block>
</xsl:template>

<xsl:template match="caption">
  <fo:block space-before="3pt" text-align="center"
    start-indent="10mm" end-indent="10mm">
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

</xsl:stylesheet>

結果インスタンス:[fo: namespace]における要素と属性


<fo:block>C'ieng pieces were made in northern towns,
such as C'ieng Mai. They were typically of tamlung weight.
</fo:block>

<fo:float float="before">

  <fo:block text-align="center">
    <fo:external-graphic src="TH0317A.jpg">
    </fo:external-graphic>
  </fo:block>

  <fo:block space-before="3pt" text-align="center" start-indent="10mm"
    end-indent="10mm">C'ieng Tamlung of C'ieng Mai
  </fo:block>

</fo:float>

6.12.1.4.2 FOOTNOTE 脚注

入力サンプル:


<doc>
  <p>Some Pod Duang were restruck<fn>Berglund, A., Thai Money, from
Earliest Times to King Rama V, p. 203.</fn> during the reign of King Rama V.</p>
</doc>

 この例では、脚注は、文書全体に連続した番号付けがされます。その脚注calloutは、特別な記法として「)」(丸閉じかっこ)によって続けられます。脚注それ自身は、ラベルとしての脚注番号とボディとしての脚注テキストを持つフォーマット化オブジェクトリストを利用中にフォーマットされます。

XSL Stylesheet:


<?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="fn">
  <fo:footnote>
    <fo:inline font-size="0.83em" baseline-shift="super">
      <xsl:number level="any" count="fn" format="1)"/>
    </fo:inline>
    <fo:footnote-body>
      <fo:list-block provisional-distance-between-starts="20pt"
          provisional-label-separation="5pt">
        <fo:list-item>
          <fo:list-item-label end-indent="label-end()">
            <fo:block  font-size="0.83em"
                       line-height="0.9em">
              <xsl:number level="any" count="fn" format="1)"/>
            </fo:block>
          </fo:list-item-label>
          <fo:list-item-body start-indent="body-start()">
            <fo:block  font-size="0.83em"
                       line-height="0.9em">
              <xsl:apply-templates/>
            </fo:block>
          </fo:list-item-body>
        </fo:list-item>
      </fo:list-block>
    </fo:footnote-body>
  </fo:footnote>
</xsl:template>

</xsl:stylesheet>

結果インスタンス:[fo: namespace]における要素と属性


<fo:block>Some Pod Duang were restruck
  <fo:footnote>
    <fo:inline font-size="0.83em" baseline-shift="super">1)
    </fo:inline>
    <fo:footnote-body>
    <fo:list-block provisional-distance-between-starts="20pt"
      provisional-label-separation="5pt">
    <fo:list-item>
    <fo:list-item-label end-indent="label-end()">
    <fo:block font-size="0.83em" line-height="0.9em">1)
    </fo:block>
    </fo:list-item-label>
    <fo:list-item-body start-indent="body-start()">
    <fo:block font-size="0.83em" line-height="0.9em">Berglund, A.,
Thai Money, from Earliest Times to King Rama V, p. 203.
    </fo:block>
    </fo:list-item-body>
    </fo:list-item>
    </fo:list-block>
    </fo:footnote-body>
  </fo:footnote> during the reign of King Rama V.
</fo:block>

6.12.2 [ fo:float ]

一般的な利用法

 [fo:float]フォーマット化オブジェクトは、通常領域フローが周囲と横に並んだ画像を持つページの開始位置に分割された領域内に配置される画像、または、一端に配置される画像のいずれかに起因して利用されるのが典型的です。

領域

 [fo:float]は、領域クラス「xsl-anchor」を持つ単独のオプション領域と[float]プロパティによって記述されているものとしての「xsl-before-float」、「xsl-side-float」、「xsl-normal」のいずれかである同一の領域クラスを全てが共有している1つ以上のブロック領域を生成します。([fo:float]は、もし、[float]プロパティが「none」という値を持つ場合、通常のブロック領域を生成します。)

 [xsl-side-float]という領域クラスを持つ領域は、参照領域です。

 [xsl-before-float]という領域クラスを持つ領域は、[before-float-reference-area]の子として配置されます。

 [xsl-anchor]という領域クラスを持つオプション領域は、もし、[float]プロパティが「none」の場合は生成されず、また、制約セクションに記述されているようなエラーによる場合には、[fo:float]は、[float]プロパティが「none」だったものとしてフォーマットされるでしょう。他方、領域クラス[xsl-anchor]は生成されるでしょう。

 [xsl-anchor]という領域クラスを持つ領域は、(以下の(a)(b)の制約に違反するケースを除き)子を持たないインライン領域です。
(a)領域の子がブロック領域またはインライン領域を持たなければならないが、混合ではない場合と
(b)行領域の子がアンカー領域だけで構成されていない場合。
インライン領域がこれらの制約に違反してしまうケースでは、[fo:float]は、代わりにブロック領域を生成しなければいけません。

制約

 [fo:float]によって生成された通常のインライン領域は、「always」という値の[keep-with-previous]プロパティを持つ[fo:float]を通して領域ツリー中に配置されるでしょう。インライン領域は、[inline-progression-dimension]と[block-progression-dimension]共にゼロの長さを持ちます。

 アンカー領域という用語は、[fo:float]によって生成された領域クラス[xsl-anchor]を持つ領域を意味する為にここを利用します。領域クラス[xsl-side-float]は、サイドフロートします。

 領域がないものは、同じ[fo:float]フォーマット化オブジェクトによって返される同じ領域クラスを持つ1つ以上の子ブロック領域を持つ場合があります。

 領域クラス[xsl-before-float]を持つ領域は、同一の領域クラスを持つ他の領域と相関する領域ツリーなしで厳密に指定されなければいけません。

 [fo:float]によって生成されたブロック領域のパディング矩形、ボーダー矩形、内容矩形は、すべて同じ空間を占めます。

 次に続く[fo:float]フォーマット化オブジェクトに適用する制約は、領域クラス[xsl-before-float]を持つ領域を生成します。

 次に続く制約は、領域クラス[xsl-side-float]を持つ領域を生成する[fo:float]フォーマット化オブジェクトに適用します。

コンテンツ


(%block;)+

 [fo:float]は、子孫として[fo:float]、[fo:footnote]、[fo:marker]を持つ事を許容しません。

 追記すると、[fo:float]は、絶対配置された領域を生成する[fo:block-container]を子孫として持つ事は許容されません。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.19.2 float
7.19.1 clear
7.30.8 id
7.24.1 index-class
7.24.2 index-key

6.12.3 [ fo:footnote ]

一般的な利用法

 [fo:footnote]は、ページの[region-body]なしで脚注引用を生成する為に典型的に利用され、ページの[after-edge]にもっとも近い分割領域にある脚注と一致します。

領域

 [fo:footnote]フォーマット化オブジェクトは、いかなる領域も生成しません。[fo:footnote]フォーマット化オブジェクトは、領域が生成されて返され、その子[fo:inline]フォーマット化オブジェクトによって返されます。

 付加的に[fo:footnote]フォーマット化オブジェクトは、その子[fo:footnote-body]によって生成された領域クラス[xsl-footnote]を持つブロック領域を返します。領域クラス[xsl-footnote]を持つ領域は、脚注参照領域の子として配置されます。

制約

 アンカー領域という用語は、生成され、[fo:footnote]の子[fo:inline]によって返される最後の領域を意味するものとして定義されます。

 [fo:footnote]によって返されたブロック領域は、
(a)子孫として割り当てられた[fo:footnote]を持つフローへの範囲における範囲マスタ利用中に生成された[region-reference-area]からの子孫。
(b)アンカー領域を含む同一のページからの子孫、または、アンカー領域を含むページに続くページからの子孫
((a)または(b))である脚注参照領域からの子孫として限定的に許容されます。

 [fo:footnote]によって返された2番目のブロック領域といくつかの付加的なブロック領域は、いくつかの他のコンテンツが配置されている前にある[fo:footnote]によって返された最初のブロック領域を含んでいるページにすぐに続いて起こるページ上に配置されなければいけません。もし、続いているページが[region-body]を含んでいない場合には、ユーザーエージェントは、付加的なブロック領域を保持する為の[region-body]を含んでいる最後のページの範囲マスタを利用しなければいけません。

 もし、[fo:footnote]が1つ以上の[region-body]範囲に割り当てられていないフローの子孫として出現する場合、または、絶対配置された領域を生成する[fo:block-container]である場合にはエラーです。これらいずれかのケースでは、[fo:footnote]の子である[fo:footnote-body]によって生成されたブロック領域は、[fo:footnote]の親へ返され、それらが通常のブロックレベル領域であったものとして領域ツリーに配置されるでしょう。

コンテンツ


(inline,footnote-body)

 [fo:footnote]は、子孫として[fo:float]、[fo:footnote]、[fo:marker]を持つ事を許容しません。

 追記すると、[fo:footnote]は、絶対配置された領域を生成する[fo:block-container]を子孫として持つ事は許容されません。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.30.8 id
7.24.1 index-class
7.24.2 index-key

6.12.4 [ fo:footnote-body ]

一般的な利用法

 [fo:footnote-body]は、脚注コンテンツを生成する為に利用されます。

領域

 [fo:footnote-body]は、領域を生成し、1つ以上の領域クラス[xsl-footnote]を持つブロックレベル領域を返します。

制約

 [fo:footnote-body]は、[fo:footnote]の子として限定的に許容されます。

 領域がない場合には、同一の[fo:footnote-body]フォーマット化オブジェクトによって返された1つ以上の子ブロック領域を持ちます。

 領域クラス[xsl-footnote]を持つ領域は、同一の領域クラスを持つ他の領域に相関する領域ツリーなしで厳密に指定されなければいけません。

コンテンツ


(%block;)+

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.30.8 id
7.24.1 index-class
7.24.2 index-key


 6.13 その他のオブジェクト書式
  6.13.1 概論
   6.13.1.1 例・サンプル
    6.13.1.1.1 Wrapper
    6.13.1.1.2 Table Markers
   6.13.2 [ fo:change-bar-begin ]
   6.13.3 [ fo:change-bar-end ]
   6.13.4 [ fo:wrapper ]
   6.13.5 [ fo:marker ]
   6.13.6 [ fo:retrieve-marker ]
   6.13.7 [ fo:retrieve-table-marker ]

6.13 その他のオブジェクト書式

6.13.1 概論
6.13.1.1 例・サンプル

6.13.1.1.1 Wrapper

 次の例は、[fo:wrapper]フォーマット化オブジェクトの利用を示し、セマンティクスはありませんが、継承されたプロパティにおいて「運搬装置」として動作します。

入力サンプル:


<doc>
<p>This is an <emph>important word</emph> in this
sentence that also refers to a <code>variable</code>.</p>
</doc>

[emph]要素は、太字フォント利用中に、[code]要素はクーリエフォントを利用中に表示される為にあります。

XSL Stylesheet:


<?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="emph">
  <fo:wrapper font-weight="bold">
    <xsl:apply-templates/>
  </fo:wrapper>
</xsl:template>

<xsl:template match="code">
  <fo:wrapper font-family="Courier">
    <xsl:apply-templates/>
  </fo:wrapper>
</xsl:template>

</xsl:stylesheet>

[fo:]要素と属性ツリー


<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">This is an
<fo:wrapper font-weight="bold">important word</fo:wrapper>
in this sentence that also refers to a
<fo:wrapper font-family="Courier">variable</fo:wrapper>.
</fo:block>

6.13.1.1.2 Table Markers

 次の例は、テーブルが(割り当てるのに十分なデータが存在し、改ページが生成され)次のページに続く際、テーブルの「bottom」に現れる表題「Table continued...」を作成する為に、どのように[fo:retrieve-table-marker]フォーマット化オブジェクトを利用するかについて示します。それはまた、テーブルが次ページに続き、テーブルの末端に総合計を算出する際、各ページの「bottom」に小計を示します。

入力サンプル:


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<numbers>
  <number>1</number>
  <number>2</number>
  <!-- and so on... -->
  <number>11</number>
  <number>12</number>
</numbers>

XSL Stylesheet:


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
  <xsl:strip-space elements="*"/>

  <xsl:template match="numbers">
    <fo:table>
      <fo:table-column/>
      <fo:table-footer>
        <fo:table-row>
          <fo:table-cell font-weight="bold">
            <fo:block>
 <fo:retrieve-table-marker retrieve-class-name="subtotal-caption"
retrieve-position-within-table="last-ending"/>
 <fo:retrieve-table-marker retrieve-class-name="subtotal"
retrieve-position-within-table="last-ending"/>
            </fo:block>
          </fo:table-cell>
        </fo:table-row>
        <fo:retrieve-table-marker retrieve-class-name="continued"
          retrieve-position-within-table="last-ending"/>
      </fo:table-footer>
      <fo:table-body>
        <fo:marker marker-class-name="continued">
          <fo:table-row>
            <fo:table-cell>
              <fo:block>Table continued...</fo:block>
            </fo:table-cell>
          </fo:table-row>
        </fo:marker>
        <fo:marker marker-class-name="subtotal-caption">
                Subtotal:
        </fo:marker>
        <xsl:apply-templates/>
      </fo:table-body>
    </fo:table>
  </xsl:template>

  <xsl:template match="number">
    <fo:table-row>
      <fo:marker marker-class-name="subtotal">
        <xsl:value-of select="sum(preceding::number)+text()"/>
      </fo:marker>
      <xsl:if test="position() = last()">
        <fo:marker marker-class-name="continued"/>
        <fo:marker marker-class-name="subtotal-caption">
          Total:
        </fo:marker>
      </xsl:if>
      <fo:table-cell>
        <fo:block>
          <xsl:apply-templates/>
        </fo:block>
      </fo:table-cell>
    </fo:table-row>
  </xsl:template>

</xsl:stylesheet>

結果インスタンス:[fo:]名前空間にある要素と属性ツリー


<?xml version="1.0" encoding="UTF-8"?>
<fo:table>
  <fo:table-column/>
  <fo:table-footer>
    <fo:table-row>
      <fo:table-cell font-weight="bold">
        <fo:block>
          <fo:retrieve-table-marker
            retrieve-position-within-table="last-ending"
            retrieve-class-name="subtotal-caption"/>
          <fo:retrieve-table-marker
            retrieve-position-within-table="last-ending"
            retrieve-class-name="subtotal"/>
        </fo:block>
      </fo:table-cell>
    </fo:table-row>
    <fo:retrieve-table-marker retrieve-class-name="continued"
      retrieve-position-within-table="last-ending"/>
  </fo:table-footer>
  <fo:table-body>
    <fo:marker marker-class-name="continued">
      <fo:table-row>
        <fo:table-cell>
          <fo:block>Table continued...</fo:block>
        </fo:table-cell>
      </fo:table-row>
    </fo:marker>
    <fo:marker marker-class-name="subtotal-caption">
      Subtotal:
    </fo:marker>
    <fo:table-row>
      <fo:marker marker-class-name="subtotal">1</fo:marker>
      <fo:table-cell>
        <fo:block>1</fo:block>
      </fo:table-cell>
    </fo:table-row>
    <fo:table-row>
      <fo:marker marker-class-name="subtotal">3</fo:marker>
      <fo:table-cell>
        <fo:block>2</fo:block>
      </fo:table-cell>
    </fo:table-row>
    <!-- and so on... -->
    <fo:table-row>
      <fo:marker marker-class-name="subtotal">66</fo:marker>
      <fo:table-cell>
        <fo:block>11</fo:block>
      </fo:table-cell>
    </fo:table-row>
    <fo:table-row>
      <fo:marker marker-class-name="subtotal">78</fo:marker>
      <fo:marker marker-class-name="continued"/>
      <fo:marker marker-class-name="subtotal-caption">
        Total:
      </fo:marker>
      <fo:table-cell>
        <fo:block>12</fo:block>
      </fo:table-cell>
    </fo:table-row>
  </fo:table-body>
</fo:table>

 続きは、どのように[retrieve-table-marker]関数を他の例によって示すのか、どのようにしてスコープ領域を検索し、[fo:retrieve-table-marker]上に記述されるプロパティに依存して決定されて得たものをセットするのかを示す記述という意味です。

この[XSL-FO]結果インスタンスを考察しましょう:


<fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format>
  <fo:layout-master-set>
    <fo:simple-page-master master-name="page ">
      <fo:region-body region-name=" body"  column-count="2"/>
    </fo:simple-page-master>
  </fo:layout-master-set>
  <fo:page-sequence master-reference="page"
    <fo:flow fo:flow-name=" body">
      <fo:table>
        <fo:table-column/>
        <fo:table-header>...</fo:table-header>
          <fo:table-footer>
            <fo:table-row>
              <fo:table-cell>
                <fo:block>
                  <fo:retrieve-table-marker
                    retrieve-class-name="marker-name"
                    retrieve-position-within-table="See table for values..."
                    retrieve-boundary-within-table="See table for values..."/>
                </fo:block>
              </fo:table-cell>
            </fo:table-row>
        </fo:table-footer>
        <fo:table-body>
          <fo:table-row>
            <fo:table-cell>
              <!-- cell 1 -->
              <fo:marker marker-class-name="marker-name">
                <!-- marker 1 -->
                ...
              </fo:marker>
              ...
            </fo:table-cell>
          </fo:table-row>
          <!-- and so on ... -->
          <fo:table-row>
            <fo:table-cell>
              <!-- cell 14 -->
              <fo:marker marker-class-name="marker-name">
                <!-- marker 14 -->
                ...
              </fo:marker>
              ...
            </fo:table-cell>
          </fo:table-row>
        </fo:table-body>
      </fo:table>
    </fo:flow>
  </fo:page-sequence>
</fo:root>

 2ページある文書のページ立てにおけるXSL-FOインスタンス結果を言うと、それはこの(参照図※の)イラストによって示されることができます。

※参照図:翻訳対象W3Cドキュメント6.13.1.1.2 Table Markers中段参照。

 次に続くテーブルは、プロパティにおける値に依存する「retrieve-table-marker 1」におけるふるまいを示します。

retrieve-boundary-within-tableretrieve scope area setprimary retrieve scope arearetrieve-position-within-tableselected fo-marker
tableA1A1first-starting1
first-including-carryover1
last-starting4
last-ending3
table-fragmentA1A1first-starting1
first-including-carryover1
last-starting4
last-ending3
pageA1A1first-starting1
first-including-carryover1
last-starting4
last-ending3

 次に続くテーブルは、プロパティにおける値に依存する「retrieve-table-marker 2」におけるふるまいを示します。

retrieve-boundary-within-tableretrieve scope area setprimary retrieve scope arearetrieve-position-within-tableselected fo-marker
tableA1, A2A2first-starting5
first-including-carryover4
last-starting7
last-ending7
table-fragmentA2A2first-starting5
first-including-carryover4
last-starting7
last-ending7
pageA1, A2A2first-starting5
first-including-carryover4
last-starting7
last-ending7

 次に続くテーブルは、プロパティにおける値に依存する「retrieve-table-marker 3」におけるふるまいを示します。

retrieve-boundary-within-tableretrieve scope area setprimary retrieve scope arearetrieve-position-within-tableselected fo-marker
tableA1, A2, A3A3first-starting8
first-including-carryover8
last-starting11
last-ending10
table-fragmentA3A3first-starting8
first-including-carryover8
last-starting11
last-ending10
pageA3A3first-starting8
first-including-carryover8
last-starting11
last-ending10

 次に続くテーブルは、プロパティにおける値に依存する「retrieve-table-marker 4」におけるふるまいを示します。

retrieve-boundary-within-tableretrieve scope area setprimary retrieve scope arearetrieve-position-within-tableselected fo-marker
tableA1, A2, A3, A4A4first-starting12
first-including-carryover11
last-starting14
last-ending14
table-fragmentA4A4first-starting12
first-including-carryover11
last-starting14
last-ending14
pageA3, A4A4first-starting12
first-including-carryover11
last-starting14
last-ending14

6.13.2 [ fo:change-bar-begin ]

一般的な利用法

 [fo:change-bar-begin]は、「変更範囲」の始まりを示すために利用され、この[fo:change-bar-begin]上にある[change-bar-class]変更バークラスと一致する[change-bar-class]プロパティ値の[fo:change-bar-end]に続いて起こる事によって、そしてこの[fo:change-bar-begin]の(同一の[change-bar-class]プロパティ値を持つ他の[fo:change-bar-begin]と[fo:change-bar-end]のペアと相関して)同じネストレベルである[fo:change-bar-end]に続いて起こる事によって終了されます。

 変更範囲は、その列の開始エッジまたは末端エッジのいずれかまで変更バーを下げるという修飾が施されます。それは、変更バーが、「変更バーの影響下にある」フォーマット化オブジェクトによって[region-body]の無条件参照領域内で生成された領域のサイド間(辺と辺の間)に生成されるという事です。(文書命令中の)この[fo:change-bar-begin]の後にある全てのフォーマット化オブジェクトと[fo:change-bar-end](または、文書の末端)に一致するまでは、この[fo:change-bar-begin]の影響ある変更バーの下で考慮されます。

 生成された変更バーのその配置、太さ、スタイル、色は、それぞれのプロパティによって決められます。(それぞれのプロパティ定義参照)

領域

 [fo:change-bar-begin]フォーマット化オブジェクトは、それ自身の中にいかなる領域も生成しませんが、[normal-flow-reference-area]通常フロー参照領域や[region-reference-area]範囲参照領域の近くにある開始エッジや末端エッジなど先祖[fo:page-sequence]によって生成される領域に起因します。

制約

 [fo:change-bar-begin]と[fo:change-bar-end]のペアは、(1)それらの[change-bar-class]プロパティが一致し、且つ(2)ペアが一致するクラスなどの[fo:change-bar-begin]と[fo:change-bar-end]フォーマット化オブジェクトの出現に限って(文書命令中にある)[fo:change-bar-begin]と[fo:change-bar-end]というペアの一致を考慮されます。

 次に続く文書命令中のこの[fo:change-bar-begin]は、ペアと一致する形式の[fo:change-bar-end]にしなければいけません。もし、そのような[fo:change-bar-end]がない場合にはエラーであり、条件を満たすためには、文書中の末端である[fo:change-bar-end]と一致するのと同様な割り当てによって修復すべきです。

 生成された変更バー領域は、範囲ボディ内の列の開始や終了エッジに間断なく(連続して)沿っています。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.30.1 change-bar-class
7.30.2 change-bar-color
7.30.3 change-bar-offset
7.30.4 change-bar-placement
7.30.5 change-bar-style
7.30.6 change-bar-width
7.30.18 z-index

6.13.3 [ fo:change-bar-end ]

一般的な利用法

 [fo:change-bar-end]は、その一致する[fo:change-bar-begin]によって始まる「変更範囲」の終わりを示すために利用されます。詳細は、『6.13.2 fo:change-bar-begin』参照。

領域

 [fo:change-bar-end]フォーマット化オブジェクトは、それ自身の中にいかなる領域も生成しませんが、[normal-flow-reference-area]通常フロー参照領域や[region-reference-area]範囲参照領域の近くにある開始エッジや末端エッジなど先祖[fo:page-sequence]によって生成される領域に起因します。

制約

 文書命令中でこの[fo:change-bar-end]に先行するのは、そのペアと一致する形式を持つ[fo:change-bar-begin]にしなければいけません。もし、そのような[fo:change-bar-begin]がない場合にはエラーであり、条件を満たすためには、[fo:change-bar-end]を無視する事によって修復すべきです。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.5 Common Accessibility Properties
7.7 Common Aural Properties
7.30.1 change-bar-class

6.13.4 [ fo:wrapper ]

一般的な利用法

 [fo:wrapper]フォーマット化オブジェクトは、フォーマット化オブジェクトのグループにおける継承されたプロパティを記述する為に利用されます。

領域

 [fo:wrapper]フォーマット化オブジェクトは、[fo:wrapper]のそれぞれの子によって返される領域のシーケンスを結合する事によって作成される領域のシーケンスを返します。もし、このシーケンスが、少なくとも1つの通常領域に含まれるか、または、もし、[id]と[index-key]プロパティが[fo:wrapper]に記述されていない場合には、[fo:wrapper]は、それ自身はいかなる領域も生成しません。

 もし、[fo:wrapper]に返される領域のシーケンスが、通常領域を含まず、[id]と[index-key]プロパティが[fo:wrapper]に記述されている場合には、それは付加的に生成され、ゼロをセットした[inline-progression-dimension]と[block-progression-dimension]を持つ1つの通常領域を返します。この領域は、混合しない全てのブロック領域または、すべてのインライン領域である領域の子である(いくつかの先祖領域上の)制約に違反する場合を除き、インライン領域です。その(制約違反の)ケースでは、[fo:wrapper]は、代わりにブロック領域を生成します。

特性展開

 [id]、[index-class]、[index-key]を除く[fo:wrapper]は、プロパティを持たず、それによって直接利用されます。しかしながら、それは、その子によって利用される継承プロパティを保持する為に運搬装置として提供します。

制約

 [fo:wrapper]の子によって返される領域のシーケンスの結合指定は、子が[fo:wrapper]の下で指定されるものとして同じ指定がなされます。

コンテンツ


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

 [fo:wrapper]は、2つの例外を伴い、[fo:wrapper]の親の子である事を許容される子を持つ事を許容される場合に限定されます。

 この制限は再帰的に適用されます。

※注釈:例えば、[fo:wrapper]が、他の[fo:wrapper]の子である場合には、親[fo:wrapper]の子になる事を許容される子を持つ場合に限ります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.30.8 id
7.24.1 index-class
7.24.2 index-key

6.13.5 [ fo:marker ]

一般的な利用法

 [fo:marker]は、ヘッダやフッタ、動的テーブルヘッダや動的テーブルフッタを走査する際に作成される[fo:retrieve-marker]や[fo:retrieve-table-marker]の結合の中で利用されます。

 典型的な(以下の)例を含む

 [fo:marker]は、その親フォーマット化オブジェクトの初期値の子となる為に持ちます。

領域

 [fo:marker]は、直接いかなる領域も生成しません。その子は、「retrieve-class-name」プロパティ値が、この[fo:marker]の「marker-class-name」プロパティ値と同じである[fo:retrieve-marker]や[fo:retrieve-table-marker]をそれぞれ利用中に[fo:static-content]やテーブルヘッダ、テーブルフッタ内で検索、フォーマットされる場合があります。

制約

 [fo:marker]は、[fo:flow]の子孫としてのみ許容されます。

※注釈:プロパティ値は、[fo:retrieve-marker]や[fo:retrieve-table-marker]によって検索される際に[fo:marker]の子によって継承されないであろう[fo:marker]やその先祖上に設定します。

 もし、同一の親が同一の「marker-class-name」プロパティ値を共有している2つ以上の[fo:marker]は、エラーです。

コンテンツ


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

 [fo:marker]は、[fo:marker]の子を検索するいくつかの[fo:retrieve-marker]や[fo:retrieve-table-marker]の再配置として許容されるいくつかのフォーマット化オブジェクトを含む場合があります。[fo:marker]がない場合には、いくつかの[fo:marker]、[fo:retrieve-marker]や[fo:retrieve-table-marker]を子孫として持つ場合があります。

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.25.1 marker-class-name

6.13.6 [ fo:retrieve-marker ]

一般的な利用法

 [fo:retrieve-marker]は、ヘッダやフッタを走査する際に作成される[fo:marker]の結合の中で利用されます。

領域

 [fo:retrieve-marker]は、直接いかなる領域も生成しません。それは、検索する[fo:marker]の子によって(概念上)再配置されます。

特性展開

 [fo:retrieve-marker]の先祖上に記述されたプロパティと特性は、仮にその子が[fo:retrieve-marker]としての同じ先祖を持つものとして検索された[fo:marker]の子をフォーマットする際にアカウントに取得されます。

制約

 [fo:retrieve-marker]は、[fo:static-content]の子孫としてのみ許容されます。

 [fo:retrieve-marker]仕様は、フォーマット化ツリーにある再配置された[fo:retrieve-marker]を通したものとしてフォーマットされる選択された[fo:marker]の子を記述します。

 [fo:retrieve-marker]のプロパティは、領域ツリーの領域上にある優先権の階層を課します。各[fo:marker]は、[fo:marker]の親フォーマット化オブジェクトによって返された通常領域ごとに概念的に結び付けられます。付加的に[fo:marker]は、[fo:marker]の親フォーマット化オブジェクトによって直接生成された通常でない領域ごとに概念的に結び付けられます。逆に言えば、[fo:flow]のいくつかの子孫によって返された領域は、ゼロ以上の[fo:marker]の概念的な結びつきを持つ場合があります。検索された子である[fo:marker]は、この階層のトップにある領域と(概念的に)結び付けられたものです。

 階層にあるそれぞれの領域は、階層中のそれの下にあるいくつかの領域の為の優先権、または、より優先度の高いものとして考慮されます。一方が(優先度が)高いと決める為の2つの領域の比較において、「最初」と「最後」の語句は、領域ツリーを横断する事前指示を参照します。

 「含まれているページ」という用語は、最初の領域が生成した、または、検索された[fo:marker]の子によって返された領域を含むページを意味する為にここが利用されます。

 「marker-class-name」プロパティ値のある結び付けられた[fo:marker]を持つ領域は、適格である領域にする為に定義される[fo:retrieve-marker]の「retrieve-class-name」プロパティ値と同じです。限定的に適格である領域は、階層内に位置します。

 ページ内で適格である領域は、含まれているページに続くページ内にある場合に階層の中に位置していない領域を除き、先行するページ内にある適格である領域よりも(優先度が)高くなります。もし、「retrieve-boundary」プロパティが、「page-sequence」という値を持つ場合には、領域は、もし、含まれているページのページシーケンスに先行するページシーケンスからのページ上にある場合、階層の中に位置していないという事になります。もし、「retrieve-boundary」プロパティが、「page」という値を持つ場合には、領域は、もし、含まれているページ上にない場合には階層の中に位置していないという事になります。

 もし、「retrieve-position」プロパティが「first-starting-within-page」である場合には、「true」という値を持つ「is-first」特性があるページを含んでいる最初の適格である領域が、他の領域よりも(優先度が)高くなります。もし、そのような領域がない場合には、含まれているページにある最初の適格である領域が、他の領域よりも(優先度が)高くなります。

 もし、「retrieve-position」プロパティが「first-including-carryover」である場合には、含まれているページにある最初の適格である領域が、他の領域よりも(優先度が)高くなります。

 もし、「retrieve-position」プロパティが「last-starting-within-page」である場合には、「true」という値を持つ「is-first」特性があるページを含んでいる最後の適格である領域が、他の領域よりも(優先度が)高くなります。もし、そのような領域がない場合には、含まれているページにある最後の適格である領域が、他の領域よりも(優先度が)高くなります。

 もし、「retrieve-position」プロパティが「last-ending-within-page」である場合には、「true」という値を持つ「is-last」特性があるページを含んでいる最後の適格である領域が、他の領域よりも(優先度が)高くなります。もし、そのような領域がない場合には、含まれているページにある最後の適格である領域が、他の領域よりも(優先度が)高くなります。

 もし、領域の階層がカラである場合には、検索されるフォーマット化オブジェクトはありません。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.25.3 retrieve-class-name
7.25.4 retrieve-position
7.25.5 retrieve-boundary

6.13.7 [ fo:retrieve-table-marker ]

一般的な利用法

 [fo:retrieve-table-marker]は、異なるページを超えて変更する事が出来るコンテンツであるテーブルヘッダとテーブルフッタを作成する[fo:marker]の結合の中で利用されます。

 典型的な(以下の)例を含む

領域

 [fo:retrieve-table-marker]は、直接いかなる領域も生成しません。検索される[fo:marker]の子によって(概念的に)再配置されます。

特性展開

 [fo:retrieve-table-marker]の先祖に記述されているプロパティと特性は、[fo:retrieve-table-marker]としての同じ先祖を持つ子であるものとしての検索された[fo:marker]の子をフォーマットする際にアカウントに取得されます。

制約

 [fo:retrieve-table-marker]は、[fo:table-header]や[fo:table-footer]の子孫として、または、[fo:table-header]や[fo:table-footer]が許容される位置にある[fo:table]の子としてのみ許容されます。

 [fo:retrieve-table-marker]は、フォーマット化ツリーにある再配置された[fo:retrieve-table-marker]を通したものとしてフォーマットされる選択された[fo:marker]の子を記述します。

 [fo:table]は、(その子孫としての[fo:markers]を持つ)[fo:table-body]と1つ以上の通常ブロック領域を生成するその子孫としての[fo:retrieve-table-marker]を持つ[fo:table-header]や[fo:table-footer]両方の親です。これらは、「検索スコープ領域セット[retrieve scope area set]」になると言われています。その検索スコープ領域セットは、「retrieve-boundary-within-table」プロパティによって記述されている制約によって限定されます。検索スコープ領域セットにある領域は、検索スコープ領域セットと呼ばれます。これらは、確実に1つの生成された領域を含む検索スコープ領域や検索された[fo:marker]上にある子によって返された領域は、「最優先検索スコープ領域[primary retrieve scope area]」と呼ばれます。

 [fo:retrieve-table-marker]のプロパティは、検索スコープ領域の子孫上にある優先権の階層を課します。それぞれの[fo:marker]は、[fo:marker]の親フォーマット化オブジェクトによって返された通常の領域ごとに概念的に結び付けられます。付加的に[fo:marker]は、[fo:marker]の親フォーマット化オブジェクトによって直接生成された通常でない領域ごとに概念的に結び付けられます。逆にう言うと、[fo:flow]のいくつかの子孫によって生成された領域は、ゼロ以上の[fo:marker]の概念的な結びつきを持つ場合があります。検索された子である[fo:marker]は、この階層のトップにある領域と概念的に結び付けられたものです。

 階層にあるそれぞれの領域は、階層中のそれの下にあるいくつかの領域の為の優先権、または、より優先度の高いものとして考慮されます。一方が(優先度が)高いと決める為の2つの領域の比較において、「最初」と「最後」の語句は、領域ツリーを横断する事前指示を参照します。

 「marker-class-name」プロパティ値のある結び付けられた[fo:marker]を持つ領域は、[fo:retrieve-table-marker]の「retrieve-class-name」プロパティ値と同じで、検索スコープ領域の子孫である場合に適格であると定義されます。限定的に適格である領域は、階層内に位置します。

 もし、「retrieve-position-within-table」プロパティが「first-starting」である場合には、「true」という値を持つ「is-first」特性がある最優先検索スコープ領域にある最初の適格である領域は、他の領域よりも(優先度)が高くなります。もし、そのような領域がない場合には、最優先検索スコープ領域にある最初の適格である領域が、他の領域よりも(優先度が)高くなります。

 もし、「retrieve-position-within-table」プロパティが「first-including-carryover」である場合には、最優先検索スコープ領域にある最初の適格である領域が、他の領域よりも(優先度が)高くなります。もし、そのような領域がない場合には、検索スコープ領域の子孫である最後の適格である領域が、他の領域よりも(優先度が)高くなります。

 もし、「retrieve-position-within-table」プロパティが「last-starting」である場合には、「true」という値を持つ「is-first」特性がある検索スコープ領域の子孫である最後の適格である領域が、他の領域よりも(優先度が)高くなります。もし、そのような領域がない場合には、検索スコープ領域の子孫である最後の適格である領域が、他の領域よりも(優先度が)高くなります。

 もし、「retrieve-position-within-table」プロパティが「last-ending」である場合には、「true」という値を持つ「is-last」特性がある検索スコープ領域の子孫である最後の適格である領域が、他の領域よりも(優先度が)高くなります。もし、そのような領域がない場合には、検索スコープ領域の子孫である最後の適格である領域が、他の領域よりも(優先度が)高くなります。

 もし、領域の階層がカラである場合には、検索されるフォーマット化オブジェクトはありません。

コンテンツ


EMPTY

 次のプロパティは、このフォーマット化オブジェクトに適用します。
7.25.3 retrieve-class-name
7.25.6 retrieve-position-within-table
7.25.2 retrieve-boundary-within-table


ホーム前へ次へ