Freigeben über


Übersicht zu XML-Literalen (Visual Basic)

Mit einem XML-Literal kann XML direkt in den Visual Basic-Code integriert werden. Die XML-Literalsyntax stellt LINQ to XML-Objekte dar und ähnelt der XML 1.0-Syntax. Dies vereinfacht die programmgesteuerte Erstellung von XML-Elementen und -Dokumenten, da der Code dieselbe Struktur hat wie der fertige XML-Code.

Visual Basic kompiliert XML-Literale in LINQ to XML-Objekte. LINQ to XML stellt ein einfaches Objektmodell zur Erstellung und Bearbeitung von XML zur Verfügung, das gut in Sprachintegrierte Abfrage (Language-Integrated Query, LINQ) integriert ist. Weitere Informationen finden Sie unter XElement.

Sie können einen Visual Basic-Ausdruck in ein XML-Literal einbetten. Zur Laufzeit erstellt die Anwendung ein LINQ to XML-Objekt für jedes Literal. Dieses beinhaltet die Werte der eingebetteten Ausdrücke. Damit kann dynamischer Inhalt in einem XML-Literal angegeben werden. Weitere Informationen finden Sie unter Eingebettete Ausdrücke in XML (Visual Basic).

Weitere Informationen über die Unterschiede zwischen XML-Literalsyntax und XML 1.0-Syntax finden Sie unter XML-Literale und die XML 1.0-Spezifikation (Visual Basic).

Einfache Literale

Sie können ein LINQ to XML-Objekt in Visual Basic-Code erstellen, indem Sie gültigen XML-Code eingeben oder einfügen. Ein XML-Elementliteral gibt ein XElement-Objekt zurück. Weitere Informationen finden Sie unter XML-Elementliteral (Visual Basic) und unter XML-Literale und die XML 1.0-Spezifikation (Visual Basic). Im folgenden Beispiel wird ein XML-Element mit mehreren untergeordneten Elementen erstellt.

Dim contact1 As XElement = 
    <contact>
      <name>Patrick Hines</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>

Ein XML-Dokument kann erstellt werden, indem einem XML-Literal <?xml version="1.0"?> vorangestellt wird, wie im folgenden Beispiel gezeigt wird. Ein XML-Dokumentliteral gibt ein XDocument-Objekt zurück. Weitere Informationen finden Sie unter XML-Dokumentliteral (Visual Basic).

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>

Tipp

Die XML-Literalsyntax in Visual Basic ist nicht identisch mit der Syntax der XML 1.0-Spezifikation. Weitere Informationen finden Sie unter XML-Literale und die XML 1.0-Spezifikation (Visual Basic).

Zeilenfortsetzung

Ein XML-Literal kann mehrere Zeilen umfassen, ohne dass Zeilenfortsetzungszeichen (die Leerzeichen-Unterstrich-EINGABETASTE-Sequenz) verwendet werden. Dies vereinfacht den Vergleich von XML-Literalen im Code mit XML-Dokumenten.

Der Compiler behandelt Zeilenfortsetzungszeichen als Teil eines XML-Literals. Deshalb sollte die Leerzeichen-Unterstrich-EINGABETASTE-Sequenz nur verwendet werden, wenn sie Teil des LINQ to XML-Objekts ist.

Zeilenfortsetzungszeichen werden jedoch benötigt, wenn ein mehrzeiliger Ausdruck in einem eingebetteten Ausdruck vorliegt. Weitere Informationen finden Sie unter Eingebettete Ausdrücke in XML (Visual Basic).

Einbetten von Abfragen in XML-Literalen

In einem eingebetteten Ausdruck kann eine Abfrage verwendet werden. In diesem Fall werden die von der Abfrage zurückgegebenen Elemente dem XML-Element hinzugefügt. Damit kann dynamischer Inhalt, wie beispielsweise das Ergebnis der Abfrage eines Benutzers, einem XML-Literal hinzugefügt werden.

Im folgenden Code wird zum Beispiel eine eingebettete Abfrage verwendet, um XML-Elemente aus den Membern des phoneNumbers2-Arrays zu erstellen und diese als untergeordnete Elemente von contact2 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 erzeugt der Compiler Objekte aus XML-Literalen

Der Visual Basic-Compiler übersetzt XML-Literale in Aufrufe der entsprechenden LINQ to XML-Konstruktoren, um das LINQ to XML-Objekt zu erstellen. Das folgende Codebeispiel wird vom Visual Basic-Compiler beispielsweise in einen Aufruf des XProcessingInstruction-Konstruktors für die XML-Versionsanweisung, in Aufrufe des XElement-Konstruktors für die Elemente <contact>, <name> und <phone> und in Aufrufe des XAttribute-Konstruktors für das type-Attribut übersetzt. Genauer gesagt, ruft der Visual Basic-Compiler für die Attribute des folgenden Beispiels den XAttribute(XName, Object)-Konstruktor zweimal auf. Der erste Aufruf übergibt den Wert type für den name-Parameter und den Wert home für den value-Parameter. Der zweite Aufruf übergibt ebenfalls den Wert type für den name-Parameter, jedoch 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>

Siehe auch

Referenz

XML-Dokumentliteral (Visual Basic)

XML-Elementliteral (Visual Basic)

XElement

Konzepte

Eingebettete Ausdrücke in XML (Visual Basic)

Weitere Ressourcen

Erstellen von XML in Visual Basic

XML-Literale (Visual Basic)