Littéral d'élément XML
Mise à jour : novembre 2007
Littéral qui représente un objet XElement.
<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>
Éléments
<
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 :
Texte littéral. Consultez Nom des attributs et des éléments XML déclarés.
Expression incorporée, sous la forme <%=eNameExp%>. Le type d'eNameExp doit être String ou un type implicitement convertible en XName.
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 :
Texte littéral. Consultez Nom des attributs et des éléments XML déclarés.
Expression incorporée, sous la forme <%= aNameExp %>. Le type d'aNameExp doit être String ou un type implicitement convertible en XName.
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 :
Texte littéral. Tout l'espace blanc de elementContents devient significatif si du texte littéral est présent.
Expression incorporée, sous la forme <%= contentExp %>.
Littéral d'élément XML.
Littéral de commentaire XML. Consultez Littéraux de commentaires XML.
Littéral d'instruction de traitement XML. Consultez Littéral d'instruction de traitement XML.
Littéral XML CDATA. Consultez Littéral CDATA XML.
</[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.
Remarque : |
---|
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.
Le compilateur Visual Basic convertit le littéral d'élément XML en appels au constructeur XElement et, s'il est requis, au constructeur XAttribute.
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 et type .NET).
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 As String = "book"
Dim attributeName1 As String = "year"
Dim attributeValue1 As Integer = 1999
Dim attributeName2 As String = "title"
Dim attributeValue2 As String = "My Book"
Dim book As XElement = _
<<%= elementType %>
isbn="1234"
<%= attributeName1 %>=<%= attributeValue1 %>
<%= New XAttribute(attributeName2, attributeValue2) %>
/>
Console.WriteLine(book)
Ce code affiche le texte suivant :
<book isbn="1234" 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
Concepts
Nom des attributs et des éléments XML déclarés
Expressions incorporées en XML
Référence
Imports, instruction (espace de noms et type .NET)