Vue d'ensemble des littéraux XML (Visual Basic)

Un littéral XML vous permet d’incorporer du code XML directement dans votre code Visual Basic. La syntaxe littérale XML représente des objets LINQ to XML, et elle est similaire à la syntaxe XML 1.0. Cela facilite la création d’éléments, de documents et de fragments XML par programmation, car votre code a la même structure que le code XML final.

Visual Basic compile les littéraux XML dans des objets LINQ to XML. LINQ to XML fournit un modèle objet simple pour créer et manipuler du code XML, et ce modèle s’intègre bien à Language-Integrated Query (LINQ). Pour plus d'informations, consultez XElement.

Vous pouvez incorporer une expression Visual Basic dans un littéral XML. Au moment de l’exécution, votre application crée un objet LINQ to XML pour chaque littéral, incorporant les valeurs des expressions incorporées. Cela vous permet de spécifier du contenu dynamique à l’intérieur d’un littéral XML. Pour plus d’informations, consultez Expressions incorporées dans XML.

Pour plus d’informations sur les différences entre la syntaxe littérale XML et la syntaxe XML 1.0, consultez Littéraux XML et la spécification XML 1.0.

Littéraux simples

Vous pouvez créer un objet LINQ to XML dans votre code Visual Basic en tapant ou en collant dans du code XML valide. Un littéral d’élément XML retourne un objet XElement. Pour plus d’informations, consultez Littéral d’élément XML et Littéraux XML et la spécification XML 1.0. L’exemple suivant crée un élément XML qui a plusieurs éléments enfants.

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

Vous pouvez créer un document XML en démarrant un littéral XML avec <?xml version="1.0"?>, comme illustré dans l’exemple suivant. Un littéral d’élément XML retourne un objet XDocument. Pour plus d’informations, consultez Littéral de document XML.

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>

Notes

La syntaxe littérale XML dans Visual Basic n’est pas identique à celle de la spécification XML 1.0. Pour plus d’informations, consultez Littéraux XML et la spécification XML 1.0.

Continuation de ligne

Un littéral XML peut s’étendre sur plusieurs lignes sans utiliser de caractères de continuation de ligne (la séquence espace-trait de soulignement-entrée). Cela facilite la comparaison des littéraux XML dans le code avec des documents XML.

Le compilateur traite les caractères de continuation de ligne dans le cadre d’un littéral XML. Par conséquent, vous devez utiliser la séquence espace-trait de soulignement-entrée uniquement lorsqu’elle appartient à l’objet LINQ to XML.

Toutefois, vous avez besoin de caractères de continuation de ligne si vous avez une expression multiligne dans une expression incorporée. Pour plus d’informations, consultez Expressions incorporées dans XML.

Incorporation de requêtes dans des littéraux XML

Vous pouvez utiliser une requête LINQ dans une expression incorporée. Dans ce cas, les éléments retournés par la requête sont ajoutés à l’élément XML. Cela vous permet d’ajouter du contenu dynamique, tel que le résultat de la requête d’un utilisateur, à un littéral XML.

Par exemple, le code suivant utilise une requête incorporée pour créer des éléments XML à partir des membres du tableau phoneNumbers2, puis ajouter ces éléments en tant qu’enfants de 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

Comment le compilateur crée des objets à partir de littéraux XML

Le compilateur Visual Basic traduit les littéraux XML en appels aux constructeurs LINQ to XML équivalents pour générer l’objet LINQ to XML. Par exemple, le compilateur Visual Basic traduit l’exemple de code suivant en un appel au constructeur XProcessingInstruction pour l’instruction de version XML, des appels au constructeur XElement pour les éléments <contact>, <name>et <phone> et des appels au constructeur XAttribute pour l’attribut type. Plus précisément, étant donné les attributs de l’exemple suivant, le compilateur Visual Basic appelle le constructeur XAttribute(XName, Object) deux fois. Le premier transmet la valeur type du paramètre name et la valeur home du paramètre value. La seconde transmet également la valeur type du paramètrename, mais la valeur work du paramètre 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>

Voir aussi