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>
HinweisHinweis

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)