Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit einem XML-Literal können Sie XML direkt in Ihren Visual Basic-Code integrieren. Die XML-Literal-Syntax stellt LINQ-zu-XML-Objekte dar und ist der XML 1.0-Syntax ähnlich. Dies erleichtert das programmgesteuerte Erstellen von XML-Elementen und -Dokumenten, da Ihr Code dieselbe Struktur wie der endgültige XML-Code aufweist.
Visual Basic kompiliert XML-Literale in LINQ-zu-XML-Objekte. LINQ to XML bietet ein einfaches Objektmodell zum Erstellen und Bearbeiten von XML, und dieses Modell ist gut in Language-Integrated Query (LINQ) integriert. Weitere Informationen finden Sie unter XElement.
Sie können einen Visual Basic-Ausdruck in ein XML-Literal einbetten. Zur Laufzeit erstellt Ihre Anwendung ein LINQ to XML-Objekt für jedes Literal, wobei die Werte der eingebetteten Ausdrücke enthalten sind. Auf diese Weise können Sie dynamische Inhalte in einem XML-Literal angeben. Weitere Informationen finden Sie unter Eingebettete Ausdrücke in XML.
Weitere Informationen zu den Unterschieden zwischen der XML-Literalsyntax und der XML 1.0-Syntax finden Sie unter XML-Literale und der XML 1.0-Spezifikation.
Einfache Literale
Sie können in Ihrem Visual Basic-Code ein LINQ to XML-Objekt erstellen, indem Sie gültiges XML eingeben oder einfügen. Ein XML-Elementliteral gibt ein XElement-Objekt zurück. Weitere Informationen finden Sie unter XML-Elementliteral und XML-Literale und XML 1.0-Spezifikation. Im folgenden Beispiel wird ein XML-Element erstellt, das mehrere untergeordnete Elemente enthält.
Dim contact1 As XElement =
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
Sie können ein XML-Dokument erstellen, indem Sie ein XML-Literal mit <?xml version="1.0"?>, wie im folgenden Beispiel gezeigt, starten. Ein XML-Dokument im Literalstil gibt ein XDocument-Objekt zurück. Weitere Informationen finden Sie unter XML-Dokumentliteral.
Dim contactDoc As XDocument =
<?xml version="1.0"?>
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
Hinweis
Die XML-Literalsyntax in Visual Basic ist nicht identisch mit der Syntax in der XML 1.0-Spezifikation. Weitere Informationen finden Sie unter XML-Literale und der XML 1.0-Spezifikation.
Zeilenfortsetzung
Ein XML-Literal kann mehrere Zeilen umfassen, ohne Zeilenfortsetzungszeichen (die Leerzeichen-Unterstrich-Enter-Sequenz) zu verwenden. Dies erleichtert das Vergleichen von XML-Literalen in Code mit XML-Dokumenten.
Der Compiler behandelt Zeilenfortsetzungszeichen als Teil eines XML-Literals. Daher sollten Sie die Leerzeichen-Unterstrich-Enter-Sequenz nur verwenden, wenn sie in das LINQ to XML-Objekt gehört.
Sie benötigen jedoch Zeilenfortsetzungszeichen, wenn Sie einen mehrzeiligen Ausdruck in einem eingebetteten Ausdruck haben. Weitere Informationen finden Sie unter Eingebettete Ausdrücke in XML.
Einbetten von Abfragen in XML-Literale
Sie können eine Abfrage in einem eingebetteten Ausdruck verwenden. In diesem Fall werden die von der Abfrage zurückgegebenen Elemente dem XML-Element hinzugefügt. Auf diese Weise können Sie einem XML-Literal dynamische Inhalte hinzufügen, z. B. das Ergebnis der Abfrage eines Benutzers.
Der folgende Code verwendet z. B. eine eingebettete Abfrage, um XML-Elemente aus den Elementen des phoneNumbers2 Arrays zu erstellen und diese Elemente dann als untergeordnete contact2Elemente hinzuzufügen.
Public Class XmlSamples
Public Sub Main()
' Initialize the objects.
Dim phoneNumbers2 As Phone() = {
New Phone("home", "206-555-0144"),
New Phone("work", "425-555-0145")}
' Convert the data contained in phoneNumbers2 to XML.
Dim contact2 =
<contact>
<name>Patrick Hines</name>
<%= From p In phoneNumbers2
Select <phone type=<%= p.Type %>><%= p.Number %></phone>
%>
</contact>
Console.WriteLine(contact2)
End Sub
End Class
Class Phone
Public Type As String
Public Number As String
Public Sub New(ByVal t As String, ByVal n As String)
Type = t
Number = n
End Sub
End Class
So erstellt der Compiler Objekte aus XML-Literalen
Der Visual Basic-Compiler übersetzt XML-Literale in Aufrufe des entsprechenden LINQ to XML-Konstruktors, um das LINQ to XML-Objekt zu erstellen. Beispielsweise übersetzt der Visual Basic-Compiler das folgende Codebeispiel in einen Aufruf des XProcessingInstruction-Konstruktors für die XML-Versionsanweisung, Aufrufe des XElement-Konstruktors für die <contact>, <name> und <phone>-Elemente und Aufrufe des XAttribute-Konstruktors für das type-Attribut. Insbesondere wird der Visual Basic-Compiler aufgrund der Attribute im folgenden Beispiel zweimal den XAttribute(XName, Object) Konstruktor aufrufen. Der erste Übergibt den Wert type für den name Parameter und den Wert home für den value Parameter. Die zweite übergibt auch den Wert type für den name Parameter, aber den Wert work für den value Parameter.
Dim contactDoc As XDocument =
<?xml version="1.0"?>
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>