命名空間宣告範圍
命名空間宣告有其範圍 (Scope)。 亦即,命名空間可以出現在文件中的任何地方,但類似程式變數有其範圍;而且命名空間只在它們的適當範圍內才有效。 範圍有兩種,預設的與限定的。
預設的命名空間是在根項目宣告的命名空間。 它適用於文件中所有非限定的項目。 限定的命名空間則是在文件中有更明確的命名空間覆寫時所宣告的命名空間。
雖然命名空間必須先行宣告才能使用,但這並不表示它必須出現在 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 項目定義的命名空間並不適用於 BOOK 項目以外的項目,如 Publisher 項目。 當命名空間出現在文件時,便表示宣告之命名空間的有效範圍,是從宣告點至宣告該命名空間之項目的結尾。
如果已經為 Publisher 項目宣告命名空間,您就必須用冒號將它附加到項目之前,以便完整限定。 假設 Publisher 項目屬於 mybook 命名空間,此項目會宣告為 <mybook:Publisher>。