[6] > :(254) マーク区間 (marked section): 特別の目的のために認識される[[文書]]の[[区間]]。 [SRC[[[JIS X 4151]]-1992 3.]] [11] マーク区間は[[マーク区間宣言]]としてではなくても、 [[実体宣言]]を使って定義することもできます。 例えば: [SAMP(SGML)[]] [WEAK[ [SAMP(SGML)[ [ ]] ([CODE(SGML)[[[dso]]]]) だけが区切子として入って対応する括弧がないので不恰好ですが、そういうもんです。]] [[#comment]] *マーク区間の見出し語 ,[[CDATA]] ,[[文字データ]] ,[[IGNORE]] ,無視する ,[[INCLUDE]],含める ,[[RCDATA]] ,[[置換可能文字データ]] ,[[TEMP]] ,一時 -[2] [[SGML]] では、[[実体参照]]を展開した時の便宜を考えて、 複数の見出し語を指定することも出来ます。たとえば、 [SAMP(SGML)[]] は正当です。 - [3] 特に [CODE(SGML)[IGNORE]], [CODE(SGML)[CDATA]], [CODE(SGML)[RCDATA]], [CODE(SGML)[INCLUDE]] の4つは[DFN[状態見出し語]]といい、この順 (無視→含める) で優先します。状態見出し語が無い時には [CODE(SGML)[INCLUDE]] とみなされます。 - [4] XML では、マーク区間を DTD の内部部分集合で使うことは出来ません。 - [5] また、 XML では[[文書要素]]内で使えるマーク区間は [CODE(XML)[CDATA]] のみです。 [[#comment]] *実体境界によるマーク区間の分断 [9] [[完結記憶文書実現値]]の定義は「全ての要素及びマーク区間が、それが開始した実体の中で終了する文書実現値」なんですけど、この条件がマーク区間に関して満たされない場合ってあります? 素の SGML でも必ずマーク区間は完結していると思うんですが。 [10] >>9 それがそうでもないらしい。 JIS X 4151‐1992 8.4.3: = (2) [[文字データ]]若しくは[[置換可能文字データ]]と宣言してある[[要素]]若しくはマーク区間の内容又は無視するマーク区間の内容は、 同じ実体の中で始まって終わらなければならない (他の要素の内容又は他のマーク区間の内容も、そうすることが望ましい。)。 = (3) (2) に該当しない要素又はマーク区間に対しては、 その開始タグ及び終了タグ (又はその[[マーク区間開始]]及び[[マーク区間終了]]) が、共に同じ実体の中にあるか、 同じ実体の中から参照している実体の置換文となっているかであることが望ましい。 ところで「マーク区間の内容」とはどこからどこまでのことだろう? >>13 [14] で、 >>12 のように解釈するとして、 (2), (3) をまた読んだら、余計意味が分からなくなりましたが何か? [[#comment]] * マーク区間の内容 [13] JIS X 4151‐1992 8.4.3 (2) で未定義のまま使われている 「マーク区間の内容」とはなんだろう。 JIS X 4151 での「内容」の定義は、[[内容]>>6]である。 ここではマーク区間のマの字も出てこない。 [12] ここで、8.4.3 (3) において、要素における開始タグ及び終了タグがそれぞれそマーク区間におけるマーク区間開始及びマーク区間終了に対応させていることに注目したい。 そこで、要素についての「内容」の定義を書き換えてみる。 > 文書の中で[INS[マーク区間宣言]]の[INS[マーク区間開始]]と[INS[マーク区間終了]]との間に出現する文字。 なるほど、それらしい定義である。この解釈が正しいとすると、 [PRE[ ]PRE] の内容は [SAMP(SGML)[CDATA[something]] である。 しかもこれは >>11 に例のある、マーク区間実体の[[実体値]]に指定する内容と一致する。 [WEAK[なお、マーク区間実体は[[置換文]]をマーク区間開始・終了で括ってから解釈する (9.5.4) ので、この定義でマーク区間実体をもカバーできます。]] [[#comment]] *メモ - [1] ''マニアックな文法論議 - SGML のマーク区間'' - [7] ''鳩丸よもやま話 : マーク区間とは'' : >>1 の新版 - [8] SGML におけるマーク区間の使い方については、 JIS X 4151‐1992 参考3 8. に解説があります。分かりやすいですから是非ご覧あれ。