Condividi tramite


Panoramica dei valori letterali XML (Visual Basic)

Un valore letterale XML consente di incorporare direttamente XML nel codice Visual Basic. La sintassi dei valori letterali XML rappresenta gli oggetti LINQ to XML ed è simile alla sintassi XML 1.0. In questo modo è più semplice creare elementi e documenti XML a livello di codice perché il codice ha la stessa struttura del codice XML finale.

Visual Basic compila valori letterali XML in oggetti LINQ to XML. LINQ to XML fornisce un modello a oggetti semplice per la creazione e la modifica di XML e questo modello si integra bene con Language-Integrated Query (LINQ). Per altre informazioni, vedere XElement.

È possibile incorporare un'espressione Visual Basic in un valore letterale XML. In fase di esecuzione, l'applicazione crea un oggetto LINQ to XML per ogni valore letterale, incorporando i valori delle espressioni incorporate. In questo modo è possibile specificare contenuto dinamico all'interno di un valore letterale XML. Per altre informazioni, vedere Espressioni incorporate in XML.

Per altre informazioni sulle differenze tra la sintassi dei valori letterali XML e la sintassi XML 1.0, vedere Valori letterali XML e specifica XML 1.0.

Valori letterali semplici

È possibile creare un oggetto LINQ to XML nel codice Visual Basic digitando o incollando in xml valido. Un valore letterale di un elemento XML restituisce un oggetto XElement. Per ulteriori informazioni, vedere Elemento letterale XML e Valori letterali XML e la specifica XML 1.0. Nell'esempio seguente viene creato un elemento XML con diversi elementi figlio.

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

È possibile creare un documento XML iniziando con un elemento XML <?xml version="1.0"?>, come illustrato nell'esempio seguente. Un letterale di documento XML restituisce un oggetto XDocument. Per ulteriori informazioni, vedere Documento XML letterale.

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>

Annotazioni

La sintassi dei valori letterali XML in Visual Basic non è identica alla sintassi nella specifica XML 1.0. Per altre informazioni, vedere Valori letterali XML e specifica XML 1.0.

Continuazione di riga

Un valore letterale XML può estendersi su più righe senza utilizzare caratteri di continuazione di riga (la sequenza spazio-underscore-invio). In questo modo è più semplice confrontare i valori letterali XML nel codice con i documenti XML.

Il compilatore considera i caratteri di continuazione di riga come parte di un valore letterale XML. Pertanto, è consigliabile utilizzare la sequenza di immissione di caratteri di sottolineatura spaziatrice solo quando appartiene all'oggetto LINQ to XML.

Tuttavia, sono necessari caratteri di continuazione di riga se si dispone di un'espressione multilinea all'interno di un'espressione incorporata. Per altre informazioni, vedere Espressioni incorporate in XML.

Inserimento di query in valori letterali XML

È possibile usare una query in un'espressione incorporata. Quando si esegue questa operazione, gli elementi restituiti dalla query vengono aggiunti all'elemento XML. In questo modo è possibile aggiungere contenuto dinamico, ad esempio il risultato della query di un utente, a un valore letterale XML.

Ad esempio, il codice seguente usa una query incorporata per creare elementi XML dai membri della phoneNumbers2 matrice e quindi aggiungere tali elementi come elementi figlio di 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

Come il compilatore crea oggetti da valori letterali XML

Il compilatore Visual Basic converte i valori letterali XML in chiamate ai costruttori LINQ to XML equivalenti per compilare l'oggetto LINQ to XML. Ad esempio, il compilatore Visual Basic trasla l'esempio di codice seguente in una chiamata al XProcessingInstruction costruttore per l'istruzione della versione XML, chiama al XElement costruttore per gli <contact>elementi , <name>e <phone> e chiama il XAttribute costruttore per l'attributo type . In particolare, dato gli attributi nell'esempio seguente, il compilatore Visual Basic chiamerà il XAttribute(XName, Object) costruttore due volte. Il primo passerà il valore type per il name parametro e il valore home per il value parametro. Il secondo passerà anche il valore type per il name parametro , ma il valore work per il value parametro .

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>

Vedere anche