名前空間の宣言にはスコープがあります。 名前空間は、ドキュメント内の任意の場所に配置できますが、プログラムの変数と同様にスコープがあり、適切なスコープ内でだけ有効です。 スコープには、既定と修飾の 2 種類があります。
既定名前空間とは、ルート要素で宣言された名前空間のことです。 既定名前空間は、ドキュメント内にある修飾されていないすべての要素に適用されます。 修飾名前空間とは、ドキュメント内の一部分をより修飾的な名前空間でオーバーライドするときに宣言する名前空間のことです。
名前空間は使用する前に宣言されている必要がありますが、必ずしも XML ドキュメントの先頭で宣言されていなくてもかまいません。 たとえば、次の例では、データの途中の BOOK 要素のレベルで修飾名前空間が宣言されていますが、この名前空間はその要素のすべての子孫にのみ適用されます。
<Author>Joe Smith</Author>
<BOOK xmlns:book="https://www.contoso.com">
<title>My Wonderful Day</title>
<price>$3.95</price>
</BOOK>
<Publisher>
<Name>MSPress</Name>
</Publisher>
BOOK 要素に対して定義されている名前空間は、Publisher 要素など、BOOK 要素の外側にある要素には適用されません。 ドキュメント内に名前空間が示されているとき、宣言されているその名前空間の暗黙的な有効な範囲は、宣言された位置から、宣言された要素の最後までです。
Publisher 要素に対して名前空間が宣言されている場合は、要素の先頭にその名前空間とコロンを付けることによって要素を完全に修飾する必要があります。 たとえば Publisher 要素が mybook 名前空間に属す場合は、この要素を <mybook:Publisher> と宣言します。