Übersicht über Namespaces (LINQ to XML)Namespaces Overview (LINQ to XML)

Dieses Thema enthält eine Einführung in die Namespaces, die XName-Klasse und die XNamespace-Klasse.This topic introduces namespaces, the XName class, and the XNamespace class.

XML-NamenXML Names

XML-Namen sind häufig die Ursache für komplexe Konstruktionen bei der XML-Programmierung.XML names are often a source of complexity in XML programming. Ein XML-Name besteht aus einem XML-Namespace (auch als XML-Namespace-URI bezeichnet) und einem lokalen Namen.An XML name consists of an XML namespace (also called an XML namespace URI) and a local name. Ein XML-Namespace ähnelt einem Namespace in einem auf .NET Framework.NET Framework basierenden Programm.An XML namespace is similar to a namespace in a .NET Framework.NET Framework-based program. Er ermöglicht die eindeutige Qualifizierung von Element- und Attributnamen.It enables you to uniquely qualify the names of elements and attributes. Auf diese Weise lassen sich Namenskonflikte zwischen verschiedenen Teilen eines XML-Dokuments besser vermeiden.This helps avoid name conflicts between various parts of an XML document. Wenn Sie einen XML-Namespace deklariert haben, können Sie einen lokalen Namen auswählen, der nur innerhalb dieses Namespaces eindeutig sein muss.When you have declared an XML namespace, you can select a local name that only has to be unique within that namespace.

Ein anderer Aspekt von XML-Namen sind die XML-Namespacepräfixe.Another aspect of XML names is XML namespace prefixes. XML-Präfixe sind die Hauptursache für die Komplexität von XML-Namen.XML prefixes cause most of the complexity of XML names. Diese Präfixe ermöglichen es Ihnen, eine Kurzform eines XML-Namespace zu erstellen, wodurch das XML-Dokument kompakter und verständlicher wird.These prefixes enable you to create a shortcut for an XML namespace, which makes the XML document more concise and understandable. Die Bedeutung der XML-Präfixe ist jedoch kontextabhängig, was zur erhöhten Komplexität beiträgt.However, XML prefixes depend on their context to have meaning, which adds complexity. Das XML-Präfix aw kann z. B. in unterschiedlichen Teilen einer XML-Struktur unterschiedlichen XML-Namespaces zugeordnet sein.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.

Einer der Vorteile bei der Verwendung von LINQ to XML mit C# besteht darin, dass Sie keine XML-Präfixe verwenden müssen.One of the advantages of using LINQ to XML with C# is that you do not have to use XML prefixes. Wenn LINQ to XML ein XML-Dokument lädt oder analysiert, wird jedes XML-Präfix in seinen zugehörigen XML-Namespace aufgelöst.When LINQ to XML loads or parses an XML document, each XML prefix is resolved to its corresponding XML namespace. Wenn Sie anschließend mit einem Dokument arbeiten, das Namespaces verwendet, greifen Sie fast immer über den Namespace-URI und nicht über das Namespacepräfix auf die Namespaces zu.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. Wenn Entwickler in LINQ to XML mit XML-Namen arbeiten, verwenden Sie immer einen vollqualifizierten XML-Namen (d.h., einen XML-Namespace und einen lokalen Namen).When developers work with XML names in LINQ to XML they always work with a fully-qualified XML name (that is, an XML namespace and a local name). Bei Bedarf ist es in LINQ to XML aber auch möglich, mit Namespacepräfixen zu arbeiten und diese zu steuern.However, when necessary, LINQ to XML allows you to work with and control namespace prefixes.

In LINQ to XML werden die XML-Namen in der XName-Klasse dargestellt.In LINQ to XML, the class that represents XML names is XName. XML-Namen treten in der gesamten LINQ to XML-API häufig auf, und immer dann, wenn ein XML-Name erforderlich ist, treffen Sie auf einen XName-Parameter.XML names appear frequently throughout the LINQ to XML API, and wherever an XML name is required, you will find an XName parameter. Sie arbeiten jedoch selten direkt mit einem XName-Objekt.However, you rarely work directly with an XName. XName enthält eine implizite Umwandlung aus einer Zeichenfolge.XName contains an implicit conversion from string.

Weitere Informationen finden Sie unter XNamespace und XName.For more information, see XNamespace and XName.

Siehe auchSee Also

Working with XML Namespaces (C#) (Arbeiten mit XML-Namespaces (C#))Working with XML Namespaces (C#)