JIS X 4151:1992 文書記述言語SGML | ページ 38

                                                                                            179
X 4151-1992
参考7 実現についての考察
この参考は,規定の一部ではないが,読者の理解を助けるために付ける。
SGMLシステムには二つの面がある。一つはマーク付き文書に対するものであり,もう一つはそれらを
処理する応用プログラムに対するものである。
文書に対する面として許容する異同については,この規格の本体に規定がある。応用プログラムに対す
る面は,規格となっていないが,この参考で,SGMLシステムが提供する機能として,その利用者の開発
したプログラムからSGML構文解析系及び実体管理系が利用できるようにしておくための有用なものを
幾つか示す。
この参考は,一般的ものであり,実現のすべての面を扱うものではない。実現項目の幾つかについて,
その感触を与えることを意図したものであって,実現についての仕様だと誤解してはならない。
1. SGML構文解析の模型 機能についての議論を行うには,まずSGML構文解析の模型を頭に描いてお
くことが必要になる。
備考 これは,SGML構文解析について特定の設計方式及び実現技法を要求するものではない。一見
そのように見える用語(例えば“手続き”,“スタック”,“サービスルーチン”など)も,単に
機能を説明する手段として使っているにすぎない。
ここに示す模型は,SGMLの開発者の設計に当たっての議論で有効であったものである。これ以外にも
模型はあるだろうし,必ずしも最善のものともいえない。不完全なところもあるし,内部的に矛盾を含ん
でいるかもしれない。しかしながら,この模型は,SGML構文解析系がシステムの他の構成要素とどのよ
うに結び付いているかを理解する助けとなるものであり,そのためにだけ提示するものである。
1.1 物理的入力 SGML構文解析系は,物理的な入力流を直接に読むことがない。すべての入力は,実
体管理系が取り仕切る。構文解析系は,システムから呼び出される際に,解析対象の文字列が渡される。
1.1.1 実体 構文解析系は,実体参照を認知すると,実体管理系にそのことを告げる。実体管理系は,そ
の新しい実体が終わるまでそれを物理的な入力源とし,それが終わると構文解析系に知らせる(つまり,
Eeを生成する。)。実体管理系は,その後,再び元の実体に戻って入力を続ける。
構文解析系が実体の境界を考慮するのは,複数文字の区切り子や文脈依存区切り子の認知を行う場合及
び区切り子で囲まれた文の中での実体参照が規格の要件を満たしていることを確認する場合だけである。
構文解析系は,それ以外の場合には,どの実体から得たものであるかに無関係に,連続した文字の列だけ
を扱う。
1.1.2 記録の境界 文書が記録の境界を含む場合の処理は,本体に規定がある。記録の境界を含む区切り
子文字列の認知は,入力の初期解析の段階で行う。データとしてREを無視する(本体6.6.1参照)かどう
かの判定は,すべての参照を解決し,マーク最小化を正規の形に復元し終えてからでないと行えない。
1.2 認識様相 SGMLの際立った特徴の一つに,複数の区切り子認知様相(本体8.6.1参照)をもつこと
がある。前書きが終わると,文書は,CON様相で走査される。この様相では,本体6.6に従って文の文字
が処理される。この様相は,次のいずれかが現れて様相が切り替わるまで続く。
(1) 記述的マーク(開始タグ又は終了タグ) 構文解析は,TAG様相になる。
共通識別子を見つけ,その属性及び属性値を検査・確認してとっておく。このとき,指定のない属
性に対しては省略時値を補う。その共通識別子に結合している手続きに,とっておいた属性名及び属

――――― [JIS X 4151 pdf 186] ―――――

180
X 4151-1992
性値への指標を渡して,制御を移す。
応用によって,その手続きは,その要素の内容のすべてをとっておいた上でないと処理を行うこと
ができないこともあれば,応用内部の状態を書き換えるだけで直ちに制御を返してくることもある。
その要素の手続きが内容のすべてをとっておくのであれば,その中に入れ子になった要素の手続きは,
それぞれその内容を処理した後で,それをこのとってある文に返してくる必要がある。
備考 システムが解析前の文をとっておき,後になってからあたかもそれが文書の別の場所に書いて
あったかのように解析するのは,規格違反である。文書は,書いてあった位置で解析しなけれ
ばならない。解析してしまった文(共通識別子,属性などの情報を含む。)を内部形式でとって
おき,その後の処理に使うようにするのが望ましい。
システムが制御を返してくると,構文解析は,tagc(又はそれと同等なもの)の後,CON様相で再
開される。
(2) 処理指令 指令そのものは,CDATAとして(PI様相で)構文解析し,その結果の文字列を,区切り
子を取り除いた上で応用プログラムに渡す。応用プログラムは,その指令を実行し,制御を返してく
る。構文解析は,picの後,CON様相で再開される。
(3) マーク宣言 マーク宣言の開始とその名前とを見つけると,MD様相に移り,個々の引数と宣言の終
わりとを見つけていく。それぞれの宣言に呼応する意味解析ルーチンを呼び出して宣言を処理させる。
(4) 参照 参照の構文解析では,REF様相で,その名前(又は文字番号)を判定し,その参照の終了を見
つける。
それが文字参照の場合,構文解析系は,その参照をその実体の中で正当な文字に置換する。非SGML
文字又はデータとしての機能文字への参照であれば,その文字には,印を付けて,通常の文字と間違
えないようにしておく。
実体参照の場合,その実体名を実体管理系に渡す。実体管理系は,入力バッファの指標を更新した
上で制御を返してくる。実体に対応付けられていない短縮参照の場合は,本体8.4.6に従って処理する。
(5) データ データ文字は,1文字ずつ手続きに渡してもよいし,何かのマークがくるまでためておいて
から手続きに渡してもよい。後者の場合は,そのデータの出現位置と長さとを手続きに渡し,構文解
析はそのマークから再開する。
渡すデータ文字列の中には,文字参照で生じた印の付いた文字が入っていることがある。システム
は,これらを正しく処理できなければならない。
1.3 マーク最小化 マーク最小化によって,利用者は,要素の開始タグ・終了タグの一部又は全部を省
略することができる。
SHORTTAG最小化に対しては,システムは要素構造での現在位置をいつも押さえていなければならない。
普通,このために開いている要素の共通識別子の記録を保持しておく。更に,属性定義を解釈することも
必要となる。検定機構を提供しているのでなければ,内容モデルを知る必要はない。
しかしながら,OMITTAG機構及びDATATAG機構に対しては,内容モデルの知識が,不可欠となる。
備考 マーク最小化を,利用者の書いた応用プログラムでも処理できるようにするのは,規格違反で
ある。同じ文書が応用によって異なって構文解釈されてしまう可能性が生じるからである。
1.4 変換 SGMLでは,文書文字集合とシステム文字集合とが同一であるものと想定している。言い換
えれば,SGML構文解析系は,いかなる変換も関知しない。変換が必要な場合は,システムが処理に先立
って行うか,処理の最中にSGML構文解析系に透過な方法で行うかする。

――――― [JIS X 4151 pdf 187] ―――――

                                                                                            181
X 4151-1992
1.5 プログラム言語の対比 SGMLの記述的タグは,手続き言語の命令と対立するものである。特に,
文書型の設計者は,この両者が類似のものだと考えるのを避けることが望ましい。しかしながら,要素の
属性と命令の引数との間には,次のとおりの類似性を見ることができる。これは,処理系設計者の理解の
一助になるであろう。
SGMLでの用語 プログラム言語での用語
属性定義並び 仮引数並び
属性定義 仮引数
属性仕様並び 実引数並び
属性仕様 実引数
多くの仮引数並びとは違って,属性定義を並べた順序には,属性指定を並べる順序を決めてしまう働き
がないことに注意すること。
2. 初期設定 システムは,利用者がその実行の開始に当たって幾つかの情報を指定できるようになって
いなければならない。その情報のうち,例えば,活性文書型,活性連結型などは,SGML構文解析系にも
伝わるようになっていなければならない。どのような形で情報を与えるかは,システムにゆだねられてい
る。
2.1 手続きの初期対応付け 利用者は,要素型とその要素型を処理する手続きとの対応付けを指定しな
ければならない。
この指定は,単一の手続き(例えば,文書型に対する手続き)の名前を与え,その手続きがその他の要
素についての手続きの対応付けを行う,という形にすることもできる。構文解析系は,この情報を必要と
はしないが,渡してもらっておけば,記述的タグの情報を返す際に適切な手続きの名前も一緒に返すこと
が可能になる。
2.2 連結処理指定 書式付け作業においては,その書式付け前の文書の文書型を“論理構造”といい,
書式付け後の文書の文書型を,“割付け構造”ということが多い。書式付けを施そうとするSGML文書は,
いつでも,論理構造(普通は,基本文書型)を含む。明示連結処理を使う場合,その文書は,割付け構造
についての文書型定義(“共通割付け構造”という。)を含み,更にその実現値も含むこともある。
書式付け応用では,利用者は,処理を開始するに当たって,論理構造から望む割付け構造の実現値を生
成する連結型を指定するとともに,その応用が必要とする引数を指定しなければならない。これらの情報
は,文書のマークには入れない。その応用を使うたびに違い得るからである。しかしながら,論理構造の
どの要素から割付け構造のどの要素が生成されるかを指定する連結型宣言は,マークの中に含めておく。
2.3 文書実現値の併存 完全に書式付けできた文書の実現値は,何かの応用の結果できるものであり,
普通,これを書式付け応用に使うことはない。しかし,索引処理及びカタログ処理に使うことはある。こ
れらでは,論理構造に基づく情報とともに,割付け構造に基づく行番号及びページ番号を利用するからで
ある。このとき,この二つの構造の最上位での関連及び下位要素間の関連は,その文書の恒久的な特性の
一つであり,二つの文書型のタグを併置して表現する。初期設定に際して,利用者は,処理しようとする
実現値の二つの文書型を指定しなければならない。

――――― [JIS X 4151 pdf 188] ―――――

182
X 4151-1992
3. 手続きの動的な対応付け システムは,手続きの対応付けを,それぞれの手続きからも行える動的な
ものにしておくのが望ましい。応用によっては,ある要素型に対する手続きが,その下位要素の処理を指
定することがあるからである。例えば,書式付け応用で,“body(本体)”型の要素の手続きでは,“heading
(見出し)”型の要素をローマン体に指定し,共通識別子“appendix(付録)”に対する手続きではその中
に現れる “heading” の要素をイタリック体に指定する,ということがある。
言い換えれば,この見出し要素は,どこに現れたかによって修飾を受ける。これは,姓名になぞらえる
ことができる。“見出し”は,他の“見出し”と何かを共有する(“名”は同じ。)が,“本体”の一部であ
ったか,“付録”の一部であったかによって修飾を受ける(“姓”が異なる。)。
4. 誤りの処理 規格は,マーク誤りを,その性質及び位置を含めて報告するように求めている。そのシ
ステム,環境,利用者界面などに応じて,この要件をどう満足させるかは,処理系作成者の裁量に任され
ている。
次の事柄に留意するとよい。
(1) 実体構造内の位置は,実体名と,その中での記録番号及び文字番号とで示すことができる。これに次
の(a)(c)を加えて示してもよい。
(a) 開いている実体の一覧
(b) 開いている実体への参照の,実体構造での位置
(c) 短縮参照で参照している実体についての,対応表名及び短縮参照文字列
(2) 要素構造での位置も,実体構造での位置と同様に有用である。要素構造での位置は,その時点で開い
ている要素の一覧で示すことができる。
(3) 誤りの性質を報告するについては,利用者にとってその誤りを理解するのに影響を与え得る,使用中
の機能(マーク最小化など)を十分に配慮することが望ましい。

――――― [JIS X 4151 pdf 189] ―――――

                                                                                            183
X 4151-1992
参考8 適合性の類別及び検定
この参考は,規定の一部ではないが,読者の理解を助けるために付ける。
この規格は,SGMLシステムに様々な規格への適合の仕方を規定している。適合性を検定する機関にと
っては,検定すべき項目について適切な選択が必要となる。更に,検定済みシステムについて,そのシス
テムがどの機構を提供し,どういう構文を提供しているのかを類別する簡便な手段も必要となる。
この参考は,これらの目的にかなう類別方式を示すとともに,検定証明に対する要請を示す。
1. 類別符号 提示する類別方式の要約を,参考8図1に示す。この方式では,SGMLシステムに機構
(Feature) ・構文 (Syntax) ・検定 (Validation) の3部分からなる適合性類別符号をふる。この類別符号を,
その頭文字を並べて “FSV” と略称する。
例えば,FSV “0768RS064” は,機構符号 “0768”,構文符号 “RS” 及び検定符号 “064” からなる。この
類別符号は,各種機構を使っていない基本SGML文書について,特定検定なしの検定ができるシステムを
表す。
その類別名は,参考8図1に従うと,“基本・検定”となる。検定符号部分だけを “000” に変えると,
その類別名は“基本・非検定”となる。
適合システムが機構・具象構文・検定能力のそれぞれを独立に選択できることから,適合性を一通りの
類別階層に収めることはできない。そこで,参考8図1に示すとおりに,機能符号に基づく階層及び検定
符号に基づく階層の二つを設けてある。
1.1 機能符号 機能符号は,システムが提供する機構について,次に示す重みを加えて定める。
機構 重み
FORMAL 1
CONCUR 2
EXPLICIT 4
IMPLICIT 8
SIMPLE 16
SUBDOC 32
RANK 64
DATATAG 128
OMITTAG 256
SHORTTAG 512
その符号は,必要に応じて先頭に0を補って,最大の符号 (1023) と同じ長さ(4けた)に合わせる。
機構それぞれの重みが2のべき乗になっているから,どの機構を提供しているかは,機構符号から一意
的に復元できる。例えば,機構符号 “0384” は,DATATAG及びOMITTAGだけを提供していることを示
す。
備考 この手法は,それぞれの機構について独立に提供するしないが指定できる場合,つまり,それ
ぞれの機構についての値が2値(0 : 提供しない,1 : 提供する)である場合に成立する。より
一般には,値VはN個の値V=0V=N−1をとる。このときは,それぞれの項目について係
数Fを,直前の項目の係数GのN倍にとる(最初の項目の係数Gは1とする。)。項目の値V
に対して,その項目の重みW (V) は,VとGの積とする(まとめると,F=N*G,W (V) =V*G
となる。ただし, “*” は乗算とする。)。

――――― [JIS X 4151 pdf 190] ―――――

次のページ PDF 191

JIS X 4151:1992の引用国際規格 ISO 一覧

  • ISO 8879:1986(MOD)
  • ISO 8879:1986/AMENDMENT 1(MOD)

JIS X 4151:1992の国際規格 ICS 分類一覧

JIS X 4151:1992の関連規格と引用規格一覧