共用方式為


管理 XML 檔案中的命名空間

XML 命名空間會將 XML 檔案中的專案和屬性名稱與自定義和預先定義的 URI 產生關聯。 若要建立這些關聯,您可以定義命名空間 URI 的前置詞,並使用這些前置詞來限定 XML 數據中的元素和屬性名稱。 命名空間會防止元素和屬性名稱衝突,並讓相同名稱的元素和屬性以不同的方式處理和驗證。

宣告命名空間

若要在專案上宣告命名空間,您可以使用 xmlns: 屬性:

xmlns:<name>=<"uri">

其中 <name> 是命名空間前置詞,而 <"uri"> 是識別命名空間的 URI。 宣告前置詞之後,您可以使用它來限定 XML 檔中的元素和屬性,並將其與命名空間 URI 產生關聯。 因為命名空間前置詞是在整個檔中使用,所以長度應該很短。

此範例會定義兩 BOOK 個元素。 第一個元素是由前置詞限定,mybook而第二個元素則以前置詞限定。 bb 每個前置詞都與不同的命名空間 URI 相關聯:

<mybook:BOOK xmlns:mybook="http://www.contoso.com/books.dtd">  
    <bb:BOOK xmlns:bb="urn:blueyonderairlines" />
</mybook:BOOK>

若要表示專案是特定命名空間的一部分,請將命名空間前置詞加入其中。 例如,如果 Author 項目屬於 mybook 命名空間,則會宣告為 <mybook:Author>

宣告範圍

命名空間從宣告點開始生效,直到它宣告的元素結尾為止。 在這個範例中,BOOK 元素中定義的命名空間不會套用至 BOOK 元素外部的其他元素,例如 Publisher 元素:

<Author>Joe Smith</Author>  
<BOOK xmlns:book="http://www.contoso.com">  
    <title>My Wonderful Day</title>  
      <price>$3.95</price>  
</BOOK>  
<Publisher>  
    <Name>MSPress</Name>  
</Publisher>  

命名空間必須先宣告,才能使用它,但不需要出現在 XML 檔頂端。

當您在 XML 檔中使用多個命名空間時,您可以將一個命名空間定義為預設命名空間,以建立更簡潔的檔。 默認命名空間會在根元素中宣告,並套用至檔中所有不合格的專案。 默認命名空間僅適用於元素,不適用於屬性。

若要使用預設命名空間,請省略 元素上宣告的前置詞和冒號:

<BOOK xmlns="http://www.contoso.com/books.dtd">  
...
</BOOK>

管理命名空間

類別 XmlNamespaceManager 會儲存命名空間 URI 及其前置詞的集合,並可讓您查閱、新增和移除此集合中的命名空間。 在某些內容中,需要這個類別才能提升 XML 處理效能。 例如,XsltContext 類別會使用 XmlNamespaceManager 來支援 XPath。

命名空間管理員不會對命名空間執行任何驗證,但假設前置詞和命名空間已經驗證並符合 W3C 命名空間 規格。

備註

C#Visual Basic 中的 LINQ TO XML 不會用來XmlNamespaceManager管理命名空間。 如需使用 LINQ to XML 時管理命名空間的相關資訊,請參閱 LINQ 文件中的 使用 XML 命名空間 (C#)使用 XML 命名空間 (Visual Basic)

以下是一些您可以使用 XmlNamespaceManager 類別執行的管理和查閱工作。 如需詳細資訊和範例,請遵循每個方法或屬性的參考頁面連結。

發往 使用
新增命名空間 AddNamespace 方法
拿掉命名空間 RemoveNamespace 方法
尋找預設命名空間的 URI DefaultNamespace 屬性
尋找命名空間前置詞的 URI LookupNamespace 方法
尋找命名空間 URI 的前置詞 LookupPrefix 方法
取得目前節點中的命名空間清單 GetNamespacesInScope 方法
界定命名空間的範圍 PushScopePopScope 方法
檢查目前範圍中是否已定義前置詞 HasNamespace 方法
取得用來查閱前置詞和 URI 的名稱數據表 NameTable 屬性

另請參閱