109
X 4151-1992
識別子属性に与える値は,名前でなければならず,しかもその文書の識別子属性の値として与えた他の
名前と違ったものでなければならない。ほかの名前の場合と同じで,すべて大文字に変換して扱われる。
この名前を参照して使う要素には,“識別子参照”属性を設けておかなければならない。それには,その
宣言値に見出し語 “IDREF” を指定すればよい。
例2. <!−− 要素 内容 −−>
<!ELEMENT figref EMPTY>
<!−− 要素 名前 値 省略時値 −−>
<!ATTLIST figref refid IDREF #IMPLIED>
識別子参照属性に与える値は,その参照しようとする要素の識別子属性に与えたのと同じ名前でなけれ
ばならない。この場合も,名前は大文字に変換して扱われる。
10. 内容参照属性 文書が幾つかの章に分かれていて,それぞれの章ごとに書式付け及び印字を行う場合
がある。この場合,それぞれの章の中では“図参照”を自動的に処理できても,章をまたがる“図参照”
が自動処理できなくなってしまう。すると,“図参照”に対する要素宣言では,その内容が空になる(章の
中での参照で自動処理される場合)ことも,直接に与える(ほかの章への参照で自動処理できない場合)
こともあると指定しておかなければならない。
この空の属性は,その属性定義で“内容参照”属性として指定しておかなければならない(この点を除
けば,普通の属性と変わるところはない。)。その指定には,省略時値として見出し語 “CONREF” を書い
ておく。
例1. <!−− 要素 内容 −−>
<!ELEMENT figref (#PCDATA, fignum)>
<!−− 要素 名前 値 省略時値 −−>
<!ATTLIST figref refid IDREF #CONREF>
見出し語 “CONREF” は,その属性が内容参照属性であることを指定するとともに,それが補充可能な
属性(省略時値に見出し語 “IMPLIED” を指定したときと同じ)であることも指定している。
例2. この例には,自動的に生成される
<figref refid=figdavis> への図参照と
直接にその内容を与えての
<figre> 附属書 <fignum> A-1 </fignum>
</figref> への図参照とが現れる。
例2の最初の “figref” は内容が空であり,2番目の “figref” は内容が文字列と “fignum” の両方になっ
ている。
その識別子参照属性に名前を与えてその内容が空となる使い方をしたとき,これを“明示内容参照”と
いう。明示内容参照には,終了タグを書いてはならない(その内容が空なのだから,書く必要もない。)。
内容が空になっている要素でも,その内容モデルが任意選択になっていて,それに従って空にした場合
には,扱いが変わる。このように,たまたま空になった要素には,必ず終了タグを書かなければならない
[マーク最小化機構(参考4参照)を使っているときを除く。]。その開始タグを見ただけでは,その内容
が空になっているかどうかが分からないからである。
内容を “EMPTY” と指定した要素に内容参照属性を指定することには,意味がない(したがって,指定
することはできない。)。
――――― [JIS X 4151 pdf 116] ―――――
110
X 4151-1992
要約するとこうなる。内容参照属性は,内容が “EMPTY” でない要素に対してだけ指定することができ
る。開始タグでこれらの属性に値を与えている場合,その要素は空として扱われるので,終了タグを書く
ことはできない。
11. 内容モデルの例外 内容モデルは,その最高位の水準に現れ得る要素(部分要素)を指定する。しか
しながら,場合によっては,更に下位に位置する要素についても述べる必要が生じることがある。要素宣
言での,“例外”引数とよばれる付加的な引数は,こうした目的のためにある。
11.1 添加要素 索引の付いた本を考えると,その本文の中には索引項目が混じって現れる。書式付けの
過程では,この索引項目を収集し,整列し,ページ番号とともに索引として印字することになる。
この“索引項目”を“本”の下位の要素としてきちんと指定するのは,大事になる。ほとんどすべての
モデル群に入れてやらなければならないからである。そこで,例外引数を活用する。
例 <!−− 要素 内容 (例外)・−−>
<!ELEMENT textbook (front・, body, rear・) + (entry)>
正符号 “+” は,区切り子plusである。ここでのplusは, “entry” (索引項目)が “textbook”
のどこにでも,データ文字の水準にでも現れ得ることを意味している。
なお,注釈の中に書いた “・” は,例外引数が任意選択であることの備忘にすぎない。
区切り子plusで指定する例外引数を,“添加要素”群という。
11.2 排除要素 その要素のどの水準にもある種の要素が出てきてはならない,と指定したいこともある。
例えば,例1.は“図 (figure)”の入れ子を禁止しようとするものである。
例1. <!−− 要素 内容 (例外)・−−>
<!ELEMENT fig (figbody, figcap・) − (fig)>
<!ELEMENT figbody (artwork|p+)>
<!ELEMENT p (#PCDATA|fig)>
この内容モデルは, “fig” の最上位に “fig” を許してはいない。しかし,その “figbody” として “fig” を
含んだ “p” が出てき得る形になっている。これを禁止しているのが,区切り子minusを付けた例外引数
“− (fig)” である。この例外引数を,“排除要素”群という。
排除要素群の中に指定できる共通識別子は,その影響するモデル群の中で,出現標識opt又はrepを付
けたものか,接続子orで結んだ群の成分となっているものか,又は添加要素であるものかのいずれかでな
ければならない。言い換えると,排除要素群の指定によって,モデル群がその文書に必すとしているもの
を除外することはできないのである。この結果として,排除要素群の指定は,字句の必す・任意選択の別
を変えることがない。例えば,必すのモデル群が接続子orで結んだ群であるとき,そのすべての成分を排
除してはならない。そうするとそのモデル群が実質的に空になってしまい,もはや必すとは認められなく
なってしまうからである。
例外引数として排除要素群と添加要素群の両方を指定することもできるが,このときは,排除要素群を
書いてから添加要素群を書く。
例2. <!−− 要素 内容 (例外)・−−>
<!ELEMENT fig (figbody, figcap・) − (fig|xmp) + (gloss)>
同じ共通識別子が排除要素群の中にも添加要素群の中にも現れている場合,それが同じ水準で起きてい
ようと異なった水準にまたがって起きていようと,排除要素の指定を優先して排除要素の対象とする。
――――― [JIS X 4151 pdf 117] ―――――
111
X 4151-1992
12. 文書型宣言 SGML文書の文書型は,“文書型宣言”としてその文書のデータの前に書く“前書き”
の中に指定しておかなければならない。要素宣言,属性定義並び宣言など,これまでに説明してきた宣言
は,この文書型定義を構成するものであり,“宣言部分集合”と呼ぶ引数としてまとめて書いておかなけれ
ばならない。
例1. <!DOCTYPE manual [
<!ELEMENT manual (front・, body, rear・) + (entry)>
<!−−以下,この文書型定義を構成する
宣言がここに並ぶ。−−>
]>
“[” は“宣言部分集合の開始 (declaration subset open)”区切り子dsoであり, “]” は“宣言部分集合の終
了 (declaration subset close)”区切り子dsoである。
SGML文書で前書きの後に続く部分は,データ又は記述的マークからなるが,これをその文書型の“実
現値”という(単に“文書実現値”ということもある。)。
よくあることだが一つの文書型定義に従う文書が幾つもある場合には,その定義を外部の実体として用
意しておいて,それぞれの文書ではそれを参照するようにするのがよい。こうした実体は,文書型宣言に
その外部識別子を指定するだけで,参照し宣言することができる。
例2. <!DOCTYPE manual PUBLIC ”−//Cave Press//DTD Manual//EN”>
その文書型定義のすべてが外部の実体にある場合には,例2.のように,宣言部分集合を書かないでよい。
多くの場合は,外部の定義とともに,その文書だけに適用する実体宣言などを書いた宣言部分集合も指定
することになる。
例3. <!DOCTYPE manual PUBLIC ”−//Cave Press//DTD Manual//EN”>[
<!ENTITY title ”AIBOHPHOBIA : Fear of Palindroms”>
<!−−その他,文書型定義を拡充する
局所的な宣言を後に続く。−−>
]>
参照した外部の実体は,技術的な理由から,宣言部分集合の一部として扱われ,しかも,その参照が宣
言部分集合の終わりの直前にあったものとして処理される。これによって,積極的に書き与えた宣言部分
集合の方を先に処理するから,それに外部の実体よりも高い優先順位を与えることができる。
13. データ内容 文書の中でマークでない部分を,データ内容という。データ内容には,次の(1)(2)の二
つの主な特性がある。
(1) その表現によって,その部分をSGML構文解析系が走査するかどうかが決まる。これには,次の(a)
(b)の2種類がある。
(a) 文字データ そのビット組合せが文字を表現している。
(b) ビットデータ 普通,そのビット組合せが(単独で,又は幾つかまとめて)2進データを表現して
いる。
(2) その記法によって,手続きでのその文字列又はビット列の解釈方式が決まる。例えば,英語という記
法の中でなら普通の単語にすぎない “delta” も,数式という記法の中ではギリシア文字1字の記号と
して解釈されるであろう。
――――― [JIS X 4151 pdf 118] ―――――
112
X 4151-1992
13.1 データ内容の表現 この規格は,2種類のデータ表現を設けている。一つはこの規格で規定する文字
データであり,もう一つは規定対象外としている非SGML文字(ビットデータ)である。
13.1.1 文字データ (PCDATA・CDATA・RCDATA) 文字データでは,それぞれのビット組合せが文書文
字集合の文字を表現する。
文字は,まずマークであるかどうかをSGML構文解析系が検査し,その上でデータとして扱われる。こ
のような文字の列は,モデル群で見出し語 “PCDATA” と指定する。
段落 “p” の構造が例1.のように宣言してあるとすると,段落の中の文字は,データであるか, “phrase”
又は “quote” のタグの一部となっているかである。
例1. <!ELEMENT p (#PCDATA|phrase|quote)>
もちろん,マーク宣言,処理指令,実体参照など,要素の内容の中に書くことができるマークの一部と
なっていることもある。文字は,タグ又はマークでなかったとき,はじめてデータとして扱い,そのまま
処理の手続きに渡す。
マークの一部となっている文字は,普通,手続きには渡さない。もっとも, “DATATAG” 機構を使った
場合は別で,この場合にはマークとして扱った上で手続きにデータとして渡す。例えば,間隔を“単語”
の終了タグとして使うとしても,同時にその文章での文字データとしても扱いたいからである。
文字データを,普通にマーク付けをしたり構文解析してもらったりせずに,直接に書けるようにするこ
ともできる。それには,その要素の宣言の際に,内容モデルに代えて,その指定を表す見出し語を指定し
ておけばよい。
例2. <!ELEMENT formula CDATA>
こうした場合,rniを付ける必要がないことに注意すること。この引数には,直接に利用者の定義した
名前が現れることがない(群の中にしか書けない。)からである。
このように要素の内容を文字データと宣言した場合,その要素には文字データしか書くことができない。
SGML構文解析系は,etago又はnetに出会うまで,その他のマークをすべて無視する。そして,その正し
い終了タグ(又は,その要素の親要素の終了タグ)だけを認知する。
この “CDATA” の指定の変形に“置換可能文字データ”がある。こちらは,見出し語 “RCDATA” で指
定する。 “CDATA” を指定した場合と同様であるが,その中の実体参照と文字参照とだけは認知する点が
違っている。
13.1.2 非SGMLデータ (NDATA) 非SGMLデータは,この規格に従っての構文解析ができないデータ
である。未知の文字集合の文字であることもあれば,ビットデータであることもあるし,又はそれらの混
合したものであるかもしれない。未知の文字集合のデータの場合,そのビット組合せは,やはり文字を表
現しているが,その文字は文書文字集合のものではない。ビットデータの場合,そのビット組合せは,文
字として解釈できるかもしれないもの,いわゆる文字集合を構成しているわけではない。
非SGMLデータは,SGML構文解析系で解析できないものであるし,その操作系がファイルの終わりと
誤解する可能性を秘めてもいるので,SGML外部の実体として蓄えておかなければならない。その外部の
実体がどこにあるかは,これまでのものと同じく,実体宣言でSGML構文解析系に告げておく。ただし,
非SGMLデータであることを引数に明記しておかなければならない。
例1. <!ENTITY japan86 SYSTEM NDATA kanji>
非SGMLデータは,実体宣言で見出し語 “NDATA” とともにデータ内容記法(13.2参照)が指定してあ
る一般実体の中にだけ書くことができる。こうした実体は,実体参照の認知が行われ,しかも文字データ
が現れ得る内容の中で,一般実体参照によって参照することができる。
――――― [JIS X 4151 pdf 119] ―――――
113
X 4151-1992
非SGMLデータに属性を与えたい場合には,それに対応する要素を宣言すればよい。このとき,その要
素の宣言内容は “EMPTY” とし,その属性定義には,その値として外部の実体の名前をとる属性として宣
言値を “ENTITY” (“一般実体名”)としたものがなければならない。
例2. <!ELEMENT japanese EMPTY>
<!ATTLIST japanese file ENTITY #REQUIRED
subject (poetry|prose) rose
>
この要素 “japanese” を使うマークには,次のように “file” の値として実体名を指定しておか
なければならない。
<japanese file= ”japan86”>
この外部の実体を示す属性は,内容モデルが指定あるものを含めて,どんな要素に対しても定義するこ
とができる。その要素の内容をどう処理するかは,与えてある属性すべてを勘案して応用が決める。
13.2 データ内容記法 非SGMLデータどうしでの種類の違いは,そのデータ内容記法にある(この点で
は,文字データどうしでも同じことがいえる。)。この記法は,SGML構文解析系にとっては意味をもたな
いが,読む人間又は処理を行う手続きにとっては意味をもつものである。
記法には,実に様々なものがある。しかしながら,それらは,少数の種別に分類することができる。
13.2.1 文字データに対する記法 文字データに対する記法の種別として,よく使われるものは,次の(1)
(3)である。
(1) 自然言語 記法として自然言語を使った場合,手続きは,その文字列を暗黙のマーク付けのある文と
して扱う。例えば,英語の場合,間隔で区切られた文字の並びを“単語”という要素とし,それぞれ
の句読点で終わっている単語の並びを“句”又は“文”の要素とするなどして処理する。こうした場
合,REは単語を区切る間隔として扱うことが多い。
自在性を大きくするために,普通には暗黙の解釈に任せている要素でも,特殊な要素(例えば,引
用句,プログラム言語の見出し語,強調句など)は明示的にマーク付けできるようにすることもある。
従来の文書処理システムでは,こうした暗黙のマーク付け,又は明示的にマーク付けするかしない
かの決定が,システム組込みとなっていた。SGMLでは,データタグ機構(参考4参照)というマー
ク最小化機構を用意して,SGML構文解析系でこうした要素をどこまで認知するか,手続きでどこま
でをそのデータ内容記法に従ったものとして扱うか,といった指定が利用者で行えるようにしてある。
記法としての自然言語は,段落,箇条書き,見出しなどといった要素に使われる。これらの内容は,
普通,混合内容と呼ぶもので,下位要素と文字データとが混在している。
(2) 0 科学記法は,自然言語と似ている。ただし,そこでの“単語”又は“句”は,それぞれの応用によ
って決まる。数学記法でなら,例えば “3 over 4” という句は,分数 “43” と解釈される。科学記法は,
数式,化学構造式,形式言語,楽譜などといった要素に使われる。その内容は,普通,CDATAかRCDATA
として,その科学記法が解釈できないシステムでも,それらの要素が自然言語によっているかのよう
に処理できるようにしておく。
(3) 書式付き文 書式付き文の記法も,自然言語と似ている。この両者を一つの記法にまとめることもで
きるだろう。書式付き文の記法は,既に書式付け応用で処理して作り出した“配置構造”を要素とし
て表すことを目的としている。そこでは,書式付けた行の終わり,整形のための間隔又はハイフン,
字体の切替え,上つき,下つきなどといったものを表す文字列が決めてあるに違いない。
書式付き文の記法は,自然言語を記法とする要素型(段落,見出しなど)の中にでも見ることがで
――――― [JIS X 4151 pdf 120] ―――――
次のページ PDF 121
JIS X 4151:1992の引用国際規格 ISO 一覧
- ISO 8879:1986(MOD)
- ISO 8879:1986/AMENDMENT 1(MOD)
JIS X 4151:1992の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.240 : 情報技術(IT)の応用 > 35.240.30 : 情報,ドキュメンテーション及び出版業務におけるITの応用
JIS X 4151:1992の関連規格と引用規格一覧
- 規格番号
- 規格名称
- JISX0202:1998
- 情報技術―文字符号の構造及び拡張法
- JISX0208:1997
- 7ビット及び8ビットの2バイト情報交換用符号化漢字集合