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文字列を割り当てると、からのString暗黙的な変換が使用されます。Assigning 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.

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

名前空間プレフィックスの制御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>  

詳細については、「方法 :コントロールの名前空間C#プレフィックス () (LINQ to XML)。For more information, see How to: Control Namespace Prefixes (C#) (LINQ to XML).

既定の名前空間の作成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

名前空間とローカル名を指定するもう1つの方法は、次の形式{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.

適用対象

こちらもご覧ください