Delen via


Ingesloten expressies in XML (Visual Basic)

Met ingesloten expressies kunt u LETTERLIJKE XML-waarden maken die expressies bevatten die tijdens runtime worden geëvalueerd. De syntaxis voor een ingesloten expressie is <%=expression%>, die gelijk is aan de syntaxis die wordt gebruikt in ASP.NET.

U kunt bijvoorbeeld een letterlijke XML-element maken, waarbij ingesloten expressies worden gecombineerd met letterlijke tekstinhoud.

Dim isbnNumber As String = "12345"
Dim modifiedDate As String = "3/5/2006"
Dim book As XElement = 
    <book category="fiction" isbn=<%= isbnNumber %>>
        <modifiedDate><%= modifiedDate %></modifiedDate>
    </book>

Als isbnNumber het gehele getal 12345 bevat en modifiedDate de datum 3-5-2006 bevat, is de waarde van book :

<book category="fiction" isbn="12345">  
  <modifiedDate>3/5/2006</modifiedDate>  
</book>  

Locatie en validatie van ingesloten expressie

Ingesloten expressies kunnen alleen worden weergegeven op bepaalde locaties binnen letterlijke XML-expressies. De locatie van de expressie bepaalt welke typen de expressie kan retourneren en hoe Nothing deze wordt verwerkt. In de volgende tabel worden de toegestane locaties en typen ingesloten expressies beschreven.

Locatie in letterlijke locatie Type expressie Verwerking van Nothing
Xml-elementnaam XName Error
Inhoud van XML-element Object of matrix van Object Genegeerd
Kenmerknaam van XML-element XName Fout, tenzij de kenmerkwaarde ook is Nothing
Waarde van het XML-elementkenmerk Object Kenmerkdeclaratie genegeerd
KENMERK VAN XML-element XAttribute of een verzameling van XAttribute Genegeerd
Hoofdelement van XML-document XElement of een verzameling van één XElement object en een willekeurig aantal XProcessingInstruction en XComment objecten Genegeerd
  • Voorbeeld van een ingesloten expressie in een XML-elementnaam:

    Dim elementName As String = "contact"
    Dim contact1 As XElement = <<%= elementName %>/>
    
  • Voorbeeld van een ingesloten expressie in de inhoud van een XML-element:

    Dim contactName As String = "Patrick Hines"
    Dim contact2 As XElement = 
      <contact><%= contactName %></contact>
    
  • Voorbeeld van een ingesloten expressie in de kenmerknaam van een XML-element:

    Dim phoneType As String = "home"
    Dim contact3 As XElement = 
      <contact <%= phoneType %>="206-555-0144"/>
    
  • Voorbeeld van een ingesloten expressie in een kenmerkwaarde van een XML-element:

    Dim phoneNumber As String = "206-555-0144"
    Dim contact4 As XElement = 
      <contact home=<%= phoneNumber %>/>
    
  • Voorbeeld van een ingesloten expressie in een XML-elementkenmerk:

    Dim phoneAttribute As XAttribute = 
      New XAttribute(XName.Get(phoneType), phoneNumber)
    Dim contact5 As XElement = 
      <contact <%= phoneAttribute %>/>
    
  • Voorbeeld van een ingesloten expressie in een XML-documenthoofdelement:

    Dim document As XDocument = 
      <?xml version="1.0"?><%= contact1 %>
    

Als u dit inschakelt Option Strict, controleert de compiler of het type van elke ingesloten expressie breder wordt naar het vereiste type. De enige uitzondering hierop is voor het hoofdelement van een XML-document, dat wordt geverifieerd wanneer de code wordt uitgevoerd. Als u zonder compileert Option Strict, kunt u expressies van het type Object insluiten en het bijbehorende type tijdens runtime wordt gecontroleerd.

Op locaties waar inhoud optioneel is, worden ingesloten expressies die bevatten Nothing genegeerd. Dit betekent dat u niet hoeft te controleren of elementinhoud, kenmerkwaarden en matrixelementen niet Nothing vóór u een LETTERLIJKE XML-waarde gebruikt. Vereiste waarden, zoals element- en kenmerknamen, kunnen niet zijn Nothing.

Zie voor meer informatie over het gebruik van een ingesloten expressie in een bepaald type letterlijke tekst xml-document, XML-element letterlijk.

Bereikregels

De compiler converteert elke LETTERLIJKE XML-code naar een constructor-aanroep voor het juiste letterlijke type. De letterlijke inhoud en ingesloten expressies in een XML-letterlijke tekst worden doorgegeven als argumenten aan de constructor. Dit betekent dat alle Visual Basic-programmeerelementen die beschikbaar zijn voor een letterlijke XML-waarde, ook beschikbaar zijn voor de ingesloten expressies.

Binnen een letterlijke XML-indeling hebt u toegang tot de voorvoegsels van de XML-naamruimte die met de Imports instructie zijn gedeclareerd. U kunt een nieuw xml-naamruimtevoorvoegsel declareren of een bestaand XML-naamruimtevoorvoegsel schaduwen in een element met behulp van het xmlns kenmerk. De nieuwe naamruimte is beschikbaar voor de onderliggende knooppunten van dat element, maar niet voor LETTERLIJKE XML-gegevens in ingesloten expressies.

Notitie

Wanneer u een XML-naamruimtevoorvoegsel declareert met behulp van het xmlns kenmerk naamruimte, moet de kenmerkwaarde een constante tekenreeks zijn. In dit opzicht is het gebruik van het xmlns kenmerk vergelijkbaar met het gebruik van de Imports instructie om een XML-naamruimte te declareren. U kunt geen ingesloten expressie gebruiken om de waarde van de XML-naamruimte op te geven.

Zie ook