更新 : November 2007
このトピックでは、名前空間、XName クラス、および XNamespace クラスについて説明します。
XML 名
XML 名は、多くの場合、XML プログラミングを複雑にしている原因です。XML 名は、XML 名前空間 (XML 名前空間 URI) とローカル名で構成されます。XML 名前空間は、.NET Framework ベースのプログラムにおける名前空間と似ています。これを使用すると、要素と属性の名前を一意に修飾できます。このため、XML ドキュメントのさまざまな部分の間で、名前の競合を回避するのに役立ちます。XML 名前空間を宣言した後は、その名前空間内でのみ一意であるローカル名を選択できます。
XML 名には、XML 名前空間プレフィックスという側面もあります。XML プレフィックスは、XML 名の複雑さの主要な原因です。このプレフィックスを使用すると、XML 名前空間に対するショートカットを作成できるため、XML ドキュメントがより簡潔でわかりやすくなります。ただし XML プレフィックスはコンテキストによって意味が異なり、これが複雑さの原因となります。たとえば、XML プレフィックス aw に関連付けられている XML 名前空間が、同じ XML ツリー内でも部分によって異なる可能性があります。
C# で LINQ to XML を使用する利点の 1 つは、XML プレフィックスを使用する必要がないという点です。LINQ to XML で XML ドキュメントを読み込んで解析する際に、各 XML プレフィックスは、対応する XML 名前空間に解決されます。以後、名前空間を使用するドキュメントの操作時には、ほとんどの場合、名前空間プレフィックスではなく名前空間 URI を通して名前空間にアクセスします。LINQ to XML で開発者が XML 名を操作するときは、必ず完全修飾 XML 名 (つまり XML 名前空間とローカル名) を操作します。ただし、LINQ to XML では、必要に応じて名前空間プレフィックスを操作したり制御したりできます。
Visual Basic および XML リテラルで LINQ to XML を使用する場合は、名前空間内のドキュメントの操作時に名前空間プレフィックスを使用する必要があります。
LINQ to XML で XML 名を表すクラスは XName です。LINQ to XML API では XML 名がよく使用されており、XML 名が必要な場合には必ず XName パラメータが存在します。しかし、XName を直接操作することはほとんどありません。XName には、文字列からの暗黙的な変換が含まれています。
詳細については、「XNamespace」および「XName」を参照してください。