Procédure : créer un document avec des espaces de noms (LINQ to XML) (Visual Basic)
Cette rubrique montre comment créer un document avec des espaces de noms dans Visual Basic.
Il est possible d'utiliser Visual Basic pour créer des documents avec des espaces de noms en utilisant les techniques décrites dans Procédure : créer un document avec des espaces de noms (C#) (LINQ to XML).Toutefois, il est plus commode d'utiliser des déclarations d'espaces de noms globaux en Visual Basic.
Lorsque vous utilisez des littéraux XML en Visual Basic, les utilisateurs peuvent définir un espace de noms XML global par défaut.Cet espace de noms est l'espace de noms par défaut pour les littéraux XML et les propriétés XML.L'espace de noms XML par défaut peut être défini au niveau projet ou au niveau fichier.S'il est défini au niveau fichier, il remplace l'espace de noms par défaut défini au niveau projet.
Vous pouvez également définir d'autres espaces de noms et spécifier les préfixes d'espaces de noms de ces espaces de noms.
Vous définissez les espaces de noms par défaut et les espaces de noms avec préfixe à l'aide du mot clé Imports.
Pour plus d'informations, consultez Introduction au littéraux XML en Visual Basic.
Notez que l'espace de noms XML par défaut s'applique uniquement aux éléments, et non aux attributs.Par défaut, les attributs ne sont jamais dans aucun espace de noms.Toutefois, vous pouvez utiliser un préfixe d'espace de noms pour placer un attribut dans un espace de noms.
Exemple
Cet exemple crée un document qui contient un espace de noms.
Imports <xmlns:aw="https://www.adventure-works.com">
Module Module1
Sub Main()
Dim root As XElement = _
<aw:Root>
<aw:Child aw:Att="attvalue"/>
</aw:Root>
Console.WriteLine(root)
End Sub
End Module
Cet exemple produit la sortie suivante :
<aw:Root xmlns:aw="https://www.adventure-works.com">
<aw:Child aw:Att="attvalue" />
</aw:Root>
Cet exemple crée un document qui contient deux espaces de noms, dont l'un est l'espace de noms par défaut.
Imports <xmlns="https://www.adventure-works.com">
Imports <xmlns:fc="www.fourthcoffee.com">
Module Module1
Sub Main()
Dim root As XElement = _
<Root>
<Child Att="attvalue"/>
<fc:Child2>child2 content</fc:Child2>
</Root>
Console.WriteLine(root)
End Sub
End Module
Cet exemple produit la sortie suivante :
<Root xmlns:fc="www.fourthcoffee.com" xmlns="https://www.adventure-works.com">
<Child Att="attvalue" />
<fc:Child2>child2 content</fc:Child2>
</Root>
L'exemple suivant crée un document qui contient plusieurs espaces de noms, tous deux avec des préfixes d'espaces de noms.
Lors de la sérialisation d'une arborescence XML, LINQ to XML émet des déclarations d'espaces de noms selon les besoins, de sorte que chaque élément soit dans son espace de noms désigné.
Imports <xmlns:aw="https://www.adventure-works.com">
Imports <xmlns:fc="www.fourthcoffee.com">
Module Module1
Sub Main()
Dim root As XElement = _
<aw:Root>
<fc:Child>
<aw:DifferentChild>other content</aw:DifferentChild>
</fc:Child>
<aw:Child2>c2 content</aw:Child2>
<fc:Child3>c3 content</fc:Child3>
</aw:Root>
Console.WriteLine(root)
End Sub
End Module
Cet exemple génère la sortie suivante :
<aw:Root xmlns:fc="www.fourthcoffee.com" xmlns:aw="https://www.adventure-works.com">
<fc:Child>
<aw:DifferentChild>other content</aw:DifferentChild>
</fc:Child>
<aw:Child2>c2 content</aw:Child2>
<fc:Child3>c3 content</fc:Child3>
</aw:Root>