
[1]

> [[非検証処理器]]は、[[DTD]][[内部部分集合]]の全体も含め、[[文書実体]]のみを[[整形式]]性について検査する'''必要があります'''。
[定義: [[非検証処理器]]は[[文書]]の[[妥当性]]を検査する必要はありませんが、読んでいない[[引数実体]]への最初の[[参照]]までに[[DTD]][[内部部分集合]]中で、あるいは読んだ[[引数実体]]中で読んだすべての[[宣言]]を[DFN[[RUBY[[[処理]]] [しょり] @en[process]]]]する'''必要があります'''。これはすなわち、[[非検証処理器]]はそれらの[[宣言]]中の情報を[[属性値]]の[[正規化]]、[[内部実体]]の[[置換文]]の[[取込み]]、および[[既定]]の[[属性値]]の供給に用いなければ'''なりません'''。]
[[非検証処理器]]は[CODE(XML)@en[[CODE(XMLa)@en[[[standalone]]="[[yes]]"]]]]の場合を除き、読んでいない[[引数実体]]への[[参照]]の後に遭遇した[[実体宣言]]や[[属性並び宣言]]を[[処理]]しては[['''なりません''']]。
なぜなら、その[[実体]]が上書きする[[宣言]]を含んでいるかもしれないからです。[[処理器]]は[CODE(XML)@en[[CODE(XMLa)@en[[[standalone]]="[[yes]]"]]の場合、それらの[[宣言]]を[[処理]]しなければ'''なりません'''。]]

;; 出典: <IW:XML1:"#dt-use-mdecl">

[2]
[[非検証処理器]]には[[引数実体]]や[[外部部分集合]]に現れる[[実体宣言]]を読んで[[処理]]する義務はありません。そのような[[文書]]では[[実体]]が[[宣言]]されていることという[[整形式制約]]は[CODE(XML)@en[[CODE(XMLa)@en[[[standalone]]="[[yes]]"]]の場合のみ適用されます。]]

;; <IW:XML1:"#wf-entdeclared">

[3]
[[検証処理器]]は[[利用者の任意選択]]により、[[DTD]]中の[[宣言]]によって表現された制約への違反と[[XML]]仕様書で示された[[妥当性制約]]への違反を報告しなければ'''なりません'''。そのため、[[検証処理器]]は[[DTD]]の全体と[[文書]]で[[参照]]されているすべての[[外部解析対象実体]]を読んで[[処理]]しなければ'''なりません'''。

;; <IW:XML1:"#dt-validating">

[4]
Q: 読んでいない[[実体]]への[[参照]]の後で、''[[宣言]]を''読んでいない[[実体]]への[[参照]]が出てきたらどうするのか?

[PRE(XML example code)[
<!ENTITY % unread SYSTEM "somewhere">
%unread;   <!-- 読まない -->
%unknown;  <!-- 宣言を読んでいない -->
]PRE]

A:
[CODE(XML)@en[[CODE(XMLa)[[[standalone]]]]="[[yes]]"]]なら[[整形式制約]][Q[[[実体]]が[[宣言]]されていること]]に違反するので[[致命的誤り]]。
そうでないなら、華麗にスルー。

;; 華麗にスルーであってる?

([[名無しさん]])

[5]
Q: [[引数実体参照]]が[[外部マーク宣言]]内にある場合は?

[PRE(XML example code)[
<!-- これ自体は外部引数実体 -&#65392;>
%unread;     <!-- 他で宣言されている外部実体、読まない -->
<!ELEMENT
  %unknown;  <!-- 宣言を読んでいない -->
>
]PRE]

([[名無しさん]])


[6]
Q: [[実体宣言]]と[[属性定義並び宣言]]の解釈に影響が出ることはわかったが、
[[要素型宣言]]や[[記法宣言]]はどうしたらよいのか?
[CODE(InfoProp)[[[要素内容空白]]]]や[CODE(InfoProp)[[[記法]]]]に影響がでるはずだが。

;; この2者は先の2者とは異なり[[妥当]]なら重複することはないから、
すべて[[処理]]してよいのか?

