Sdílet prostřednictvím


Vložené výrazy v XML (Visual Basic)

Vložené výrazy umožňují vytvářet literály XML obsahující výrazy, které se vyhodnocují za běhu. Syntaxe vloženého výrazu je <%= expression %>stejná jako syntaxe použitá v ASP.NET.

Můžete například vytvořit literál elementu XML, který kombinuje vložené výrazy s obsahem literálového textu.

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>

Pokud isbnNumber obsahuje celé číslo 12345 a modifiedDate obsahuje datum 3.5.2006, při spuštění tohoto kódu je hodnota book :

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

Umístění a ověření vloženého výrazu

Vložené výrazy se můžou zobrazovat pouze v určitých umístěních v rámci výrazů literálů XML. Umístění výrazu určuje, které typy výrazu mohou vrátit a jak Nothing se zpracovává. Následující tabulka popisuje povolená umístění a typy vložených výrazů.

Umístění v literálu Typ výrazu Zpracování Nothing
Název elementu XML XName Chyba
Obsah elementu XML Object nebo pole Object Ignorováno
Název atributu elementu XML XName Chyba, pokud není hodnota atributu také Nothing
Hodnota atributu elementu XML Object Deklarace atributu byla ignorována.
Atribut elementu XML XAttribute nebo kolekci XAttribute Ignorováno
Kořenový element dokumentu XML XElement nebo kolekci jednoho XElement objektu a libovolného XProcessingInstruction počtu a XComment objektů Ignorováno
  • Příklad vloženého výrazu v názvu elementu XML:

    Dim elementName As String = "contact"
    Dim contact1 As XElement = <<%= elementName %>/>
    
  • Příklad vloženého výrazu v obsahu elementu XML:

    Dim contactName As String = "Patrick Hines"
    Dim contact2 As XElement = 
      <contact><%= contactName %></contact>
    
  • Příklad vloženého výrazu v názvu atributu elementu XML:

    Dim phoneType As String = "home"
    Dim contact3 As XElement = 
      <contact <%= phoneType %>="206-555-0144"/>
    
  • Příklad vloženého výrazu v hodnotě atributu elementu XML:

    Dim phoneNumber As String = "206-555-0144"
    Dim contact4 As XElement = 
      <contact home=<%= phoneNumber %>/>
    
  • Příklad vloženého výrazu v atributu elementu XML:

    Dim phoneAttribute As XAttribute = 
      New XAttribute(XName.Get(phoneType), phoneNumber)
    Dim contact5 As XElement = 
      <contact <%= phoneAttribute %>/>
    
  • Příklad vloženého výrazu v kořenovém elementu dokumentu XML:

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

Pokud povolíte Option Strict, kompilátor zkontroluje, že typ každého vloženého výrazu se rozšíří na požadovaný typ. Jedinou výjimkou je kořenový prvek dokumentu XML, který se ověřuje při spuštění kódu. Pokud zkompilujete bez Option Strict, můžete vložit výrazy typu Object a jejich typ se ověří za běhu.

V umístěních, kde je obsah volitelný, se vložené výrazy, které obsahují Nothing , ignorují. To znamená, že před použitím literálu XML nemusíte kontrolovat obsah elementu, hodnoty atributů a elementy Nothing pole. Požadované hodnoty, například názvy elementů a atributů, nemohou být Nothing.

Další informace o použití vloženého výrazu v určitém typu literálu naleznete v tématu Xml Document Literal, XML Element Literal.

Pravidla oborů

Kompilátor převede každý literál XML na volání konstruktoru pro příslušný typ literálu. Literální obsah a vložené výrazy v literálu XML jsou předány jako argumenty konstruktoru. To znamená, že všechny programovací prvky jazyka Visual Basic dostupné pro literál XML jsou také k dispozici pro vložené výrazy.

V literálu XML můžete získat přístup k předponám oboru názvů XML deklarovaným pomocí Imports příkazu. Pomocí atributu můžete deklarovat novou předponu oboru názvů XML nebo stínovat existující předponu oboru názvů XML v elementu xmlns . Nový obor názvů je k dispozici podřízeným uzlům tohoto elementu, ale nikoli literálům XML ve vložených výrazech.

Poznámka:

Když deklarujete předponu oboru názvů XML pomocí atributu xmlns oboru názvů, hodnota atributu musí být konstantní řetězec. V tomto ohledu se použití atributu xmlns podobá použití Imports příkazu k deklaraci oboru názvů XML. Vložený výraz nelze použít k zadání hodnoty oboru názvů XML.

Viz také