XmlNamespaceManager クラス

定義

名前空間の解決、コレクションへの追加と削除を実行します。また、名前空間のスコープ管理機能を提供します。

public ref class XmlNamespaceManager : System::Collections::IEnumerable, System::Xml::IXmlNamespaceResolver
public ref class XmlNamespaceManager : System::Collections::IEnumerable
public class XmlNamespaceManager : System.Collections.IEnumerable, System.Xml.IXmlNamespaceResolver
public class XmlNamespaceManager : System.Collections.IEnumerable
type XmlNamespaceManager = class
    interface IEnumerable
    interface IXmlNamespaceResolver
type XmlNamespaceManager = class
    interface IEnumerable
type XmlNamespaceManager = class
    interface IXmlNamespaceResolver
    interface IEnumerable
Public Class XmlNamespaceManager
Implements IEnumerable, IXmlNamespaceResolver
Public Class XmlNamespaceManager
Implements IEnumerable
継承
XmlNamespaceManager
派生
実装

注釈

XML ドキュメントで名前空間を宣言および使用する方法の一般的な情報については、「XML ドキュメントでの名前空間の管理」を参照してください。

XmlNamespaceManager では、プレフィックスと名前空間が文字列として格納されます。 このクラスで実行できる管理タスクと参照タスクの概要を次に示します。 使用例を含む詳細については、各メソッドまたはプロパティのリファレンス ページへのリンクをクリックしてください。

終了 使用
名前空間を追加する AddNamespace メソッド
名前空間を削除する RemoveNamespace メソッド
既定の名前空間の URI を検索する DefaultNamespace プロパティ
名前空間プレフィックスの URI を検索する LookupNamespace メソッド
名前空間 URI のプレフィックスを検索する LookupPrefix メソッド
現在のノードの名前空間の一覧を取得する GetNamespacesInScope メソッド
名前空間のスコープを指定する PushScope メソッドおよび PopScope メソッド
現在のスコープ内にプレフィックスが定義されているかどうかを確認する HasNamespace メソッド
プレフィックスおよび URI を検索するときに使用する名前テーブルを取得する NameTable プロパティ

名前空間マネージャーに名前空間を追加するには、 オブジェクトを XmlNamespaceManager 作成し、 メソッドを AddNamespace 使用します。 作成時に、既定のプレフィックスと名前空間のペアが名前空間マネージャーに自動的に追加されます。

名前空間マネージャーを作成するときに、または XmlDocument クラスから名前テーブルをXmlReaderXsltContext指定し、 メソッドをAddNamespace使用して名前空間を追加できます。

名前空間修飾要素と属性名をXmlNamespaceManager参照する SelectNodes XPath クエリ式をXmlDocument実行するには、 クラスの または SelectSingleNode メソッドにパラメーターとして オブジェクトを指定できます。

名前空間マネージャーは、プレフィックスと名前空間が既に検証されており、 W3C 名前空間 の仕様に準拠していることを前提としています。 名前空間マネージャーは検証を実行しません。

名前空間マネージャーは、 メソッドを使用して文字列を追加するときと、 メソッドまたは LookupPrefix メソッドを使用AddNamespaceして参照が実行されるときに、文字列をLookupNamespaceアトミック化します。

名前空間マネージャーにより、名前空間の追加と取得だけでなく、列挙のサポートも実装されます。 コンストラクトを使用して、名前空間マネージャーに保存された情報を foreach ループ処理できます。 たとえば、 という名前 nsmanagerの名前空間マネージャーを作成する場合は、 を使用 foreach (String prefix in nsmanager)してテーブルを反復処理できます。

名前空間マネージャーには、プレフィックスと名前空間をオブジェクトとして文字列比較する機能があるため、文字列を直接比較するのではなく名前空間マネージャーを使用することでパフォーマンスを向上できます。

次のコード例は、 の名前空間 URI http://www.w3.org/2001/XMLSchema でプレフィックスxsdをバインドし、それを名前空間マネージャーに追加する方法を示しています。

nsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema")  
nsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema");  

その後、 メソッドを使用して名前空間を LookupNamespace 見つけることができます。

nsmgr.LookupNamespace("xsd")  
nsmgr.LookupNamespace("xsd");  

次の例では、 XmlNamespaceManager XML リーダーの名前テーブルを使用して を作成します。

Dim reader As New XmlTextReader("myfile.xml")  
Dim nsmanager As New XmlNamespaceManager(reader.NameTable)  
nsmanager.AddNamespace("msbooks", "www.microsoft.com/books")  
nsmanager.PushScope()  
nsmanager.AddNamespace("msstore", "www.microsoft.com/store")  
While reader.Read()  
    Console.WriteLine("Reader Prefix:{0}", reader.Prefix)  
    Console.WriteLine("XmlNamespaceManager Prefix:{0}",  
     nsmanager.LookupPrefix(nsmanager.NameTable.Get(reader.NamespaceURI)))  
End While  
XmlTextReader reader = new XmlTextReader("myfile.xml");  
XmlNamespaceManager nsmanager = new XmlNamespaceManager(reader.NameTable);  
nsmanager.AddNamespace("msbooks", "www.microsoft.com/books");  
nsmanager.PushScope();  
nsmanager.AddNamespace("msstore", "www.microsoft.com/store");  
while (reader.Read())  
{  
    Console.WriteLine("Reader Prefix:{0}", reader.Prefix);  
    Console.WriteLine("XmlNamespaceManager Prefix:{0}",  
    nsmanager.LookupPrefix(nsmanager.NameTable.Get(reader.NamespaceURI)));  
}  

コンストラクター

XmlNamespaceManager(XmlNameTable)

XmlNamespaceManager を指定して、XmlNameTable クラスの新しいインスタンスを初期化します。

プロパティ

DefaultNamespace

既定の名前空間の名前空間 URI を取得します。

NameTable

このオブジェクトに関連付けられている XmlNameTable を取得します。

メソッド

AddNamespace(String, String)

指定した名前空間をコレクションに追加します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetEnumerator()

XmlNamespaceManager 内の名前空間を反復処理するために使用する列挙子を返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetNamespacesInScope(XmlNamespaceScope)

現在スコープ内にある名前空間を列挙するために使用できる、プレフィックスをキーとした、名前空間の名前のコレクションを取得します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
HasNamespace(String)

提供されたプリフィックスに現在のプッシュされたスコープに対して定義された名前空間があるかどうかを示す値を取得します。

LookupNamespace(String)

指定したプリフィックスの名前空間 URI を取得します。

LookupPrefix(String)

指定した名前空間 URI に対して宣言されたプリフィックスを検索します。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
PopScope()

名前空間スコープをスタックからポップします。

PushScope()

名前空間スコープをスタックにプッシュします。

RemoveNamespace(String, String)

指定したプリフィックスの指定した名前空間を削除します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

拡張メソッド

Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。

OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。

AsParallel(IEnumerable)

クエリの並列化を有効にします。

AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。

適用対象

こちらもご覧ください