XML ドキュメント オブジェクト モデル (DOM) は完全に名前空間に対応しています。 名前空間に対応した XML ドキュメントのみがサポートされています。 World Wide Web Consortium (W3C) では、レベル 1 を実装する DOM アプリケーションは名前空間に対応しない場合があり、DOM レベル 2 の機能は名前空間対応であることを指定しています。 ただし、XML DOM 内のすべての機能は、メソッドがレベル 1 またはレベル 2 DOM の推奨事項のどちらであるかに関係なく、名前空間に対応しています。
たとえば、名前空間に対応しない設定では、DOM レベル 1 の推奨事項で指定されている setAttribute("A:b", "123")
を呼び出しても、 A
のプレフィックスと b
のローカル名を持つ属性は生成されません。 結果として、値が A:b
属性になります。
名前空間に対応する環境では、DOM レベル 2 setAttribute("A:b", "123")
を呼び出すと、 A
のプレフィックスと b
のローカル名を持つ属性が作成されます。 これは、Microsoft .NET Framework DOM のしくみです。
したがって、名前パラメーターを受け取るすべてのメソッドに対して、これらのメソッドは名前を修飾するプレフィックスも受け取ります。
A:b
DOM Level 1 メソッドのなどの name パラメーターは、次のように解析されます。
コロン (:)文字) がない場合、ローカル名は
name
パラメーターに設定され、プレフィックスと NamespaceURI は空の文字列になります。コロンが見つかった場合、名前は最初のコロン文字の位置に基づいて 2 つの部分に分割されます。 プレフィックスはコロンの前にある文字列に設定され、ローカル名はコロンの後にある文字列に設定されます。 NamespaceURI 値を受け取らないメソッドの場合、NamespaceURI は解決されず、空の文字列に設定されたままです。 それ以外の場合、NamespaceURI はメソッドに渡される文字列に設定されます。 プレフィックスが未定義の場合、 Save メソッドと InnerXml プロパティと OuterXml プロパティは失敗します。
こちらも参照ください
.NET