<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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end></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:">DTD</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>性について検査する<strong>必要があります</strong>。
[定義: <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:">DTD</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>を<dfn><ruby><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">処理</anchor><rt>しょり</rt><rt xml:lang="en">process</rt></ruby></dfn>する<strong>必要があります</strong>。これはすなわち、<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>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性値</anchor>の供給に用いなければ<strong>なりません</strong>。]
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非検証処理器</anchor>は<code class="XML" xml:lang="en"><code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">standalone</anchor>=&quot;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">yes</anchor>&quot;</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>や<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:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></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>は<code class="XML" xml:lang="en"><code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">standalone</anchor>=&quot;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">yes</anchor>&quot;</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>しなければ<strong>なりません</strong>。</code></p></blockquote><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">出典: <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="XML1:&quot;#dt-use-mdecl&quot;">IW:XML1:&quot;#dt-use-mdecl&quot;</anchor-external></comment-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>
<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>されていることという<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整形式制約</anchor>は<code class="XML" xml:lang="en"><code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">standalone</anchor>=&quot;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">yes</anchor>&quot;</code>の場合のみ適用されます。</code></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="XML1:&quot;#wf-entdeclared&quot;">IW:XML1:&quot;#wf-entdeclared&quot;</anchor-external></comment-p><p><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>
<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:">DTD</anchor>中の<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>への違反を報告しなければ<strong>なりません</strong>。そのため、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">検証処理器</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DTD</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>しなければ<strong>なりません</strong>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="XML1:&quot;#dt-validating&quot;">IW:XML1:&quot;#dt-validating&quot;</anchor-external></comment-p><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>
Q: 読んでいない<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><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">宣言</anchor>を</em>読んでいない<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><pre class="XML example code">&lt;!ENTITY % unread SYSTEM &quot;somewhere&quot;&gt;
%unread;   &lt;!-- 読まない --&gt;
%unknown;  &lt;!-- 宣言を読んでいない --&gt;</pre><p>A:
<code class="XML" xml:lang="en"><code class="XMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">standalone</anchor></code>=&quot;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">yes</anchor>&quot;</code>なら<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整形式制約</anchor><q><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">宣言</anchor>されていること</q>に違反するので<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">致命的誤り</anchor>。
そうでないなら、華麗にスルー。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">華麗にスルーであってる?</comment-p><p>(<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="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end>
Q: <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><pre class="XML example code">&lt;!-- これ自体は外部引数実体 -&amp;#65392;&gt;
%unread;     &lt;!-- 他で宣言されている外部実体、読まない --&gt;
&lt;!ELEMENT
  %unknown;  &lt;!-- 宣言を読んでいない --&gt;
&gt;</pre><p>(<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="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end>
Q: <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>はどうしたらよいのか?
<code class="InfoProp"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素内容空白</anchor></code>や<code class="InfoProp"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">記法</anchor></code>に影響がでるはずだが。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">この2者は先の2者とは異なり<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">妥当</anchor>なら重複することはないから、
すべて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">処理</anchor>してよいのか?</comment-p></body></html>