<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体値<rt xmlns="http://www.w3.org/1999/xhtml">entity value</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体宣言</anchor>の中の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数表記</anchor>です。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> ではなく <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> の用語です。
SGML の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体文</anchor>の一種です。)</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <code class="ABNF"><dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体値<rt xmlns="http://www.w3.org/1999/xhtml">EntityValue</rt></rubyb></dfn> := &quot;'&quot; *(&lt;[^'%&amp;]&gt; / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体参照</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字参照</anchor>) &quot;'&quot; / &lt;&quot;&gt; *(&lt;[^&quot;%&amp;]&gt; / 引数実体参照 / 実体参照 / 文字参照) &lt;&quot;&gt; ;; XML 1.0/1.1 [9] 改</code></li></ul><p>仕様書: <ul><li>[XML 1.0] <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/REC-xml/#NT-EntityValue" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://www.w3.org/TR/REC-xml/#NT-EntityValue</anchor-external></li><li>[XML 1.1] <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/xml11/#NT-EntityValue" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://www.w3.org/TR/xml11/#NT-EntityValue</anchor-external></li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一般実体</anchor>を宣言する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体宣言</anchor>の<code class="ABNF">実体値</code>で生の
<code>&lt;</code> を使っても、その実体を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>しようとすると <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor>
ではどの場面であっても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整形式</anchor>とはならないので、
XML 仕様書は使用しないように強くすすめています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内部実体</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表記実体値</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体値</anchor>と同じものです。</p><p>内部実体の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">置換文</anchor>は、表記実体値の内容を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数実体参照</anchor>と文字参照を解決したものです。</p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form><section><h1>実体値についての MSXML の挙動</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> </p><blockquote><p>なぜ実際に amp や lt を参照したわけでもないのにエラーになったのか、ということ。「ライン 1、位置 2」という表示もしっくりこないものがありますし、もしかすると MSXML は内部的に何らかの XML を利用していて、その中で amp への参照が現れてエラーになったのかなぁ…などと思ったり。</p></blockquote><p>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マーク付けノート</anchor> — M12N のバグと MSXML <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.satoshii.org/markup/notes/2004/02#date23-3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://www.satoshii.org/markup/notes/2004/02#date23-3</anchor-external>)</p><p>という話が気になったので、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MSXML</anchor>
の挙動を調べてみました。
環境は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinXP</anchor> + <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinIE</anchor> 6.0
です。</p><p>WinIE に XML 文書を与えると、<ol><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前書き</anchor>を構文解析</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一般実体</anchor>の実体値を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容</anchor>として構文解析</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書実現値</anchor>以降を構文解析</li></ol></p><p>という順序で処理を進めるようです。
前書きと文書実現値の境目は、最初に
<code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">stago</anchor></code> の文字に遭遇する手前のようです。
(<code class="SGML">stago</code> の文字の直後が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前開始文字</anchor>でなくてもその時点では何も言われません。ただし、 <code class="char">!</code> や <code class="char">?</code> や <code class="char">/</code> が直後に来ると文句を言われます。)</p><p>実体値の構文解析の段階では、
参照の有無にかかわらず (そもそも文書実現値はまだ処理していない)、
重複していないすべての一般実体宣言を処理しています。
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(たぶんこの時点で<anchor>グローブ</anchor>を作ってしまうのでしょう。)</weak>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前</anchor>の重複により無視される一般実体宣言は無視されますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">定義済み文字実体</anchor>は特別扱いされません。また、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内部実体</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">外部実体</anchor>も扱いに違いはありません。</p><p>ですから、一般実体の実体値
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(同じ名前の宣言が複数ある時は、最初のもの。)</weak> を内容として構文解析した時に不適当な文字列が含まれていると、誤りが発生します。</p><p>このとき、</p><blockquote><p>無効な文字で名前が始まりました。リソース 'http://www.satoshii.org/markup/samp/2003/xhtml11-msxml-m12n' の実行エラーです。ライン 1、位置 2</p><p>&amp;&amp;</p></blockquote><p>のようなメッセージがブラウザに表示されますが、<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URI</anchor> は必ず<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書実体</anchor>のものとなる</li><li>文字の位置が実体値の先頭を起点としたものであることが示されていない</li></ul></p><p>という間抜けな仕様になっている模様です。</p><p>このメッセージの場合は、元凶が
XHTML m12n の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体集合</anchor>中にある<pre>&lt;!ENTITY amp     &quot;&amp;#38;&amp;#38;&quot; &gt;&lt;!-- ampersand, U+0026 ISOnum --&gt;</pre></p><p>という記述なのですが、
この実体宣言を解釈して得られる実体値は <code>&amp;&amp;</code> です。
これを構文解析すると、 <code class="char">&amp;</code> の直後
(つまり<q>ライン 1、位置 2</q>) には名前開始文字が要求されるというわけです。</p><p><weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(<anchor>著者</anchor>に直接見えるソース上の位置ではなく、構文解析結果である実体値上の位置なんて示されても困るのですけど、手抜きしたい気持ちはよくわかります。。。)</weak></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> で、参照してもいない実体の中身を勝手に構文解析しちゃうのってどうなんでしょう。</p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section><section><h1>SGML と XML</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> SGML では、引数表記には実質任意の内容が記述できます。
認知されない <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pero</anchor></code> や <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ero</anchor></code>
などに割当てられた文字が含まれていても問題ありません。
また、 <code class="SGML">ERO</code> は認知されたところで結局<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ</anchor>になります
(<code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">置換可能引数データ</anchor></code>に<code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一般実体参照</anchor></code>は含まれないので)。</p><p>ところが、 XML では <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> の構文の通りであり、それは許されません。
<code class="char">&amp;</code> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字参照</anchor>か<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一般実体参照</anchor>の最初の文字ではなければなりません。
XML <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">解析器</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整形式</anchor>性の検証のために SGML 的には解釈しないはずの一般実体参照を調べないといけません。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML名前空間</anchor>を使う場合は、更に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前空間整形式</anchor>性まで調べないといけません。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">宣言</anchor>されていることという<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整形式制約</anchor> 
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="XML1:&quot;#wf-entdeclared&quot;" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW">IW:XML1:&quot;#wf-entdeclared&quot;</anchor-external>
および<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">妥当性制約</anchor> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="XML1:&quot;#vc-entdeclared&quot;" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW">IW:XML1:&quot;#vc-entdeclared&quot;</anchor-external>
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体値</anchor>に現れる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一般実体参照</anchor>にも適用されるのでしょうか。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor>の場合 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;6</anchor-internal>) はともかく、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor>の仕様書でこの制約についての例外は特になさそうです。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体参照</anchor>の参照先が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非解析対象実体</anchor>では<em>ない</em>こととの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整形式制約</anchor>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="XML1:&quot;#textent&quot;" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW">IW:XML1:&quot;#textent&quot;</anchor-external> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体値</anchor>内での展開に関してSE正誤表で修正されて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤り</anchor>になっています
(<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="XML1:&quot;#error&quot;" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW">IW:XML1:&quot;#error&quot;</anchor-external>)。展開に関する節で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤り</anchor>に修正されて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>そのものに関する節で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整形式制約</anchor> = <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">致命的誤り</anchor>とされている部分が修正されていないのは矛盾のような気がしますがこれいかに。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">再帰</anchor>なしの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整形式制約</anchor> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="XML1:&quot;#norecursion&quot;" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW">IW:XML1:&quot;#norecursion&quot;</anchor-external>
についても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>される場合は、との限定なしに、
単に再帰参照は駄目としか書いてありません。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end>
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor>も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera</anchor>も、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>されていない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体値</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一般実体参照</anchor>に関してはチェックしていない模様です。
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> のような動作をする<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinIE</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">致命的誤り</anchor>を報告します。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor>の<code class="DOM" xml:lang="en"><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DocumentType</anchor></code>.<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">entities</anchor></code></code>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">宣言</anchor>されている<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一般実体</anchor>に相当する<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Entity</anchor></code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>が入ることになっています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>されていない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>が含まれるのかどうかはよくわかりませんが、除外するという規定はありません。 (重複する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体宣言</anchor>は反映されません。)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>されていない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>も含めようと思ったら、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">置換木</anchor>を作るためには<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一般実体参照</anchor>に関するチェックもしないといけません。</p><p>でも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Gecko</anchor>も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera</anchor>も<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">entities</anchor></code>か<code class="DOM" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code>だったり空だったり。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適合性</anchor>に関する項 <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="XML1:&quot;#proc-types&quot;" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW">IW:XML1:&quot;#proc-types&quot;</anchor-external> に、</p><blockquote><p>Validating and non-validating processors alike <strong>MUST</strong> report violations of this specification's well-formedness constraints in the content of the document entity and any other parsed entities that they read.</p></blockquote><p>とか</p><blockquote><p>Non-validating processors are <strong>REQUIRED</strong> to check only the document entity, including the entire internal DTD subset, for well-formedness.</p></blockquote><p>とか書いてある。前者を鵜呑みにすれば、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>されていない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">解析対象実体</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整形式制約</anchor>違反も検出しなければならない。
後者を鵜呑みにすれば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内部解析対象実体</anchor>すら<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整形式制約</anchor>を検査しなくてもよいことになる。あるいは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内部実体</anchor>については<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内部部分集合</anchor>が〜の項でカバーしているつもりなのか。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section><section><h1>メモ</h1></section></body></html>