- (254) マーク区間 (marked section)
- 特別の目的のために認識される文書の区間。 JIS X 4151-1992 3.
[11] マーク区間はマーク区間宣言としてではなくても、
実体宣言を使って定義することもできます。
例えば: <!ENTITY ent MS " CDATA [ something included "> [ (dso
) だけが区切子として入って対応する括弧がないので不恰好ですが、そういうもんです。
[15] マーク区間を識別し、 その取扱いを指定するマーク宣言。 Marked section declaration。 JISX4151‐1992 定義 (257), 9.4 参照。
[17] マーク区間は、そのマーク区間宣言が位置する文脈での構文上及び意味上の要件に従わなければなりません。
(例えば、文書実現値内で INCLUDE
なマーク区間を使ったからといって、そこに実体宣言とかを書くのは無茶というもんです。)
[18] また、マーク区間宣言の外側でマーク宣言終了
を使うと、誤りとなります。
(多分これが、 XML で文字データに ] ] >
を直接かけない根拠です。)
[19] JISX4151 には確かに「マーク区間宣言の外側に現れたマーク宣言終了は,誤りとする」とありますが、これは『マーク区間終了』の typo でしょうね。
[20] 開いているマーク区間宣言の個数は量 TAGLVL 以下でなければなりません。 (9.4.1)
[21] マーク区間宣言(93)
が使える場所は、(27)他の内容
と [CODE'(SGML)[(71)ds]] だけです。前者はつまり (25)混合内容
と (26)要素内容
です。従って、マーク区間宣言が書けるのは、(1)子要素又は子文字データを持ち得る要素内, (2) 文書型宣言の「地の文」のいずれかとなります。
見出し語 | 説明 | SGML | XML 文書実現値 | XML DTD | HTML 外来要素 | HTML要素 |
---|---|---|---|---|---|---|
CDATA | 文字データ (CDATA区間) | ○ | ○ | × | ○ | × |
IGNORE | 無視する (条件区間) | ○ | × | ○ | × | × |
INCLUDE | 含める (条件区間) | ○ | × | ○ | × | × |
RCDATA | 置換可能文字データ | ○ | × | × | × | × |
TEMP | 一時 | ○ | × | × | × | × |
[2] SGML では、実体参照を展開した時の便宜を考えて、 複数の見出し語を指定することも出来ます。たとえば、 <![CDATA TEMP [ ほげほげ ]]> は正当です。
[3] 特に IGNORE
, CDATA
, RCDATA
, INCLUDE
の4つは状態見出し語といい、この順 (無視→含める) で優先します。状態見出し語が無い時には INCLUDE
とみなされます。
[4] XML では、マーク区間を DTD の内部部分集合で使うことは出来ません。
[9] 完結記憶文書実現値の定義は「全ての要素及びマーク区間が、それが開始した実体の中で終了する文書実現値」なんですけど、この条件がマーク区間に関して満たされない場合ってあります? 素の SGML でも必ずマーク区間は完結していると思うんですが。
[10] >>9 それがそうでもないらしい。 JIS X 4151‐1992 8.4.3:
ところで「マーク区間の内容」とはどこからどこまでのことだろう? >>13
[14] で、 >>12 のように解釈するとして、 (2), (3) をまた読んだら、余計意味が分からなくなりましたが何か?
[13] JIS X 4151‐1992 8.4.3 (2) で未定義のまま使われている 「マーク区間の内容」とはなんだろう。
JIS X 4151 での「内容」の定義は、内容 (>>6)である。 ここではマーク区間のマの字も出てこない。
[12] ここで、8.4.3 (3) において、要素における開始タグ及び終了タグがそれぞれそマーク区間におけるマーク区間開始及びマーク区間終了に対応させていることに注目したい。 そこで、要素についての「内容」の定義を書き換えてみる。
文書の中でマーク区間宣言のマーク区間開始とマーク区間終了との間に出現する文字。
なるほど、それらしい定義である。この解釈が正しいとすると、
<![CDATA[something]]>
の内容は CDATA[something である。
しかもこれは >>11 に例のある、マーク区間実体の実体値に指定する内容と一致する。 なお、マーク区間実体は置換文をマーク区間開始・終了で括ってから解釈する (9.5.4) ので、この定義でマーク区間実体をもカバーできます。
[22] マーク付き区間って何かかっこ悪い訳じゃないですか? 使い慣れたマーク区間の方がいいなあ。