[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[ ]]> と書いてはいけません。 ]PRE] と書くと、 [SAMP[element]] 要素の内容はマーク区間終了と [SAMP[ と書いてはいけません。]] になってしまいます。ところが、 > マーク区間宣言の外側に現れたマーク区間終了は, 誤りとする に従い、このマーク区間終了は[[誤り]]になるのです。 [5] 以下は古い説明。 [2] マーク区間終了の文字列は、「マーク区間宣言の外」では出現してはいけないことになっています。「外」とはどこからどこまでかはよくわかりませんが、 SGML 処理系や XML 仕様の解釈から推測すると、要素の内容と文書型宣言 [WEAK[(後者は元からありえない。)]] では駄目みたいです。[[属性値表記]]内とか、[[注釈]]内とかに書いても問題なさげです。 [3] >>2 [[XML]] では [CODE(XML)[[[CharData]](14)]] で表される場所 (要素の内容) には [CODE(XML)[ ] ] > ]] を書くことが出来ません。 ([CODE(XML)[ ] ] > ]] などとしなければなりません。) [6] より: > 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 その通りでした。認知様相を考えるのを忘れてました。