エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

XName クラス

XML 要素または属性の名前を表します。

System.Object
  System.Xml.Linq.XName

名前空間:  System.Xml.Linq
アセンブリ:  System.Xml.Linq (System.Xml.Linq.dll 内)

[SerializableAttribute]
public sealed class XName : IEquatable<XName>, 
	ISerializable

XName 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETLocalName名前のローカル (非修飾) 部を取得します。
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETNamespace完全修飾名の名前空間部分を取得します。
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETNamespaceNameこの XNameXNamespace の URI を返します。
このページのトップへ

  名前説明
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETEquals指定した XName が、この XName と等しいかどうかを判断します。 (Object.Equals(Object) をオーバーライドします。)
パブリック メソッド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGet(String) XName オブジェクトを拡張名から取得します。
パブリック メソッド静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGet(String, String)ローカル名および名前空間から XName オブジェクトを取得します。
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGetHashCodeこの XName のハッシュ コードを取得します。 (Object.GetHashCode() をオーバーライドします。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETToString"{namespace}localname" という形式の拡張 XML 名を返します。 (Object.ToString() をオーバーライドします。)
このページのトップへ

  名前説明
パブリック演算子静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETEquality XName の 2 つのインスタンスが等しいかどうかを示す値を返します。
パブリック演算子静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETImplicit(String to XName)拡張 XML 名として書式設定された文字列 ({namespace}localname) を XName オブジェクトに変換します。
パブリック演算子静的メンバーXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETInequality XName の 2 つのインスタンスが等しくないかどうかを示す値を返します。
このページのトップへ

  名前説明
明示的なインターフェイス実装プライベート メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETIEquatable<XName>.Equals現在の XName が、指定した XName と等しいかどうかを示します。
明示的なインターフェイス実装プライベート メソッドISerializable.GetObjectData SerializationInfo に、対象のオブジェクトをシリアル化するために必要なデータを設定します。
このページのトップへ

XML 名には、名前空間とローカル名が含まれています。 完全修飾名とは、名前空間とローカル名を組み合わせたものです。

XName オブジェクトの作成

XName には、パブリック コンストラクターが用意されていません。 代わりに、このクラスでは、String からの暗黙の型変換を実行して、XName を作成できます。 この変換が最もよく行われるのは、要素または属性を作成するときです。これは、XElement のコンストラクターの最初の引数が XName であるためです。 このときに文字列を渡すことにより、暗黙の型変換が行われます。 名前空間に含まれない名前を持つ要素を作成するコードを次に示します。

XElement root = new XElement("ElementName", "content");
Console.WriteLine(root);

Visual Basic では、次のように XML リテラルを使用する方が適切です。

Dim root As XElement = <ElementName>content</ElementName>
Console.WriteLine(root)

この例を実行すると、次の出力が生成されます。

<ElementName>content</ElementName>

XName に文字列を割り当てると、String からの暗黙の型変換が行われます。

Visual Basic の例では、XML リテラルを使用して XElement を作成しています。 XML リテラルを使用する場合でも、XName オブジェクトが XElement 用に作成されます。

この他に、Get メソッドを使用して XName オブジェクトを取得することもできます。 しかし、文字列からの暗黙の型変換を使用することをお勧めします。

名前空間での XName の作成

XML と同様、XName は、名前空間に含めることも、含めないこともできます。

C# を使用して名前空間に XName を作成する場合、XNamespace オブジェクトを宣言してから、加算演算子のオーバーライドを使用することをお勧めします。

Visual Basic を使用する場合は、XML リテラルとグローバル名前空間宣言を使用して、名前空間で XML を作成することをお勧めします。

XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "ElementName", "content");
Console.WriteLine(root);

この例を実行すると、次の出力が生成されます。

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

名前空間に含まれない XName の作成

XName オブジェクトの Namespace プロパティは、null にならないことが保証されています。 XName が名前空間に含まれていない場合、Namespace プロパティは None に設定されます。 次のコードで例を示します。

XElement root = new XElement("ElementName", "content");
if (root.Name.Namespace == XNamespace.None)
    Console.WriteLine("The element is in no namespace.");
else
    Console.WriteLine("The element is in a namespace.");

この例を実行すると、次の出力が生成されます。

The element is in no namespace.

拡張名の使用

XName は、"{namespace}localname" という形式の拡張 XML 名からも作成できます。

XElement root = new XElement("{http://www.adventure-works.com}ElementName", "content");
Console.WriteLine(root);

この例を実行すると、次の出力が生成されます。

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

ただし、XName を拡張名から作成する方法は、XNamespace オブジェクトを作成して加算演算子のオーバーライドを使用する方法に比べ、効率面で劣ります。 また、Visual Basic でグローバル名前空間をインポートして XML リテラルを使用する方法と比べても非効率です。

拡張名を使用して XName を作成する場合、LINQ to XML は、最小単位に分割された名前空間のインスタンスを検索する必要があります。 この作業が、拡張名を使用するたびに繰り返されることになります。 この余分な時間は、LINQ クエリを使用する場合には無視できる程度である場合が多いですが、大規模な XML ツリーを作成する場合には、かなり長くなる可能性があります。

XName オブジェクトの最小単位への分割

XName オブジェクトは必ず最小単位に分割されます。つまり、2 つの XName オブジェクトがまったく同じ名前空間とローカル名を持つ場合は、同じインスタンスを共有します。 このため、等値演算子および比較演算子も明示的に指定されます。

この機能が持つ利点のうち特に重要なことは、クエリの実行を高速化できることです。 要素または属性の名前をフィルター処理するときに、述語で比較演算子を指定すると、値ではなく ID が比較されます。 2 つの文字列を比較するよりも、2 つの参照が実際に同じオブジェクトを参照しているかどうかを判断する方が、必要な時間を大幅に削減できます。

.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4、3.5

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

関連項目

その他の技術情報

コミュニティの追加

追加
表示:
© 2014 Microsoft