Übersicht über Namespaces (LINQ to XML)

In diesem Artikel werden XML-Namen, XML-Namespaces, XML-Namespacepräfixe sowie die Klassen XName und XNamespace vorgestellt.

XML-Namen sind häufig die Ursache für komplexe Konstruktionen bei der XML-Programmierung. Ein XML-Name besteht aus einem XML-Namespace (auch als XML-Namespace-URI bezeichnet) und einem lokalen Namen. Ein XML-Namespace ähnelt einem Namespace in einem .NET-Programm. Dadurch können Sie die Namen von Elementen und Attributen eindeutig qualifizieren, um Namenskonflikte zwischen verschiedenen Teilen eines XML-Dokuments zu vermeiden. Wenn Sie einen XML-Namespace deklariert haben, können Sie einen lokalen Namen auswählen, der nur innerhalb dieses Namespaces eindeutig sein muss.

Ein weiterer Aspekt von XML-Namen sind XML-Namespacepräfixe, die für den Großteil der Komplexität von XML-Namen verantwortlich sind. Diese Präfixe ermöglichen es Ihnen, eine Kurzform eines XML-Namespace zu erstellen, wodurch das XML-Dokument kompakter und verständlicher wird. Die Bedeutung eines XML-Präfixes hängt jedoch vom Kontext ab, wodurch sich die Komplexität erhöht. Das XML-Präfix aw kann z. B. einem bestimmten XML-Namespace in einem Teil einer XML-Struktur und einem anderen Namespace in einem anderen Teil der Struktur zugeordnet sein.

Einer der Vorteile bei der Verwendung von LINQ to XML mit C# besteht darin, dass Sie keine XML-Präfixe verwenden müssen. Wenn LINQ to XML ein XML-Dokument lädt oder parst, werden die einzelnen XML-Präfixe in die jeweils zugehörigen XML-Namespaces aufgelöst. 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. Wenn Entwickler*innen in LINQ to XML mit XML-Namen arbeiten, verwenden sie immer einen vollqualifizierten XML-Namen (also einen XML-Namespace und einen lokalen Namen). Mit LINQ to XML können Sie Namespacepräfixe jedoch nach Bedarf verwenden und steuern.

Wenn Sie LINQ to XML mit Visual Basic und XML-Literalen einsetzen, müssen Sie bei der Arbeit mit Dokumenten in Namespaces Namespacepräfixe verwenden.

In LINQ to XML werden die XML-Namen in der XName-Klasse dargestellt. 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. Sie arbeiten jedoch selten direkt mit einem XName-Objekt. XName enthält eine implizite Umwandlung aus einer Zeichenfolge.

Weitere Informationen finden Sie unter XNamespace und XName.