Delen via


Overzicht van XML-letterlijke gegevens (Visual Basic)

Met een letterlijke XML-code kunt u XML rechtstreeks opnemen in uw Visual Basic-code. De letterlijke XML-syntaxis vertegenwoordigt LINQ naar XML-objecten en is vergelijkbaar met de syntaxis van XML 1.0. Hierdoor is het eenvoudiger om programmatisch XML-elementen en -documenten te maken, omdat uw code dezelfde structuur heeft als de uiteindelijke XML.

Visual Basic compileert LETTERLIJKE XML-gegevens in LINQ naar XML-objecten. LINQ naar XML biedt een eenvoudig objectmodel voor het maken en bewerken van XML, en dit model kan goed worden geïntegreerd met Language-Integrated Query (LINQ). Zie XElement voor meer informatie.

U kunt een Visual Basic-expressie insluiten in een letterlijke XML-indeling. Tijdens de runtime maakt uw toepassing een LINQ naar XML-object voor elke letterlijke waarde, waarin de waarden van de ingesloten expressies worden opgenomen. Hiermee kunt u dynamische inhoud opgeven in een letterlijke XML-waarde. Zie Ingesloten expressies in XML voor meer informatie.

Zie xml-letterlijke en XML 1.0-specificatie voor meer informatie over de verschillen tussen de letterlijke XML-syntaxis en de XML 1.0-syntaxis.

Eenvoudige letterlijke tekens

U kunt een LINQ naar XML-object maken in uw Visual Basic-code door geldige XML te typen of te plakken. Een LETTERLIJK XML-element retourneert een XElement object. Zie letterlijke en XML-letterlijke XML-elementen en de XML 1.0-specificatie voor meer informatie. In het volgende voorbeeld wordt een XML-element gemaakt met verschillende onderliggende elementen.

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

U kunt een XML-document maken door een letterlijke XML-bestand te starten met <?xml version="1.0"?>, zoals wordt weergegeven in het volgende voorbeeld. Een LETTERLIJK XML-document retourneert een XDocument object. Zie LETTERLIJK XML-document voor meer informatie.

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>

Notitie

De letterlijke XML-syntaxis in Visual Basic is niet identiek aan de syntaxis in de XML 1.0-specificatie. Zie XML Literals en de XML 1.0-specificatie voor meer informatie.

Regelvervolging

Een letterlijke XML-waarde kan meerdere regels omvatten zonder regelvervolgtekens te gebruiken (de reeks spatie-onderstrepingstekens). Dit maakt het gemakkelijker om letterlijke XML-waarden in code te vergelijken met XML-documenten.

De compiler behandelt regelvervolgtekens als onderdeel van een letterlijke XML-code. Daarom moet u de reeks spatie-onderstrepingsteken-enter alleen gebruiken wanneer deze deel uitmaakt van de LINQ naar het XML-object.

U hebt echter regelvervolgtekens nodig als u een expressie met meerdere regels in een ingesloten expressie hebt. Zie Ingesloten expressies in XML voor meer informatie.

Query's insluiten in LETTERLIJKE XML-tekens

U kunt een query gebruiken in een ingesloten expressie. Wanneer u dit doet, worden de elementen die door de query worden geretourneerd, toegevoegd aan het XML-element. Hiermee kunt u dynamische inhoud, zoals het resultaat van de query van een gebruiker, toevoegen aan een letterlijke XML-indeling.

In de volgende code wordt bijvoorbeeld een ingesloten query gebruikt om XML-elementen te maken van de leden van de phoneNumbers2 matrix en deze elementen vervolgens toe te voegen als onderliggende elementen van contact2.

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

Hoe de compiler objecten maakt op basis van XML-letterlijke tekens

De Visual Basic-compiler vertaalt XML-letterlijke tekens in aanroepen naar de equivalente LINQ naar XML-constructors om de LINQ naar het XML-object op te bouwen. De Visual Basic-compiler vertaalt bijvoorbeeld het volgende codevoorbeeld in een aanroep naar de constructor voor de XProcessingInstruction XML-versie-instructie, aanroepen naar de XElement constructor voor de <contact>, <name>en <phone> elementen en aanroepen naar de XAttribute constructor voor het type kenmerk. Gezien de kenmerken in het volgende voorbeeld, roept de Visual Basic-compiler de XAttribute(XName, Object) constructor twee keer aan. De eerste geeft de waarde type voor de name parameter en de waarde home voor de value parameter door. De tweede geeft ook de waarde type voor de name parameter door, maar de waarde work voor de 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>

Zie ook