Cenni preliminari sui valori letterali XML (Visual Basic)

Un valore letterale XML consente di incorporare direttamente XML nel codice Visual Basic. La sintassi del valore letterale XML rappresenta gli oggetti LINQ to XML ed è simile alla sintassi XML 1.0. In questo modo viene semplificata la creazione a livello di codice di elementi e documenti XML perché il codice ha la stessa struttura dell'XML finale.

Visual Basic compila valori letterali XML in oggetti LINQ to XML. LINQ to XML fornisce un semplice modello a oggetti per creare e modificare l'XML e questo modello si integra bene con LINQ (Language-Integrated Query). Per ulteriori 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, includendo i valori delle espressioni incorporate. Questo consente di specificare contenuto dinamico in un valore letterale XML. Per ulteriori informazioni, vedere Espressioni incorporate in XML (Visual Basic).

Per ulteriori 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 (Visual Basic).

Valori letterali semplici

È possibile creare un oggetto LINQ to XML nel codice di Visual Basic digitando o incollando XML valido. Un valore letterale di un elemento XML restituisce un oggetto XElement. Per ulteriori informazioni, vedere Valore letterale elemento XML (Visual Basic) e Valori letterali XML e specifica XML 1.0 (Visual Basic). Nell'esempio riportato di seguito viene creato un elemento XML con vari 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 un valore letterale XML con <?xml version="1.0"?>, come illustrato nell'esempio seguente. Un valore letterale del documento XML restituisce un oggetto XDocument. Per ulteriori informazioni, vedere Valore letterale di documento XML (Visual Basic).

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>

Nota

La sintassi del valore letterale XML in Visual Basic non è identica alla sintassi della specifica XML 1.0. Per ulteriori informazioni, vedere Valori letterali XML e specifica XML 1.0 (Visual Basic).

Continuazione di riga

Un valore letterale XML può occupare più righe senza utilizzare caratteri di continuazione di riga.(la sequenza di tasti spazio-carattere di sottolineatura-invio). Questo semplifica il confronto tra i valori letterali XML nel codice e i documenti XML.

Il compilatore tratta i di caratteri di continuazione di riga come parte di un valore letterale XML. Pertanto, è necessario utilizzare la sequenza spazio-carattere di sottolineatura-invio solo quando questa fa parte dell'oggetto LINQ to XML.

Tuttavia, i caratteri di continuazione di riga sono necessari se si crea un'espressione su più righe in un'espressione incorporata. Per ulteriori informazioni, vedere Espressioni incorporate in XML (Visual Basic).

Incorporare Query nei valori letterali XML

È possibile utilizzare una query in un'espressione incorporata. In questo caso, gli elementi restituiti dalla query vengono aggiunti all'elemento XML. In tal modo è possibile aggiungere contenuto dinamico, ad esempio il risultato di una query di un utente, a un valore letterale XML.

Ad esempio, nel codice seguente viene utilizzata una query incorporata per creare elementi XML dai membri della matrice phoneNumbers2 e quindi aggiungere tali elementi come elementi figli 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 dai valori letterali XML

Il compilatore Visual Basic traduce 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 tradurrà l'esempio di codice seguente in una chiamata al costruttore XProcessingInstruction per l'istruzione in versione XML, effettua la chiamata al costruttore XElement per gli elementi <contact>, <name> e <phone> e la chiamata al costruttore XAttribute per l'attributo type. In particolare, in base agli attributi dell'esempio seguente, il compilatore Visual Basic chiamerà due volte il costruttore XAttribute(XName, Object). Il primo passerà il valore type per il parametro name e il valore home per il parametro value. Il secondo passerà ancora il valore type per il parametro name ma il valore work per il parametro value.

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

Riferimenti

Valore letterale di documento XML (Visual Basic)

Valore letterale elemento XML (Visual Basic)

XElement

Concetti

Espressioni incorporate in XML (Visual Basic)

Altre risorse

Creazione di XML in Visual Basic

Valori letterali XML (Visual Basic)