process

処理する (XML)

[1]

非検証処理器は、DTD内部部分集合の全体も含め、文書実体のみを整形式性について検査する必要があります。 [定義: 非検証処理器文書妥当性を検査する必要はありませんが、読んでいない引数実体への最初の参照までにDTD内部部分集合中で、あるいは読んだ引数実体中で読んだすべての宣言処理 (しょり) (process) する必要があります。これはすなわち、非検証処理器はそれらの宣言中の情報を属性値正規化内部実体置換文取込み、および既定属性値の供給に用いなければなりません。] 非検証処理器standalone="yes"の場合を除き、読んでいない引数実体への参照の後に遭遇した実体宣言属性並び宣言処理してはなりません。 なぜなら、その実体が上書きする宣言を含んでいるかもしれないからです。処理器standalone="yes"の場合、それらの宣言処理しなければなりません

出典: <IW:XML1:"#dt-use-mdecl">

[2] 非検証処理器には引数実体外部部分集合に現れる実体宣言を読んで処理する義務はありません。そのような文書では実体宣言されていることという整形式制約standalone="yes"の場合のみ適用されます。

<IW:XML1:"#wf-entdeclared">

[3] 検証処理器利用者の任意選択により、DTD中の宣言によって表現された制約への違反とXML仕様書で示された妥当性制約への違反を報告しなければなりません。そのため、検証処理器DTDの全体と文書参照されているすべての外部解析対象実体を読んで処理しなければなりません

<IW:XML1:"#dt-validating">

[4] Q: 読んでいない実体への参照の後で、宣言読んでいない実体への参照が出てきたらどうするのか?

<!ENTITY % unread SYSTEM "somewhere">
%unread;   <!-- 読まない -->
%unknown;  <!-- 宣言を読んでいない -->

A: standalone="yes"なら整形式制約実体宣言されていることに違反するので致命的誤り。 そうでないなら、華麗にスルー。

華麗にスルーであってる?

(名無しさん)

[5] Q: 引数実体参照外部マーク宣言内にある場合は?

<!-- これ自体は外部引数実体 -&#65392;>
%unread;     <!-- 他で宣言されている外部実体、読まない -->
<!ELEMENT
  %unknown;  <!-- 宣言を読んでいない -->
>

(名無しさん)

[6] Q: 実体宣言属性定義並び宣言の解釈に影響が出ることはわかったが、 要素型宣言記法宣言はどうしたらよいのか? 要素内容空白記法に影響がでるはずだが。

この2者は先の2者とは異なり妥当なら重複することはないから、 すべて処理してよいのか?