文書構造

SPDL文書は、単一のページを表現するものであっても、 ページの集合を表現するものであってもよい。 SPDL文書全体を構成する主要な構造要素は、 ピクチャ構造要素及びページ集合構造要素とする。

ピクチャは、一個の独立した実体と見なすことのできる像を記述する。 それは、単一のページ像であってもよく、またページ像の一部分であってもよい。 ページ集合は、1個以上のページを記述する。

この他、SPDL文書構造にとって重要な、次に示す二つの構造要素がある。 これらは、意味的に上記のものとは区別される。

これらの構造要素は、 構文上はピクチャ構造要素及びページ集合構造要素と区別できないが、 その階層構造上における位置によって識別される。

. ]]> 各ページ集合及びピクチャは、ブロックであって、 で定義するとおり、関連付けられたブロック状 態をもつ。 ページ集合及びピクチャは、 文書である場合もあれば、 他の上位ブロックの下位要素である場合もある。

文書(DOCUMENT)

文書構造要素は、他のいかなる構造要素の下位にもない、次 のいずれかの構造要素とする。

  • ページ集合構造要素
  • ページ構造要素

文書の処理は、次に示す各段階からなる。

  1. できあがった文書を提示するための機構を再設定する。
  2. 提示パラメタ群を初期化する。
  3. ; ]]> 文書がページ集合である場合、 で規定するとおりこれを処理する。
  4. ; ]]> 文書がページである場合、 で規定するとおりこれを処理する。
  5. 文書の仕上げ処理を行う。
  6. できあがった文書を提示する。

ページ集合(PAGESET)

ページ集合構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 0個又は1個のプロローグ構造要素。
  • 任意の順に並んだ 0個以上のページ集合構造要素又はページ構造要素からなる列。

これらの直接の下位要素群は、ここに示したとおりの順序で現れなければならない。

ページ集合の処理

ページ集合の処理は、次に示す各段階からなる。

  1. ; ]]> で規定するとおり、そのページ集合用の ブロック状態を生成する。
  2. 直接の下位プロローグがあれば、それを処理する。
  3. 直接の下位にあるページ集合及びページ構造要素のそれぞれを、 その並び順に従って処理する。
  4. このページ集合用のブロック状態を破棄する。

ページ集合が下位のページをもたない場合、 その処理を行ってもページ像は可視化されない。

ページ(PAGE)

他のどのピクチャ構造要素の下位にもないピクチャを、 ページ構造要素とする。

ページ構造要素の処理は、次に示す各段階からなる。

  1. ; ]]> そのページと関連付けられた現ページ像を設定する。 その初期値は、で規定するとおり、空白のページ像とする。
  2. ; ]]> で規定するとおり、そのピクチャ構造 要素を処理する。
  3. そのページに関連付けられた現ページ像を、媒体上に可視化する。

. ]]> ページに関連付けられた現ページ像の媒体上への可視化については、 で規定する。

ピクチャ(PICTURE)

ピクチャ構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 1個の内容表現識別子構造要素。
  • 1個のピクチャ本体構造要素又は非SPDLピクチャ本体構造要素

これらの直接の下位要素群は、ここに示したとおりの順序で現れなければならない。

直接の下位にピクチャ本体をもつピクチャを、 SPDLピクチャと呼ぶ。 直接の下位に非SPDLピクチャ本体をもつピクチャを、 非SPDLピクチャと呼ぶ。

内容表現識別子(CONTENT REPRESENTATION IDENTIFIER)

内容表現識別子は、基底構造要素とする。 内容表現識別子は、公開オブジェクト識別子型の値をとる。

. ]]> この規格が、対応する公開オブジェクト識別子値を定義するオブジェクト名、 及びそれらの値の意味は、に示すとおり。 オブジェクト名 意味 Content::SPDL-Binary ピクチャは、直接の下位にピクチャ本体をもっており、 その直接の下位にある各トークン列の内容は、 2進内容表現交換様式によるSPDL内容表記法のインスタンスである。 Content::SPDL-ClearText ピクチャは、直接の下位にピクチャ本体をもっており、 その直接の下位にある各トークン列の内容は、 平文内容表現交換様式によるSPDL内容表記法のインスタンスである。

これ以外の任意の値の内容表現識別子は、 そのピクチャがその直接の下位に非SPDLピクチャ本体構造要素をもつことを示し、 その非SPDLピクチャ本体構造要素の様式を識別する。

ピクチャ本体(PICTURE BODY)

ピクチャ本体構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 0個又は1個のプロローグ構造要素。
  • 任意の順に並んだ0個以上のピクチャ構造要素又はトークン列構造要素からなる列。

これらの直接の下位要素群は、ここに示したとおりの順序で現れなければならない。 . ]]> トークン列構造要素はで定義する。

非SPDLピクチャ本体(NON-SPDL PICTURE BODY)

非SPDLピクチャ本体構造要素は、この規格の適用範囲外とする。 非SPDLピクチャ本体の構造は、 最も近い上位ピクチャの内容表現識別子の値によって識別され、 またその公開オブジェクト識別子の所有者によって定義される。

SPDLピクチャの処理

SPDLピクチャの処理は、次に示す各段階からなる。

  1. ; ]]> で規定するとおり、そのピクチャ用のブ ロック状態を生成する。
  2. 直接の下位にプロローグがあれば、それを処理する。
  3. 下位のピクチャ本体の直接の下位にあるピクチャ構造要素及びトークン列構造要素のそれぞれを、 その並び順に従って処理する。
  4. このピクチャ用のブロック状態を破棄する。

下位のピクチャ本体の直接の下位にある各トークン列構造要素の処理は、 次に示す各段階からなる。

  1. 次に示すものを与えて内容プロセサを呼び出す。
    • そのトークン列の値である内容値。
    • ; ]]> で規定するとおり、最も近い上位ピクチャのブロック状態から得られる解釈文脈。
    • 最も近い上位ページの現ページ像。
  2. 内容処理が完了した段階で次のことを行なう。
    • 最も近い上位ピクチャのブロック状態の仮想機械現状態を、 内容プロセサから返された仮想機械の状態で置き換える。
    • 最も近い上位ページの現ページ像を、 内容プロセサから返された現ページ像で置き換える。

非SPDLピクチャの処理

非SPDLピクチャの処理は、構造プロセサがその内容表現識別子の値を認識できるかどうか、 及びその値によって指定される非SPDLピクチャ本体の処理ができるかどうかによって異る。 非SPDLピクチャの処理は、次のいずれかからなる。

  • 内容表現識別子の値によって指定されるとおりに、 その非SPDLピクチャ本体を処理する。
  • 構造エラーを生成し、その非SPDLピクチャ本体を無視する。 中断方針パラメタの値によって許されている場合、文書の処理を続行する。

プロローグ(PROLOGUE)

プロローグ構造要素及びその下位にあるすべての下位要素群を総称して、 プロローグ構造要素群と呼ぶ。 プロローグ構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 0個以上の外部宣言構造要素
  • 0個又は1個の参考情報宣言構造要素
  • 0個以上の非SPDL操作構造要素
  • 0個以上のDPI宣言構造要素
  • 0個又は1個の文脈宣言構造要素
  • 任意の順序で並んだ、0個以上の資源定義、資源宣言又は文脈追加構造要素
  • 0個又は1個の初期設定手続き構造要素

これらの直接の下位要素群は、ここに示したとおりの順序で現れなければならない。

プロローグ構造要素の処理は、次の各段階からなる。

  1. その直接の下位要素のそれぞれを、現れた順に処理する。
  2. 直接の下位要素群の処理が終了した時点で、 最も近い上位ブロックのブロック状態の継承可能文脈スタックに、 そのブロック状態の仮想機械現状態の文脈スタックの複製を設定する。

参考情報宣言(INFORMATIVE DECLARATION)

参考情報宣言構造要素は、 そのブロックに関して参考となる情報をヒントという形式で提供する。 ヒントは、正確でも完全でもなくてよいが、有用な場合もある情報とする。 ヒントの例としては、文書の提示に必要とされるフォント又は他の資源のリストがあげられる。

参考情報宣言構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 0個以上のヒント構造要素

ヒント(HINT)

ヒント構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 1個のヒント名構造要素
  • 1個のヒント値構造要素

これらの直接の下位要素群は、ここに示したとおりの順序で現れなければならない。

ヒント名(HINT NAME)

ヒント名構造要素は、基底構造要素とする。 ヒント名構造要素の値は、環境内識別子型の値とする。

ヒント値(HINT VALUE)

ヒント値構造要素は、同位のヒント名の値に依存して 基底構造要素又は複合構造要素となる。

ヒント値が基底構造要素である場合、その値の型は、同位のヒント名の値に依存する。 ヒント値が複合構造要素である場合、 その直接の下位要素群は同位のヒント名の値に依存する。

参考情報宣言の処理

参考情報宣言構造要素は、文書の提示に対して何の効果ももたない。

ヒント

この規格で定義するヒント構造要素群は、次のとおりとする。

境界く(矩)形領域

このヒントは、ページ集合又はピクチャの内容によって指定されるすべての像を含む 最小の境界く(矩)形領域の寸法を、 そのページ集合又はピクチャが用いられる時点で有効なユーザ座標系の単位で示す。

ヒント名

境界く(矩)形領域の下位のヒント名構造要素の値は、 オブジェクト名 ヒント値

境界く(矩)形領域の下位のヒント値構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 1個の最小X構造要素
  • 1個の最小Y構造要素
  • 1個の最大X構造要素
  • 1個の最大Y構造要素

これらの直接の下位要素群は、ここに示したとおりの順序で現れなければならない。

最小X (MINIMUM X)

最小X構造要素は、基底構造要素とする。 最小X構造要素の値は、数型の値とする。

最小Y (MINIMUM Y)

最小Y構造要素は、基底構造要素とする。 最小Y構造要素の値は、数型の値とする。

最大X (MAXIMUM X)

最大X構造要素は、基底構造要素とする。 最大X構造要素の値は、数型の値とする。

最大Y (MAXIMUM Y)

最大Y構造要素は、基底構造要素とする。 最大Y構造要素の値は、数型の値とする。

ページ数

このヒントは、ページ集合中にあるページ構造要素の数を示す。

ヒント名

ページ数の下位のヒント名構造要素の値は、 オブジェクト名 ヒント値

ページ数の下位のヒント値構造要素は、基底構造要素とする。 このヒント値構造要素の値は、非負整数型の値とする。

向き

このヒントは、ピクチャによって生成される像 又はページ集合によって生成されるページ像群の向きを示す。

ヒント名

向きの下位のヒント名構造要素の値は、 オブジェクト名 ヒント値

向きの下位のヒント値構造要素は、基底構造要素とする。 このヒント値構造要素の値は、向きを識別する列挙型の値とする。 . ]]> この型の値及び識別される向きは、に示すとおり。 向き portrait 縦置き(短辺をx軸と平行に置く) landscape 横置き(長辺をx軸と平行に置く)

フォント参照

このヒントは、直接の上位ブロック又は下位のブロック群中にある フォント参照フォント指定構造要素中に含まれているフォント参照群を示す。

ヒント名

フォント参照の下位のヒント名構造要素の値は、 オブジェクト名 ヒント値

フォント参照の下位のヒント値構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 1個以上のフォント参照構造要素

外部参照

このヒントは、直接の上位ブロック又は下位のブロック群中の参照によって含められる構造要素群を示す。

ヒント名

外部参照の下位のヒント名構造要素の値は、 オブジェクト名 ヒント値

外部参照の下位のヒント値構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 1個以上の外部宣言構造要素

使用資源

このヒントは、 直接の上位ブロック又は下位のブロック群中の 資源宣言又は資源定義構造要素中で宣言されている資源を示す。

ヒント名

使用資源の下位のヒント名構造要素の値は、 オブジェクト名 ヒント値

使用資源の下位のヒント値構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 1個以上の資源宣言構造要素

使用色空間ファミリ

"used or" -> "used in" ? ]]> このヒントは、 直接の上位ブロック又は下位のブロック群中の 色空間指定中で用いられている色空間資源の色空間ファミリを示す。

ヒント名

使用色空間ファミリの下位のヒント名構造要素の値は、 オブジェクト名 ヒント値

使用色空間ファミリの下位のヒント値構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 恐らくCOLOR SPACE FAMILY IDENTIFIERの誤り。 ]]> 1個以上の色空間ファミリ識別子構造要素

使用媒体

このヒントは、 直接の上位ブロック又は下位のブロック群中の 媒体宣言構造要素中で宣言されている媒体を示す。

ヒント名

使用媒体の下位のヒント名構造要素の値は、 オブジェクト名 ヒント値

使用媒体の下位のヒント値構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 1個以上の媒体宣言構造要素

使用色材集合

このヒントは、 直接の上位ブロック又は下位のブロック群中の 色材集合DPI構造要素中で識別されている色材集合を示す。

ヒント名

使用色材集合の下位のヒント名構造要素の値は、 オブジェクト名 ヒント値

使用色材集合の下位のヒント値構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 1個以上の色材集合指定構造要素

非SPDL操作(NON-SPDL OPERATION)

非SPDL操作構造要素は、 SPDL文書を処理又は提示するSPDL提示プロセス以外のプロセスによって実行される 操作を指定するために用いることができる。 非SPDL操作構造要素によって指定される操作は、この規格の適用範囲外とする。 非SPDL操作構造要素は、 SPDL提示プロセスによって行われる文書の提示に対して何の効果ももたない。

非SPDL操作構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 1個の操作名構造要素
  • 1個の操作値構造要素

これらの直接の下位要素群は、ここに示したとおりの順序で現れなければならない。

操作名(OPERATION NAME)

操作名構造要素は、基底構造要素とする。 操作名の値は、環境内識別子型の値とする。

操作値(OPERATION VALUE)

操作値構造要素は、その同位の操作名の値に依存して、 基底構造要素となる場合も複合構造要素となる場合もある。 操作値が基底構造要素である場合、 その値の型は、同位の操作名の値に依存する。 操作値が複合構造要素である場合、 その直接の下位要素群は、同位の操作名の値に依存する。

非SPDL操作の処理

特定の操作名値に対応する非SPDL操作の意味及び 操作値の構文を規定することは、 その操作名の値である公開オブジェクト識別子の所有者の担当と する。

非SPDL操作構造要素は、 SPDL提示プロセスによって行われる文書の提示に対して何の効果ももたない。 SPDL提示プロセス以外のプロセスによって行われるSPDL文書の提示に対する非SPDL操作の効果は、 この規格の適用範囲外とする。 非SPDL操作構造要素は、 SPDL提示プロセス以外の提示プロセスによって行われるSPDL文書の提示に 影響を与えてもよい。

文脈宣言(CONTEXT DECLARATION)

文脈宣言構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

  • 0個以上の内部資源識別子構造要素

. ]]> 内部資源識別子構造要素は、で定義する。

文脈宣言の処理

ここで、文脈宣言が、その値がそれぞれname . . . . nameであるn個の内部資源識別子構造要素からなっており、 かつ1 ≤ i ≤ nである各

  • nameは、その文脈宣言の文脈中において、文脈辞書Dictに結合されている。
  • DictRefは、文脈辞書Dictを参照する辞書参照とする。

    , then the processing of the CONTEXT DECLARATION shall consist of replacing the Context Stack of the Block State of the most immediately superior BLOCK with the Context Stack consisting of (using the notation of ): ]]> さらに、SystemDictRef及びUserDictRefは、で 定義する文脈辞書群を参照する辞書参照とする。この場合、その文 脈宣言の処理は、最も近い上位ブロックのブロック状態の文 脈スタックを、次に示すものからなる文脈スタックで置き換えることか らなる(ここでは、に示す記法を用いている。)。

  • <DictRefn: DictionaryReference>
  • . . .
  • <DictRef1: DictionaryReference>
  • <UserDictRef: DictionaryReference>
  • <SystemDictRef: DictionaryReference> ]]>
  • <DictRefn: 辞書参照>
  • . . .
  • <DictRef1: 辞書参照>
  • <UserDictRef: 辞書参照>
  • <SystemDictRef: 辞書参照>

    name . . . . nameのうち、 一つでもその文脈宣言の文脈内において文脈辞書に結合されていないものがあった場合、 構造エラーが発生する。

    文脈宣言がその下位に内部資源識別子を1個ももっていなかった場合、 その文脈宣言の処理は、 最も近い上位ブロックのブロック状態の文脈スタックを、 次に示すものからなる文脈スタックで置き換えることからなる。

  • <UserDictRef: DictionaryReference>
  • <SystemDictRef: DictionaryReference> ]]>
  • <UserDictRef: 辞書参照>
  • <SystemDictRef: 辞書参照>

    文脈追加(CONTEXT ADDITION)

    文脈追加構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

    • 1個の内部資源識別子構造要素

    . ]]> 内部資源識別子構造要素は、で定義する。

    文脈追加の処理

    文脈追加の処理は、 最も近い上位ブロックのブロック状態の文脈スタック上に、 下位の内部資源識別子の値に結合された辞書参照を積むことからなる。

    その内部資源識別子の値がその文脈追加の文脈内において文脈辞書に結合されていなかった場合、 構造エラーが発生する。

    初期設定手続き(SETUP PROCEDURE)

    初期設定手続き構造要素は、次に示す直接の下位要素群をもつ複合構造要素とする。

    • 1個以上のトークン列構造要素

    初期設定手続きの処理

    初期設定手続きの処理は、次の各段階からなる

    1. 次に示すものを与えて内容プロセサを呼び出す。
      • その初期設定手続きの直接の下位にあるトークン列構造要素群の値を 連結することによって得られる内容値。
      • . ]]> で規定するとおり、最も近い上位ブロックのブロック状態から得られる解釈文脈。
    2. 内容処理が完了した段階で、 最も近い上位ブロックのブロック状態中の次のものを、 内容プロセサによって返される仮想機械の状態中の対応する要素で置き換える。
      • 作図状態スタック
      • 現作図状態
      • 退避オブジェクトの順序付き集合
      • 被参照オブジェクトの集合
      • 状態変数の集合

      内容プロセサによって返された状態がOK以外であった場合、 構造エラー又は構造警告が発生する。

    初期設定手続きを処理した結果として、 最も近い上位ブロックのブロック状態の文脈スタック及びオペランドスタック、 又は現ページ像に変更が加えられることはない。 ページ集合のプロローグ中にある初期設定手続きは、 そのページ集合の直接の下位にあるトークン列及びページ構造要素のために 初期ブロック状態中の現作図状態、被参照オブジェクトの集合及び状態変数の集合を設定することができる。