Vorgehensweise: Erstellen eines Dokuments mit Namespaces (LINQ to XML) (Visual Basic)
In diesem Thema wird das Erstellen eines Dokuments mit Namespaces in Visual Basic beschrieben.
Es ist möglich, Dokumente mit Namespaces mithilfe von Visual Basic zu erstellen, indem Sie die unter Vorgehensweise: Erstellen eines Dokuments mit Namespaces (C#) (LINQ to XML) beschriebenen Techniken anwenden.Aus Gründen der Bequemlichkeit empfiehlt es sich aber, globale Visual Basic-Namespacedeklarationen zu verwenden.
Bei Verwendung von XML-Literalen in Visual Basic können Benutzer einen globalen XML-Standardnamespace definieren.Dieser Namespace ist der Standardnamespace für die XML-Literale und für die XML-Eigenschaften.Der XML-Standardnamespace kann auf Projekt- oder auf Dateiebene definiert werden.Bei Definition auf Dateiebene wird der auf der Projektebene definierte Standardnamespace außer Kraft gesetzt.
Sie können auch andere Namespaces definieren und die Namespacepräfixe für diese Namespaces angeben.
Standardnamespaces und Namespaces mit einem Präfix werden mit dem Imports-Schlüsselwort definiert.
Weitere Informationen dazu finden Sie unter Einführung in XML-Literale in Visual Basic.
Beachten Sie, dass der XML-Standardnamespace nur für Elemente, nicht aber für Attribute gültig ist.Attribute befinden sind standardmäßig nie in einem Namespace.Sie können aber ein Namespacepräfix verwenden, um ein Attribut in einen Namespace zu setzen.
Beispiel
Dieses Beispiel erstellt ein Dokument, das einen Namespace enthält:
Imports <xmlns:aw="https://www.adventure-works.com">
Module Module1
Sub Main()
Dim root As XElement = _
<aw:Root>
<aw:Child aw:Att="attvalue"/>
</aw:Root>
Console.WriteLine(root)
End Sub
End Module
Dieses Beispiel führt zur folgenden Ausgabe:
<aw:Root xmlns:aw="https://www.adventure-works.com">
<aw:Child aw:Att="attvalue" />
</aw:Root>
Dieses Beispiel erstellt ein Dokument, das zwei Namespaces enthält, wovon ein Namespace der Standardnamespace ist:
Imports <xmlns="https://www.adventure-works.com">
Imports <xmlns:fc="www.fourthcoffee.com">
Module Module1
Sub Main()
Dim root As XElement = _
<Root>
<Child Att="attvalue"/>
<fc:Child2>child2 content</fc:Child2>
</Root>
Console.WriteLine(root)
End Sub
End Module
Dieses Beispiel führt zur folgenden Ausgabe:
<Root xmlns:fc="www.fourthcoffee.com" xmlns="https://www.adventure-works.com">
<Child Att="attvalue" />
<fc:Child2>child2 content</fc:Child2>
</Root>
Das folgende Beispiel erstellt ein Dokument, das zwei Namespaces enthält, die beide ein Namespacepräfix besitzen.
Beim Serialisieren in eine XML-Struktur gibt LINQ to XML je nach Bedarf Namespacedeklarationen aus, sodass sich jedes Element in dem für ihn vorgesehenen Namespace befindet.
Imports <xmlns:aw="https://www.adventure-works.com">
Imports <xmlns:fc="www.fourthcoffee.com">
Module Module1
Sub Main()
Dim root As XElement = _
<aw:Root>
<fc:Child>
<aw:DifferentChild>other content</aw:DifferentChild>
</fc:Child>
<aw:Child2>c2 content</aw:Child2>
<fc:Child3>c3 content</fc:Child3>
</aw:Root>
Console.WriteLine(root)
End Sub
End Module
Mit diesem Beispiel wird die folgende Ausgabe erzeugt:
<aw:Root xmlns:fc="www.fourthcoffee.com" xmlns:aw="https://www.adventure-works.com">
<fc:Child>
<aw:DifferentChild>other content</aw:DifferentChild>
</fc:Child>
<aw:Child2>c2 content</aw:Child2>
<fc:Child3>c3 content</fc:Child3>
</aw:Root>