Espressioni incorporate in XML (Visual Basic)

Le espressioni incorporate consentono di creare valori letterali XML che contengono espressioni calcolate in fase di esecuzione.La sintassi per un'espressione incorporata è <%= expression %>, che è la stessa sintassi utilizzata in ASP.NET.

Ad esempio, è possibile creare un valore letterale di un elemento XML combinando espressioni incorporate con contenuto di testo letterale.

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>

Se isbnNumber contiene il numero intero 12345 e modifiedDate contiene la data 3/5/2006, quando questo codice viene eseguito, il valore di book è:

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

Posizione e convalida delle espressioni incorporate

Le espressioni incorporate possono essere incluse solo in particolari posizioni all'interno di espressioni letterali XML.La posizione nell'espressione controlla quali tipi possono venire restituiti dall'espressione e come viene gestito Nothing.Nella tabella seguente vengono descritti le posizioni e i tipi di espressioni incorporate consentiti.

Posizione in un valore letterale

Tipo di espressione

Gestione di Nothing

Nome dell'elemento XML

XName

delle modifiche a..."

Contenuto dell'elemento XML

Object o matrice di Object

Ignorato

Nome di attributo dell'elemento XML

XName

Errore, a meno che anche il valore dell'attributo sia Nothing

Valore dell'attributo dell'elemento XML

Object

Dichiarazione di un attributo ignorata.

Attributo dell'elemento XML.

XAttribute o una raccolta di XAttribute

Ignorato

Elemento radice del documento XML

Oggetto XElement o una raccolta di un oggetto XElement e un numero arbitrario di oggetti XProcessingInstruction e oggetti XComment

Ignorato

  • Esempio di espressione incorporata in un nome dell'elemento XML:

    Dim elementName As String = "contact"
    Dim contact1 As XElement = <<%= elementName %>/>
    
  • Esempio di espressione incorporata nel contenuto dell'elemento XML:

    Dim contactName As String = "Patrick Hines"
    Dim contact2 As XElement = 
      <contact><%= contactName %></contact>
    
  • Esempio di espressione incorporata nel nome di attributo dell'elemento XML:

    Dim phoneType As String = "home"
    Dim contact3 As XElement = 
      <contact <%= phoneType %>="206-555-0144"/>
    
  • Esempio di espressione incorporata nel valore dell'attributo dell'elemento XML:

    Dim phoneNumber As String = "206-555-0144"
    Dim contact4 As XElement = 
      <contact home=<%= phoneNumber %>/>
    
  • Esempio di espressione incorporata in un attributo dell'elemento XML:

    Dim phoneAttribute As XAttribute = 
      New XAttribute(XName.Get(phoneType), phoneNumber)
    Dim contact5 As XElement = 
      <contact <%= phoneAttribute %>/>
    
  • Esempio di espressione incorporata nell'elemento radice del documento XML:

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

Se si abilita Option Strict, il compilatore controlla che il tipo di ogni espressione incorporata venga convertito al tipo più ampio richiesto.L'unica eccezione è per l'elemento radice di un documento XML, che viene verificato quando il codice è in esecuzione.Se si compila senza Option Strict, è possibile incorporare espressioni di tipo Object e il tipo viene verificato in fase di esecuzione.

Nelle posizioni dove il contenuto èi facoltativo, le espressioni incorporate che contengono Nothing vengono ignorate.Questo significa che non è necessario controllare che contenuto dell'elemento, i valori dell'attributo e gli elementi di una matrice non siano Nothing prima di utilizzare un valore letterale XML.I valori richiesti, ad esempio nomi dell'elemento e dell'attributo, non possono essere Nothing.

Per ulteriori informazioni sull'utilizzo di un'espressione incorporata in un particolare tipo di valore letterale, vedere Valore letterale di documento XML (Visual Basic), Valore letterale elemento XML (Visual Basic).

Regole di ambito

Il compilatore converte ogni valore letterale XML in una chiamata del costruttore per il tipo di valore letterale adatto.Il contenuto del valore letterale e le espressioni incorporate in un valore letterale XML vengono passati come argomenti al costruttore.Questi significa che tutti gli elementi di programmazione di Visual Basic disponibili per un valore letterale XML sono anche disponibili per le espressioni incorporate.

All'interno di un valore letterale XML, è possibile accedere ai prefissi dello spazio dei nomi XML dichiarati con l'istruzione Imports.È possibile dichiarare un nuovo prefisso dello spazio dei nomi XML, o nascondere un prefisso dello spazio dei nomi XML esistente, in un elemento utilizzando l'attributo xmlns.Il nuovo spazio dei nomi è disponibile per i nodi figlio di tale elemento, ma non per i valori letterali XML nelle espressioni incorporate.

[!NOTA]

Quando si dichiara un prefisso dello spazio dei nomi XML utilizzando l'attributo dello spazio dei nomi xmlns, il valore dell'attributo deve essere una stringa costante.In questo caso, l'utilizzo dell'attributo xmlns è simile all'utilizzo dell'istruzione Imports per dichiarare un spazio dei nomi XML.Non è possibile utilizzare un'espressione incorporata per specificare il valore dello spazio dei nomi XML.

Vedere anche

Riferimenti

Valore letterale di documento XML (Visual Basic)

Valore letterale elemento XML (Visual Basic)

Istruzione Option Strict

Istruzione Imports (tipo e spazio dei nomi .NET)

Concetti

Cenni preliminari sui valori letterali XML (Visual Basic)

Altre risorse

Creazione di XML in Visual Basic