XNamespace XNamespace XNamespace XNamespace Class

定義

XML 名前空間を表します。Represents an XML namespace. このクラスは継承できません。This class cannot be inherited.

public ref class XNamespace sealed
public sealed class XNamespace
type XNamespace = class
Public NotInheritable Class XNamespace
継承
XNamespaceXNamespaceXNamespaceXNamespace

注釈

このクラスは、名前空間の XML 構造を表します。This class represents the XML construct of namespaces.

すべてXNameが含まれています、XNamespaceします。Every XName contains an XNamespace. 要素が名前空間内になくても、要素の XName には、名前空間 XNamespace.None が含まれています。Even if an element is not in a namespace, the element's XName still contains a namespace, XNamespace.None. XName.Namespace プロパティが null になることはありません。The XName.Namespace property is guaranteed to not be null.

XNamespace オブジェクトを作成します。Creating an XNamespace Object

作成する最も一般的な方法、XNamespaceオブジェクトが単に文字列を代入します。The most common way to create an XNamespace object is to simply assign a string to it. 加算演算子のオーバーライドを使用して、ローカル名を使用し、名前空間を結合できます。You can then combine the namespace with a local name by using the override of the addition operator. 次の例では、この手法を示します。The following example shows this idiom:

XNamespace aw = "http://www.adventure-works.com";  
XElement root = new XElement(aw + "Root", "Content");  
Console.WriteLine(root);  
Dim aw As XNamespace = "http://www.adventure-works.com"  
Dim root As XElement = New XElement(aw + "Root", "Content")  
Console.WriteLine(root)  

ただし、Visual Basic では通常を宣言、グローバルな既定の名前空間には、次のように。However, in Visual Basic, you would typically declare a global default namespace, as follows:

Imports <xmlns='http://www.adventure-works.com'>  

Module Module1  
    Sub Main()  
        Dim root As XElement = _  
            <Root>Content</Root>  
        Console.WriteLine(root)  
    End Sub  
End Module  

この例を実行すると、次の出力が生成されます。This example produces the following output:

<Root xmlns="http://www.adventure-works.com">Content</Root>  

文字列の割り当て、XNamespaceから暗黙の変換を使用してStringAssigning a string to an XNamespace uses the implicit conversion from String.

方法:名前空間を持つドキュメントの作成 (C#) (LINQ to XML)詳細と例。See How to: Create a Document with Namespaces (C#) (LINQ to XML) for more information and examples.

参照してください(LINQ to XML) の Visual Basic における名前空間Visual Basic で名前空間の使用の詳細についてはします。See Namespaces in Visual Basic (LINQ to XML) for more information on using namespaces in Visual Basic.

プレフィックスの Namespace を制御します。Controlling Namespace Prefixes

名前空間を宣言する属性を作成する場合は、シリアル化された xml 属性で指定されたプレフィックスは保持されます。If you create an attribute that declares a namespace, the prefix specified in the attribute will be persisted in the serialized XML. プレフィックスを持つ名前空間を宣言する属性を作成するには、属性の名前の名前空間が Xmlns で、属性の名前が名前空間プレフィックスであるような属性を作成します。To create an attribute that declares a namespace with a prefix, you create an attribute where the namespace of the name of the attribute is Xmlns, and the name of the attribute is the namespace prefix. 属性の値は、名前空間の URI です。The value of the attribute is the URI of the namespace. 次の例では、この手法を示します。The following example shows this idiom:

XNamespace aw = "http://www.adventure-works.com";  
XElement root = new XElement(aw + "Root",  
    new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),  
    "Content");  
Console.WriteLine(root);  
Dim aw As XNamespace = "http://www.adventure-works.com"  
Dim root As XElement = New XElement(aw + "Root", _  
    New XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"), _  
    "Content")  
Console.WriteLine(root)  

Visual Basic で名前空間のプレフィックスを制御する名前空間ノードを作成する代わりに通常使用する、グローバル名前空間宣言。In Visual Basic, instead of creating a namespace node to control namespace prefixes, you would typically use a global namespace declaration:

Imports <xmlns:aw='http://www.adventure-works.com'>  

Module Module1  
    Sub Main()  
        Dim root As XElement = _  
            <aw:Root>Content</aw:Root>  
        Console.WriteLine(root)  
    End Sub  
End Module  

この例を実行すると、次の出力が生成されます。This example produces the following output:

<aw:Root xmlns:aw="http://www.adventure-works.com">Content</aw:Root>  

詳細については、「方法 :Namespace プレフィックスを制御する (C#) (LINQ to XML)します。For more information, see How to: Control Namespace Prefixes (C#) (LINQ to XML).

既定の Namespace を作成します。Creating a Default Namespace

属性名が"xmlns"の特殊な値を持つ場合は、名前空間となる属性を作成、するときに、XML ツリーをシリアル化されるとき、名前空間として宣言する既定の名前空間。When constructing an attribute that will be a namespace, if the attribute name has the special value of "xmlns", then when the XML tree is serialized, the namespace will be declared as the default namespace. "Xmlns"自体の名前を持つ特別な属性は、任意の名前空間でないです。The special attribute with the name of "xmlns" itself is not in any namespace. 属性の値は、名前空間 URI です。The value of the attribute is the namespace URI.

次の例では、名前空間を既定の名前空間にする方法で宣言されている属性を格納する XML ツリーを作成します。The following example creates an XML tree that contains an attribute that is declared in such a way that the namespace will become the default namespace:

XNamespace aw = "http://www.adventure-works.com";  
XElement root = new XElement(aw + "Root",  
    new XAttribute("xmlns", "http://www.adventure-works.com"),  
    new XElement(aw + "Child", "content")  
);  
Console.WriteLine(root);  
Dim aw As XNamespace = "http://www.adventure-works.com"  
Dim root As XElement = New XElement(aw + "Root", _  
    New XAttribute("xmlns", "http://www.adventure-works.com"), _  
    New XElement(aw + "Child", "content") _  
)  
Console.WriteLine(root)  

Visual Basic の場合は、既定の名前空間を作成する名前空間ノードを作成する代わりに通常使用する既定のグローバル名前空間の宣言。In Visual Basic, instead of creating a namespace node to create a default namespace, you would typically use a global default namespace declaration:

Imports <xmlns='http://www.adventure-works.com'>  

Module Module1  
    Sub Main()  
        Dim root As XElement = _  
            <Root>  
                <Child>content</Child>  
            </Root>  
        Console.WriteLine(root)  
    End Sub  
End Module  

この例を実行すると、次の出力が生成されます。This example produces the following output:

<Root xmlns="http://www.adventure-works.com">  
  <Child>content</Child>  
</Root>  

XNamespace アトミック化XNamespace Atomization

XNamespace オブジェクトは分解されることが保証されています。つまり、まったく同じ URI を持つ 2 つの XNamespace オブジェクトは、同一のインスタンスを共有することになります。XNamespace objects are guaranteed to be atomized; that is, if two XNamespace objects have exactly the same URI, they will share the same instance. 等値と比較演算子は、この目的で明示的に提供されます。The equality and comparison operators are provided explicitly for this purpose.

拡張名の使用Using Expanded Names

名前空間とローカル名を指定する別の方法は、フォームで拡張名を使用する{namespace}name:Another way to specify a namespace and a local name is to use an expanded name in the form {namespace}name:

XElement e = new XElement("{http://www.adventure-works.com}Root",  
     new XAttribute("{http://www.adventure-works.com}Att", "content")  
);  
Console.WriteLine(e);  
Dim e As XElement = New XElement("{http://www.adventure-works.com}Root", _  
     New XAttribute("{http://www.adventure-works.com}Att", "content") _  
)  
Console.WriteLine(e)  

この例を実行すると、次の出力が生成されます。This example produces the following output:

<Root p1:Att="content" xmlns:p1="http://www.adventure-works.com" xmlns="http://www.adventure-works.com" />  

ただし、この方法はパフォーマンスに影響を与えます。This approach has performance implications. 展開名が含まれた文字列を LINQ to XMLLINQ to XML に渡すたびに、名前を解析し、分解された名前空間を検索し、分解された名前を検索する必要があります。Each time that you pass a string that contains an expanded name to LINQ to XMLLINQ to XML, it must parse the name, find the atomized namespace, and find the atomized name. この処理は CPU 時間を消費します。This process takes CPU time. パフォーマンスが重要な場合は、別のアプローチを使用することがあります。If performance is important, you may want to use a different approach.

Visual Basic の場合は、推奨されるアプローチされる XML リテラルを使用する展開名の使用は関与しません。With Visual Basic, the recommended approach is to use XML literals, which does not involve the use of expanded names.

プロパティ

NamespaceName NamespaceName NamespaceName NamespaceName

この名前空間の URI を取得します。Gets the Uniform Resource Identifier (URI) of this namespace.

None None None None

対応する名前空間がない XNamespace オブジェクトを取得します。Gets the XNamespace object that corresponds to no namespace.

Xml Xml Xml Xml

XML URI (http://www.w3.org/XML/1998/namespace) に対応する XNamespace オブジェクトを取得します。Gets the XNamespace object that corresponds to the XML URI (http://www.w3.org/XML/1998/namespace).

Xmlns Xmlns Xmlns Xmlns

xmlns URI (http://www.w3.org/2000/xmlns/) に対応する XNamespace オブジェクトを取得します。Gets the XNamespace object that corresponds to the xmlns URI (http://www.w3.org/2000/xmlns/).

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定した XNamespace が現在の XNamespace と等しいかどうかを示します。Determines whether the specified XNamespace is equal to the current XNamespace.

Get(String) Get(String) Get(String) Get(String)

指定した URI (Uniform Resource Identifier) の XNamespace を取得します。Gets an XNamespace for the specified Uniform Resource Identifier (URI).

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

この XNamespace のハッシュ コードを取得します。Gets a hash code for this XNamespace.

GetName(String) GetName(String) GetName(String) GetName(String)

この XName と指定したローカル名から作成された XNamespace オブジェクトを返します。Returns an XName object created from this XNamespace and the specified local name.

GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

この XNamespace の URI を返します。Returns the URI of this XNamespace.

演算子

Addition(XNamespace, String) Addition(XNamespace, String) Addition(XNamespace, String) Addition(XNamespace, String)

XNamespace オブジェクトとローカル名を結合して、XName を作成します。Combines an XNamespace object with a local name to create an XName.

Equality(XNamespace, XNamespace) Equality(XNamespace, XNamespace) Equality(XNamespace, XNamespace) Equality(XNamespace, XNamespace)

XNamespace の 2 つのインスタンスが等しいかどうかを示す値を返します。Returns a value indicating whether two instances of XNamespace are equal.

Implicit(String to XNamespace) Implicit(String to XNamespace) Implicit(String to XNamespace) Implicit(String to XNamespace)

URI が含まれている文字列を XNamespace に変換します。Converts a string containing a Uniform Resource Identifier (URI) to an XNamespace.

Inequality(XNamespace, XNamespace) Inequality(XNamespace, XNamespace) Inequality(XNamespace, XNamespace) Inequality(XNamespace, XNamespace)

XNamespace の 2 つのインスタンスが等しくないかどうかを示す値を返します。Returns a value indicating whether two instances of XNamespace are not equal.

適用対象

こちらもご覧ください