Partager via


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 les objets LINQ to XML, et elle est similaire à la syntaxe XML 1.0. Cela facilite la création d’éléments ET de documents XML par programmation, car votre code a la même structure que le code XML final.

Visual Basic compile des littéraux XML en objets LINQ to XML. LINQ to XML fournit un modèle objet simple pour la création et la manipulation de XML, et ce modèle s’intègre bien avec 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 Les 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 XElement objet. Pour plus d’informations, consultez Littéral d’élément XML et Littéraux XML et 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 de document XML retourne un XDocument objet. 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>

Remarque

La syntaxe littérale XML dans Visual Basic n’est pas identique à la syntaxe de la spécification XML 1.0. Pour plus d’informations, consultez Littéraux XML et 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 (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 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 dans une expression incorporée. Lorsque vous effectuez cette opération, 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 phoneNumbers2 tableau, 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 XProcessingInstruction constructeur pour l’instruction de version XML, appelle le constructeur pour le XElement<contact>constructeur <name>, et <phone> les éléments, et appelle le constructeur pour l’attribut typeXAttribute. Plus précisément, étant donné les attributs de l’exemple suivant, le compilateur Visual Basic appelle le XAttribute(XName, Object) constructeur deux fois. La première passe la valeur type du name paramètre et la valeur home du value paramètre. La deuxième passe également la valeur type du name paramètre, mais la valeur work du value paramètre.

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