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