Partager via


Vue d'ensemble des littéraux XML

Mise à jour : novembre 2007

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

Visual Basic compile des 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 ; ce modèle s'intègre parfaitement à LINQ (Language Integrated Query). 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, en intégrant les valeurs des expressions incorporées. Cela vous permet de spécifier du contenu dynamique dans un littéral XML. Pour plus d'informations, consultez Expressions incorporées en XML.

Pour plus d'informations sur les différences entre la syntaxe de littéral XML et la syntaxe XML 1.0, consultez Littéraux XML et 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 collant 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 spécification XML 1.0. L'exemple suivant crée un élément XML possédant 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 commençant un littéral XML par <?xml version="1.0"?>, comme indiqué dans l'exemple suivant. Un littéral de document 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>
Remarque :

La syntaxe de littéral XML de 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 couvrir plusieurs lignes sans utiliser des caractères de continuation de ligne (la séquence espace-trait de soulignement-entrée). Cela facilite la comparaison des littéraux XML du code avec les documents XML.

Le compilateur traite les caractères de continuation de ligne en tant que partie 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 en XML.

Incorporation de requêtes dans les littéraux XML

Vous pouvez utiliser une requête 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 ajoute ces éléments comme 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 des littéraux XML

Le compilateur Visual Basic traduit des littéraux XML en appels aux constructeurs LINQ to XML équivalents pour développer l'objet LINQ to XML. Par exemple, le compilateur Visual Basic traduira l'exemple de code suivant en appel au constructeur XProcessingInstruction pour l'instruction de version XML, en appels au constructeur XElement pour les éléments <contact>, <name>et <phone> et en appels au constructeur XAttribute pour l'attribut type. Plus précisément, étant donné les attributs dans l'exemple suivant, le compilateur Visual Basic appellera deux fois le constructeur XAttribute(XName, Object). Les premiers passeront la valeur type pour le paramètre name et la valeur home pour le paramètre value. Le deuxième passera également la valeur type pour le paramètre name, mais la valeur work pour le 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

Concepts

Expressions incorporées en XML

Référence

Littéral de document XML

Littéral d'élément XML

XElement

Autres ressources

Création de code XML dans Visual Basic

Littéraux XML