Como: Criar um documento com namespaces (LINQ te o XML) (Visual Basic)
Este tópico mostra como criar um documento com namespaces no Visual Basic.
É possível usar Visual Basic para criar documentos com namespaces usando as técnicas descritas em Como criar um documento com namespaces (C#) (LINQ to XML). No entanto, é mais conveniente usar declarações globais do Visual Basic.
Ao usar literais XML no Visual Basic, os usuários podem definir um namespace XML global padrão. Este namespace é o namespace padrão para literais XML e propriedades XML. O namespace XML padrão pode ser definida no nível de projeto ou nível de arquivo. Se for definida em nível de arquivo, substitui o namespace padrão no nível do projeto.
Você também pode definir namespaces, e especifica os prefixos de namespace para esses namespaces.
Você define dois namespaces padrão e namespaces com um prefixo usando a palavra-chave Imports .
Para obter mais informações, consulte Introdução aos literais de XML no Visual Basic.
Observe que o namespace XML padrão se aplica somente aos elementos e não a atributos. Atributos são sempre por padrão em qualquer namespace. No entanto, você pode usar um prefixo de namespace para colocar um atributo em um namespace.
Exemplo
Este exemplo cria um documento que contém um namespace.
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
Este exemplo gera a seguinte saída:
<aw:Root xmlns:aw="https://www.adventure-works.com">
<aw:Child aw:Att="attvalue" />
</aw:Root>
Este exemplo cria um documento que contém dois namespaces, uma que é o namespace padrão.
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
Este exemplo gera a seguinte saída:
<Root xmlns:fc="www.fourthcoffee.com" xmlns="https://www.adventure-works.com">
<Child Att="attvalue" />
<fc:Child2>child2 content</fc:Child2>
</Root>
O exemplo a seguir cria um documento que contém vários namespaces, tanto com prefixos de namespace.
Quando serializar uma árvore XML, LINQ to XML emite-se declarações namespace como necessário para que cada elemento está no namespace designada.
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
Este exemplo gera a seguinte saída:
<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>