要素と属性を含む新しいノードでのエンティティ参照の展開に対する名前空間の影響

更新 : November 2007

エンティティ宣言には、原則として任意のコンテンツを含めることができるため、<!ENTITY aname "<elem>test</elem>"> のような要素が含まれている可能性もあります。

&aname; の置換コンテンツへの展開は、XML の解析時に行われるのではありません。ノードがドキュメントに配置されるまでは、要素に対する名前空間を解決できないため、XML の展開は実行されません。スコープ内の名前空間が判明するのは、ノードが配置された後になります。ノードがドキュメントに配置されると、名前空間の解決が行われ、結果として得られたエンティティ コンテンツが適切なノードに解析されます。

43c25e20.alert_note(ja-jp,VS.90).gifメモ :

新しく作成されたエンティティ参照ノードがいったん展開された後、再び展開されることはありません。したがって、要素の置換テキストで使われる名前空間は、親ノードの設定時にバインドされます。ただし、既存のエンティティ参照ノードを削除して別の場所に挿入すると、そのノードに対する名前空間が変更される可能性があります。また、CloneNode メソッドで複製されたエンティティ参照ノードにおいても、名前空間が変わる可能性があります。

参照

概念

XML ドキュメント オブジェクト モデル (DOM)