フォーマット処理は以下の工程で行われます。( )内は各工程で使われる構成要素です。
- SGML文書からグローブを構築(グローブ設計)
- グローブから流し込みオブジェクト木を作る(SDQL、構成規則、make式)
- レイアウトを指定する(クラス、プロシージャ、特質)
- 内容の組み方を指定する(クラス、特質)
- 流し込みオブジェクトを領域として出力する
スタイル言語で記述するのは、2~4の部分です。各工程の内容を順に説明します。
- (a) SGML文書からグローブを構築する
SGML文書を操作しやすいように要素に分解したものがグローブです。
分解した要素データ1つ1つをノードと呼びます。
グローブはグローブ設計という定義を元に作られます。 - (b) グローブから流し込みオブジェクト木を作る
流し込みオブジェクトとは、SGML文書の要素とフォーマット指定とをまとめて1つにしたものです。グローブのノードを、流し込みオブジェクトクラスに対応づけて、流し込みオブジェクトを作ります。
元のSGML文書が木構造であり、それから作られるグローブも木構造であるため、流し込みオブジェクトの集まりも木構造になります。流し込みオブジェクト木はオブジェクト同士の親子関係を示しています。 - (c) レイアウトを指定する
文書の外枠のスタイルであるページレイアウトや段組みを、流し込みオブジェクトクラスを使って指定します。レイアウトを表現するクラスは単純ページ、ページ列、段集合列です。これらのクラスにあるページモデルや段集合モデルというプロシージャの集まりと、特質を使います。 - (d) 内容の組み方を指定する
3で指定したレイアウトの中に配置される内容の組み方を指定します。これには流し込みオブジェクトクラスと特質を使います。いわゆるスタイル指定そのものが行われるのは3と4の工程です。 - (e) 流し込みオブジェクトを領域として出力する
3と4で指定した流し込みオブジェクトクラスが持つ組版上の意味と、そのオブジェクトの特質が持つ内容に従って、組版処理が行われます。オブジェクトはフォーマットによって領域という四角形の枠内に表現されます。流し込みオブジェクト木の中で親に当たるオブジェクトが子となるオブジェクトの領域の配置を決定します。実際の出力処理はバックエンドが行います。