-
Notifications
You must be signed in to change notification settings - Fork 4
/
137.txt
56 lines (32 loc) · 3.28 KB
/
137.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
[1] 【[[SGML]]】 [[マーク区間宣言]]を閉じる[[区切子]]。 Marked section end。 [[JISX4151]]‐1992 3. (256) 参照。
- [CODE(ABNF)[[DFN[マーク区間終了]] := [CODE(SGML)[[[msc]]]] [CODE(SGML)[[[mdc]]]] ;; (95)]]
[8] 規格参照具象構文や [[XML]] など多くの環境では
[CODE(SGML)['']'' '']'' ''>'']] が使われます。
[[シフトJIS]] に配慮した具象構文では
[CODE(SGML)[*>*>>]] が使われることがあるそうです。
なんとも奇妙な・・・。
[9]
YESマーク
([[名無しさん]] [WEAK[2004-11-09 13:22:53 +00:00]])
[[#comment]]
* MSE (に相当する文字列) を書けない場所
[4] マーク区間終了の文字列 ([[規格参照具象構文]]や XML
では [CODE['']'' '']'' ''>'']])
を[[認知様相]] [CODE(SGML)[[[COM]]]], [CODE(SGML)[[[DSM]]]]
の場所で書くと、マーク区間終了とみなされてしまいます。
たとえば、
[PRE[
<element>]]> と書いてはいけません。</element>
]PRE]
と書くと、 [SAMP[element]] 要素の内容はマーク区間終了と
[SAMP[ と書いてはいけません。]]
になってしまいます。ところが、
> マーク区間宣言の外側に現れたマーク区間終了は, 誤りとする
に従い、このマーク区間終了は[[誤り]]になるのです。
[5] 以下は古い説明。
[2] マーク区間終了の文字列は、「マーク区間宣言の外」では出現してはいけないことになっています。「外」とはどこからどこまでかはよくわかりませんが、 SGML 処理系や XML 仕様の解釈から推測すると、要素の内容と文書型宣言 [WEAK[(後者は元からありえない。)]] では駄目みたいです。[[属性値表記]]内とか、[[注釈]]内とかに書いても問題なさげです。
[3] >>2 [[XML]] では [CODE(XML)[[[CharData]](14)]] <http://www.w3.org/TR/REC-xml#NT-CharData> で表される場所 (要素の内容) には [CODE(XML)[ ] ] > ]] を書くことが出来ません。 ([CODE(XML)[ ] ] > ]] などとしなければなりません。)
[6] <http://www.satoshii.org/markup/notes/2003/11> より:
> msc は認知様相 CON DSM 制約 MSE, mdc は認知様相 CTX MD. ここで、[CODE[マーク区間終了 = msc, mdc — (95)]] であるから、MSE は CON DSM でしか認知されない。つまり、リテラルや注釈の内部に ]]> という文字列を記述したところで、]] が msc と認知されることはないから、これは MSE とは見なされない。すなわち、この文脈での文字列 ]]> は、[CODE[マーク区間宣言の外側に現れたマーク区間終了は, 誤りとする]]という JIS X 4151 の文言には抵触しないのである。
> 以下、]] が msc として認知される範囲で考える。認知様相 DSM で msc を認知するケースでは、MSE は常に正しい MSE として扱われるので、エラーの要因とはならない (DSM というのはマーク区間の内側なのだから当然)。結局、[CODE[マーク区間宣言の外側に現れたマーク区間終了]]というのは、「マーク区間宣言の外側の内容として現れた文字列 ]]>」に他ならないわけである。
[7] >>6 その通りでした。認知様相を考えるのを忘れてました。