Littéral d'élément XML (Visual Basic)

Littéral qui représente un objet XElement.

Syntaxe

<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>

Éléments

  • <

    Obligatoire. Ouvre la balise d’élément de départ.

  • name

    Obligatoire. Nom de l'élément. Le format est l’un des suivants :

    • Texte littéral du nom de l’élément, du formulaire [ePrefix:]eName, où :

      Élément Description
      ePrefix facultatif. Préfixe d’espace de noms XML pour l’élément. Doit être un espace de noms XML global défini avec une instruction Imports dans le fichier ou au niveau du projet, ou un espace de noms XML local défini dans cet élément ou un élément parent.
      eName Obligatoire. Nom de l'élément. Le format est l’un des suivants :

      - Texte littéral. Consultez Noms des éléments et attributs XML déclarés.
      - Expression incorporée du formulaire <%= eNameExp %>. Le type de eNameExp doit être String ou un type implicitement convertible en XName.
    • Expression incorporée du formulaire <%= nameExp %>. Le type de nameExp doit être String ou un type implicitement convertible en XName. Une expression incorporée n’est pas autorisée dans la balise fermante d’un élément.

  • attributeList

    Optionnel. Liste des attributs déclarés dans le littéral.

    attribute [ attribute ... ]

    Chaque attribute a l’une des syntaxes suivantes :

    • Affectation d’attributs, du formulaire [aPrefix:]aName=aValue, où :

      Élément Description
      aPrefix facultatif. Préfixe d’espace de noms XML pour l’attribut. Doit être un espace de noms XML global défini avec une instruction Imports, ou un espace de noms XML local défini dans cet élément ou un élément parent.
      aName Obligatoire. Nom de l'attribut. Le format est l’un des suivants :

      - Texte littéral. Consultez Noms des éléments et attributs XML déclarés.
      - Expression incorporée du formulaire <%= aNameExp %>. Le type de aNameExp doit être String ou un type implicitement convertible en XName.
      aValue Optionnel. Valeur de l’attribut. Le format est l’un des suivants :

      - Texte littéral, placé entre guillemets.
      - Expression incorporée du formulaire <%= aValueExp %>. Tout type est autorisé.
    • Expression incorporée du formulaire <%= aExp %>.

  • />

    Optionnel. Indique que l’élément est un élément vide, sans contenu.

  • >

    Obligatoire. Termine la balise d’élément début ou vide.

  • elementContents

    Optionnel. Contenu de l’élément.

    content [ content ... ]

    Chaque content peut être :

  • </[name]>

    Optionnel. Représente la balise de fermeture de l’élément. Le paramètre name facultatif n’est pas autorisé lorsqu’il s’agit du résultat d’une expression incorporée.

Valeur renvoyée

Objet XElement.

Notes

Vous pouvez utiliser la syntaxe littérale de l’élément XML pour créer des objets XElement dans votre code.

Notes

Un littéral XML peut s’étendre sur plusieurs lignes sans utiliser de caractères de continuation de ligne. Cette fonctionnalité vous permet de copier du contenu à partir d’un document XML et de le coller directement dans un programme Visual Basic.

Les expressions incorporées du formulaire <%= exp %> vous permettent d’ajouter des informations dynamiques à un littéral d’élément XML. Pour plus d’informations, consultez Expressions incorporées dans XML.

Le compilateur Visual Basic convertit le littéral d’élément XML en appels au constructeur XElement et, si nécessaire, au constructeur XAttribute .

Espaces de noms XML

Les préfixes d’espace de noms XML sont utiles lorsque vous devez créer des littéraux XML avec des éléments du même espace de noms plusieurs fois dans le code. Vous pouvez utiliser des préfixes d’espace de noms XML globaux, que vous définissez à l’aide de l’instruction Imports ou des préfixes locaux, que vous définissez à l’aide de la syntaxe d’attribut xmlns:xmlPrefix="xmlNamespace". Pour plus d’informations, consultez Imports, instruction (espace de noms XML).

Conformément aux règles d’étendue pour les espaces de noms XML, les préfixes locaux sont prioritaires sur les préfixes globaux. Toutefois, si un littéral XML définit un espace de noms XML, cet espace de noms n’est pas disponible pour les expressions qui apparaissent dans une expression incorporée. L’expression incorporée peut accéder uniquement à l’espace de noms XML global.

Le compilateur Visual Basic convertit chaque espace de noms XML global utilisé par un littéral XML en une définition d’espace de noms local dans le code généré. Les espaces de noms XML globaux qui ne sont pas utilisés n’apparaissent pas dans le code généré.

Exemple 1

L’exemple suivant montre comment créer un élément XML simple qui a deux éléments vides imbriqués.

Dim test1 As XElement = 
<outer>
    <inner1></inner1>
    <inner2/>
</outer>

Console.WriteLine(test1)

L’exemple affiche le texte suivant. Notez que le littéral conserve la structure des éléments vides.

<outer>
  <inner1></inner1>
  <inner2 />
</outer>

Exemple 2

L’exemple suivant montre comment utiliser des expressions incorporées pour nommer un élément et créer des attributs.

Dim elementType = "book"
Dim authorName = "My Author"
Dim attributeName1 = "year"
Dim attributeValue1 = 1999
Dim attributeName2 = "title"
Dim attributeValue2 = "My Book"

Dim book As XElement = 
<<%= elementType %>
    isbn="1234"
    author=<%= authorName %>
    <%= attributeName1 %>=<%= attributeValue1 %>
    <%= New XAttribute(attributeName2, attributeValue2) %>
/>

Console.WriteLine(book)

Ce code affiche le texte suivant :

<book isbn="1234" author="My Author" year="1999" title="My Book" />

Exemple 3

L'exemple suivant déclare ns en tant que préfixe d'espace de noms XML. Il utilise ensuite le préfixe de l’espace de noms pour créer un littéral XML et affiche le formulaire final de l’élément.

' Place Imports statements at the top of your program.  
Imports <xmlns:ns="http://SomeNamespace">

Class TestClass1

    Shared Sub TestPrefix()
        ' Create test using a global XML namespace prefix. 
        Dim inner2 = <ns:inner2/>

        Dim test = 
        <ns:outer>
            <ns:middle xmlns:ns="http://NewNamespace">
                <ns:inner1/>
                <%= inner2 %>
            </ns:middle>
        </ns:outer>

        ' Display test to see its final form. 
        Console.WriteLine(test)
    End Sub

End Class

Ce code affiche le texte suivant :

<ns:outer xmlns:ns="http://SomeNamespace">
  <ns:middle xmlns:ns="http://NewNamespace">
    <ns:inner1 />
    <inner2 xmlns="http://SomeNamespace" />
  </ns:middle>
</ns:outer>

Notez que le compilateur a converti le préfixe de l’espace de noms XML global en définition de préfixe pour l’espace de noms XML. L’élément <ns:middle> redéfinit le préfixe d’espace de noms XML pour l’élément <ns:inner1>. Toutefois, l’élément <ns:inner2> utilise l’espace de noms défini par l’instruction Imports.

Voir aussi