名前空間の概要 (LINQ to XML)Namespaces Overview (LINQ to XML)

このトピックでは、名前空間、XName クラス、および XNamespace クラスについて説明します。This topic introduces namespaces, the XName class, and the XNamespace class.

XML 名XML Names

XML 名は、多くの場合、XML プログラミングを複雑にしている原因です。XML names are often a source of complexity in XML programming. XML 名は、XML 名前空間 (XML 名前空間 URI) とローカル名で構成されます。An XML name consists of an XML namespace (also called an XML namespace URI) and a local name. XML 名前空間は、.NET Framework ベースのプログラムにおける名前空間と似ています。An XML namespace is similar to a namespace in a .NET Framework-based program. これを使用すると、要素と属性の名前を一意に修飾できます。It enables you to uniquely qualify the names of elements and attributes. このため、XML ドキュメントのさまざまな部分の間で、名前の競合を回避するのに役立ちます。This helps avoid name conflicts between various parts of an XML document. XML 名前空間を宣言した後は、その名前空間内でのみ一意であるローカル名を選択できます。When you have declared an XML namespace, you can select a local name that only has to be unique within that namespace.

XML 名には、XML 名前空間プレフィックスという側面もあります。Another aspect of XML names is XML namespace prefixes. XML プレフィックスは、XML 名の複雑さの主要な原因です。XML prefixes cause most of the complexity of XML names. このプレフィックスを使用すると、XML 名前空間に対するショートカットを作成できるため、XML ドキュメントがより簡潔でわかりやすくなります。These prefixes enable you to create a shortcut for an XML namespace, which makes the XML document more concise and understandable. ただし XML プレフィックスはコンテキストによって意味が異なり、これが複雑さの原因となります。However, XML prefixes depend on their context to have meaning, which adds complexity. たとえば、XML プレフィックス aw に関連付けられている XML 名前空間が、同じ XML ツリー内でも部分によって異なる可能性があります。For example, the XML prefix aw could be associated with one XML namespace in one part of an XML tree, and with a different XML namespace in a different part of the XML tree.

C# で LINQ to XMLLINQ to XML を使用する利点の 1 つは、XML プレフィックスを使用する必要がないという点です。One of the advantages of using LINQ to XMLLINQ to XML with C# is that you do not have to use XML prefixes. LINQ to XMLLINQ to XML で XML ドキュメントを読み込んで解析するときに、各 XML プレフィックスは、対応する XML 名前空間に解決されます。When LINQ to XMLLINQ to XML loads or parses an XML document, each XML prefix is resolved to its corresponding XML namespace. 以後、名前空間を使用するドキュメントの操作時には、ほとんどの場合、名前空間プレフィックスではなく名前空間 URI を通して名前空間にアクセスします。After that, when you work with a document that uses namespaces, you almost always access the namespaces through the namespace URI, and not through the namespace prefix. 開発者が LINQ to XMLLINQ to XML で XML 名を操作するときは、必ず完全修飾 XML 名 (つまり XML 名前空間とローカル名) を操作します。When developers work with XML names in LINQ to XMLLINQ to XML they always work with a fully-qualified XML name (that is, an XML namespace and a local name). ただし、LINQ to XMLLINQ to XML では、必要に応じて名前空間プレフィックスを操作したり制御したりできます。However, when necessary, LINQ to XMLLINQ to XML allows you to work with and control namespace prefixes.

LINQ to XMLLINQ to XML で XML 名を表すクラスは XName です。In LINQ to XMLLINQ to XML, the class that represents XML names is XName. LINQ to XMLLINQ to XML API では XML 名がよく使用されており、XML 名が必要な場合には必ず XName パラメーターが存在します。XML names appear frequently throughout the LINQ to XMLLINQ to XML API, and wherever an XML name is required, you will find an XName parameter. しかし、XName を直接操作することはほとんどありません。However, you rarely work directly with an XName. XName には、文字列からの暗黙の変換が含まれています。XName contains an implicit conversion from string.

詳細については、次のトピックを参照してください。 XNamespace および XNameFor more information, see XNamespace and XName.

関連項目See also