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

Littéral qui représente un objet XElement.

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

Composants

Terme

Définition

<

Obligatoire. Ouvre la balise d'élément initiale.

name

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

  • Texte littéral du nom d'un élément, sous la forme [ePrefix:]eName, où :

Élément

Description

ePrefix

Facultatif. Préfixe d'espace de noms XML de 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 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 :

  • Expression incorporée, sous la forme <%= 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 de fermeture d'un élément.

attributeList

Facultatif. Liste d'attributs déclarée dans le littéral.

attribute [ attribute ... ]

Chaque attribute présente l'une des syntaxes suivantes :

  • Assignation d'attribut, sous la forme [aPrefix:]aName=aValue, où :

Élément

Description

aPrefix

Facultatif. Préfixe d'espace de noms XML de 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 :

aValue

Facultatif. Valeur de l'attribut. Le format est l'un des suivants :

  • Texte littéral, entre guillemets.

  • Expression incorporée, sous la forme <%= aValueExp %>. Tout type est autorisé.

  • Expression incorporée, sous la forme <%= aExp %>.

/>

Facultatif. Indique que l'élément est un élément vide, sans contenu.

>

Obligatoire. Termine la balise d'élément initiale ou vide.

elementContents

Facultatif. Contenu de l'élément.

content [ content ... ]

Chaque content peut être l'un des suivants :

</[name]>

Facultatif. Représente la balise de fermeture de l'élément. Le paramètre name facultatif n'est pas autorisé lorsqu'il est le résultat d'une expression incorporée.

Valeur de retour

Objet XElement.

Notes

Vous pouvez utiliser la syntaxe du littéral d'élément XML pour créer des objets XElement dans votre code.

Notes

Un littéral XML peut couvrir plusieurs lignes, sans utiliser de caractères de continuation de ligne.Cette fonctionnalité vous permet de copier le contenu 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 en XML (Visual Basic).

Le compilateur Visual Basic convertit le littéral d'élément XML en appels au constructeur #ctor et, s'il est requis, au constructeur #ctor.

Espaces de noms XML

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

Conformément aux règles de portée 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 se trouvant dans une expression incorporée. L'expression incorporée ne peut accéder qu'à l'espace de noms XML global.

Le compilateur Visual Basic convertit chaque espace de noms XML global utilisé par un littéral XML, dans une définition d'espace de noms locale 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

L'exemple suivant indique comment créer un élément XML simple, comportant deux éléments vides imbriqués.

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

Console.WriteLine(test1)

Cet exemple affiche le texte suivant. Remarquez que le littéral conserve la structure des éléments vides.

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

L'exemple suivant indique 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" />

L'exemple suivant déclare ns en tant que préfixe d'espace de noms XML. Il utilise alors 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>

Remarquez que le compilateur a converti le préfixe de l'espace de noms XML global en une 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

Référence

XElement

Littéraux de commentaires XML (Visual Basic)

Littéral CDATA XML (Visual Basic)

Imports, instruction (espace de noms XML)

Concepts

Nom des attributs et des éléments XML déclarés (Visual Basic)

Expressions incorporées en XML (Visual Basic)

Autres ressources

Littéraux XML (Visual Basic)

Création de code XML dans Visual Basic