124
X 4151-1992
<!SHORTREF chapmap ”&#RS;&#RE; ptag
” qtag >
<!SHORTREF qmap ” qendtag>
<!USEMAP chapmap chapter >
<!USEMAP qmap quote >
<!ELEMENT chapter (p*) >
<!ELEMENT p (quote|#PCDATA) * >
<!ELEMENT quote (#PCDAT) >
要素の “chapter” 及び “quote” には結合した短縮参照対応表があるが, “p” にはない。さて,
“chapter” の中で “p” が始まったとき, “chapter” に結合した対応表 “chapmap” が現対応表で
あるので “p” でのそのまま現対応表となる。この対応表では引用符号を “quote” の開始タグに
対応付けているので,引用符号がくると要素 “quote” が開く。すると,それに結合した対応表
“qmap” が現対応表となり,今度は,引用符号は “quote” の終了タグとなる。こうして要素
“quote” が終わると再び “p” の状態となり,対応表 “chapmap” が現対応表に復帰する。
したがって,
<chapter<p>これが“引用”である。</p>
は,次と同値である。
<chapter<p>これが<quote>引用</quote>である。</p>
上の宣言によって,引用符号は,データではなく,開始タグとしても終了タグとしても働く。
書式付け手続きは,これによって“と”とで引用をくくることができる。こうでもしないと,
普通のタイプライタでの打けん法をそのまま生かすことはできない。
さて,実体文がタグであるときには,その実体宣言に特別な形式を使うこともできる。
例3. <!ENTITY qtag STARTTAG “quote”>
<!ENITIY qendtag ENDTAG “quote”>
見出し語の “STARTTAG” 又は “ENDTAG” を指定することで,その実体文からタグとしての区切り子
を取り除くことができる。このように明示的に指定を与えておけば,システムは,その文がデータとして
ではなくタグとして使われることが分かるので,適切な最適化を図ることもできる。
短縮実体参照は,その内容をモデルで与えてある要素(つまり,CDATA又はRCDATAでない要素)の
中でだけ使うことができる。短縮参照は,属性の値又は宣言の引数には使えない。
2.3.4 表形式 規格参照具象構文では,多くの図形文字列も短縮参照区切り子として割り当てている(本
体表4参照)。これらの文字列は,より長い一般実体参照の代用として使うことができる。これによって,
うまく使えば簡潔で見やすいマークで表などを入力することができる。
例 <!ENTITY row ”<row><col>”>
<!ENTITY col ”</col><col>”>
<!ENTITY endrow ”</col></row>”>
<!SHORTREF tablemap row
”(”
col
”|”
endrow>
”)”
<!USEMAP tablemap table>
<!ELEMENT table (row*)>
――――― [JIS X 4151 pdf 131] ―――――
125
X 4151-1992
<!ATTLIST table column NUMBER #REQUIRED>
<!ELEMENT row (col+) −−行−−>
<!ELEMENT col (#PCDATA) −−列−−>
<!>
<table column=3>
(行1列1|行1列2|行1列3)
(行2列1|行2列2|行2列3)
(行3列1|行3列2|行3列3)
(行4列1|行4列2|行4列3)
</table>
<!>
この例では,括弧と縦棒とを実体参照に使っている(短縮参照は,文脈に依存して認知を受け
るので,縦棒が接続子orと解釈される心配はない。)。この文は,次のとおりに書き換わる。
<table column=3>
<row><col>行1列1</col><col>行1列2</col><col>行1列3</col></row>
<row><col>行2列1</col><col>行2列2</col><col>行2列3</col></row>
<row><col>行3列1</col><col>行3列2</col><col>行3列3</col></row>
<row><col>行4列1</col><col>行4列2</col><col>行4列3</col></row>
</table>
“tablemap” は, “table” が開いている間だけ現対応表となるので,それ以外のところでは,括
弧も縦棒も普通にデータとして使うことができる。
2.3.5 一時の対応 短縮参照対応表は要素型に結合して使うのが普通だが,短縮参照対応表宣言によって
一時的に対応表を選定することもできる。
例 <figure>
要素figureの最初の部分(普通のfigureの対応表を使う)
<!USEMAP graphics−−一時的に対応表graphicsを選ぶ−−>
要素figureの残りの部分(対応表graphicsを使う)
</figure>
要素の名前を指定していない短縮参照対応表宣言は,最も近くに開いた要素(上の例では “figure”)に
対する現対応表を,そこに指定した対応表(上の例では “graphics”)に置き換えてしまう。しかし,その
効果は,その宣言を書いた実現値の残りの部分にしか及ばない。残りの部分で再び普通の対応表が必要に
なったときには,改めて短縮参照対応表宣言を行って切り替えなければならない。
短縮参照対応表宣言で,対応表の名前の代わりに見出し語 “#EMPTY” を指定すると,すべての対応付
けを取り消すことができる。つまり, “#EMPTY” で指定した空の対応表が,現対応表となる。
短縮参照は,非常に強力なものではあるけれども,SGMLでマーク付けしていない既存の勝手な文書の
解釈付けに使うのは適切でない。短縮参照は,利用者が慣れた語処理システムを使ってSGMLの正規のマ
ーク付けできるようにすることを意図したものである。ほかのマーク最小化機構と併せて使うことで,た
とえ“知的”な文書処理システムが使えなくても,意識的なマーク付け作業をしないで済むようにできる
のである。
――――― [JIS X 4151 pdf 132] ―――――
126
X 4151-1992
2.4 DATTAG−データとタグの共用 データタグ最小化機構は,内容モデルを使って定義を与えること
で,以下の文でデータ文字をタグとしても使えるようにするものである。
ここまでに解説してきたマーク最小化の機構は,ほとんどマークらしいマークなしの文が書けるように
するための長い道程でもあった。
例1. ほとんどマークのない文
<!ENTITY itemtag STARTTAG jobitem>
<!SHORTREF listmap ”&#RS;” itemtag>
<!USEMAP listmap joblist>
<!−− 要素 最小化 内容−−>
<!ELEMENT joblist −− (jobitem+)>
<!ELEMENT jobitem −− (#PCDATA)>
<joblist>
Sharon Adler, 副議長
Larry Beck, 事務局
Anders Berglund, 公報担当
</joblist>
途中の “jobitem” の終了タグは “jobitem” の開始タグ(記録開始)が直後にきているので省
略でき,最後の終了タグは “joblist” の終了タグが兼ねているので省略することができる。それ
ぞれの開始タグは,目には見えないものの,ちゃんと書いてある。印字されない短縮参照区切
り子で実体参照を行っているからである。ここでは,二つだけマークがしてあるように見えて
いるが,実際に利用者は多くのマーク付けを行っているのである。
例1.の宣言では, “jobitem” は単なる文字の列となっているが,実際には“氏名”と“役職”の二つの
要素があるように見える。カンマと空白とがあたかも開始タグであるかのように“役職”を明確に区分し
ているからである。このような働き,つまり,データが紛れのない形で要素を区分するようにした規約を,
データタグ最小化という。
SGMLのデータタグ機構は,このような規約を要素宣言のデータタグ形式引数で指定するようにしてい
る。
例2. <!−− 要素 最小化 内容 −−>
<!ELEMENT jobitem −O ([name, ”, ”, ” ”], job)>
<!ELEMENT name OO (#PCDATA)>
<!ELEMENT job OO (#PCDATA)>
例2.での宣言は,次の(1)(4)を(ほかの事柄と共に)いっている。
(1) “name” の開始タグは,それが “jobitem” の最初の要素であるから省略することができる。
(2) “name” の終了タグは, “jobitem” の中である限り,そのデータタグ形式が示すとおりカンマと空白と
が兼ねるので,省略することができる。
(3) “job” の開始タグは, “name” の下位要素として現れ得ないので,省略することができる。
(4) “job” の終了タグは, “jobitem” の終了タグが兼ねるので,省略することができる。
“joblist” の宣言を完全に行うと,例3.のようになる。
例3. <!ENTITY itemtag STARTTAG jobitem>
<!SHORTREF listmap ”&#RS; ” itemtag>
――――― [JIS X 4151 pdf 133] ―――――
127
X 4151-1992
<!USEMAP listmap joblist>
<!−− 要素 最小化 内容−−>
<!ELEMENT joblist −− (jobitem+)>
<!ELEMENT jobitem −O ([name, ”, ”, ” ”], job)>
<!ELEMENT name OO (#PCDATA)>
<!ELEMENT job OO (#PCDATA)>
文字は,普通,データとなるかマークとなるかのいずれかであって,両方にはなれない。データタグ機
構の本質は,文字が同時にデータともマークともなれるようにすることにある。データタグとは,そのタ
グの要素に対するモデルとして与えたデータタグ群の中のデータタグ形式に合致する文字列を終了タグと
しても扱ったものをいう。例3.でいうと,
[name, ”, ”, ” ”]
がデータタグ群である。
データタグ群は,接続子seqを使った群であって,“データタグ群開き (data tag group open)”区切り子
dtgoと“データタグ群閉じ (data tag group close)”区切り子dtgcと(普通は, “[” と “]”)でくくる。こ
れらの区切り子は,その群が普通の群とは違った特別な目的のためのものであることを示している。デー
タタグ群には,次の(5)(7)の三つの成分がある。
(5) 最小化の対象とする要素の共通識別子。
例 name
(6) データタグひな形。1個の表記であっても,表記を接続子orで並べた群であってもよい。
例 ”, ”
(7) データタグ埋め草ひな形。これは任意選択であり,なくてもよい。
例 ” ”
データタグ最小化は,文解析を行う応用システムで使うことができる。
例4. 英文の段落での文と単語との識別
<!ENTITY % stop (”.&#RE;” | ”.) ”
|”.” | ”.)&#RE;” |
”・&#RE;” | ”・ ”| ”・)&#RE;” |
| ”・) ”
”!&#RE;” | ”!)&#RE;”
| ”! ” )>
| ”!) ”
<!ENTITY % pause (” ” | ”&#RE;” | ”, ” | ”, &#RE;” |
| ”;&#RE;”
”; ” | ”: ” | ”:&#RE;” |
| ”)&#RE;”
”) ” | ”,) ” | ”,)&#RE;”|
| ”:) ”
”;) ” | ”;)&#RE;” | ”:)&#RE;”|
| ”), ”
”), ” | ”), &#RE;' | ”);&#RE;”|
| ”):&#RE;” ) >
”): ”
<!ELEMENT p −O([sentense, %stop;]+)>
<!ELEMENT sentence O O([word, %pause;, ” ”]+)>
<!ELEMENT word O O(#PCDATA)>
<!>
<P>The first sentence ends here.
The second sentence ends
here.
――――― [JIS X 4151 pdf 134] ―――――
128
X 4151-1992
This is the Third sentence. The
fourth sentence ends, not here!, but here!
</p>
例4.では,単語 (“word”) の終了タグが, “pause” の文字列とそれに続く任意個の空白でできている。
それぞれの文の各単語は,その最後のものを除いて,このひな形に合致したデータタグをもっている。
文 (“sentence”) の終了タグは, “stop” の文字列と記録終了又は2個の空白とでできている。この終了
タグが認知されると,それは,普通の“外側の要素の終わり”についての規則によって,最後の単語の終
了タグも兼ねることになる。
データタグ機構を使っているときには,文の入力に注意を払う必要がある。
例5. I wonder whether Mrs. G.
will read this.
例4.でのデータタグを使っているとすると, “G.” という略記が間違って文の終了タグと解釈されてし
まう。データタグ機構を使ったときに有効となる区切り子と,その参照具象構文での文字列を,次にまと
めておく。
文字列 名前 働き
[ DGTO データタグ開き
] DGTC データタグ閉じ
2.5 RANK−タグでの付番の省略 要素の付番とは,その入れ子の深さをいう。付番は,多くの文書型
では,入れ子の要素[例えば, “list” (2.2.6例参照)]が始まったり終わったりしたときに自動的に決ま
るだけで,マークに明示的に指定することはない。
しかしながら,マーク付けの設計者の中には,見出し又は段落といった要素に明示的な付番を指定する
ことを好む人もいる。
例1. <!−− 要素 最小化 内容 −−>
<!ELEMENT p1 −O (#PCDATA, p2*)>
<!ELEMENT p2 −O (#PCDATA, p3*)>
<!ELEMENT p3 −O (#PCDATA, p4*)>
<!ELEMENT p4 −O (#PCDATA) >
<!>
<p1>第1層の段落の文。
<p1>別の第1層の段落の文。
<p2>入れ子の第2層の段落。
<p2>別の第2層の段落。
<p1>第1層に戻る。
SGMLの付番 (“RANK”) 機構は,こうした付番を明示的に指定する際の便宜を与えるものである。要素
宣言の際に共通識別子に代えて付番核と付番とを指定することで,その要素を付番要素とすることができ
る。
例2. <!−− 要素 最小化 内容 −−>
<!ELEMENT p1 −O (#PCDATA, p2*)>
<!ELEMENT p2 −O (#PCDATA, p3*)>
<!ELEMENT p3 −O (#PCDATA, p4*)>
――――― [JIS X 4151 pdf 135] ―――――
次のページ PDF 136
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バイト情報交換用符号化漢字集合