Como criar um documento com namespaces no Visual Basic (LINQ to XML)

Este artigo mostra como criar um documento com namespaces no Visual Basic.

Ao usar literais XML no Visual Basic, os usuários podem definir um namespace XML padrão global. Esse namespace é o namespace padrão para literais XML e propriedades XML. O namespace XML padrão pode ser definido no nível do projeto ou no nível do arquivo. Se for definido no nível do arquivo, ele substituirá o namespace padrão no nível do projeto.

Você também pode definir outros namespaces e especificar os prefixos de namespace para esses namespaces. Use a palavra-chave para definir ambos os Imports tipos de namespace.

Para obter mais informações, consulte Literais XML no Visual Basic.

Observe que o namespace XML padrão só se aplica a elementos e não a atributos. Os atributos estão por padrão no namespace padrão. No entanto, você pode usar um prefixo de namespace para colocar um atributo em um namespace.

Exemplo: Criar um documento que tenha um namespace

Este exemplo cria um documento que contém um namespace.

Imports <xmlns:aw="http://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 produz a seguinte saída:

<aw:Root xmlns:aw="http://www.adventure-works.com">
  <aw:Child aw:Att="attvalue" />
</aw:Root>

Exemplo: Criar um documento que tenha dois namespaces, um com um prefixo

Este exemplo cria um documento que contém dois namespaces. Um é o namespace padrão, o outro tem um prefixo.

Imports <xmlns="http://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 produz a seguinte saída:

<Root xmlns:fc="www.fourthcoffee.com" xmlns="http://www.adventure-works.com">
  <Child Att="attvalue" />
  <fc:Child2>child2 content</fc:Child2>
</Root>

Exemplo: Criar um documento que tenha dois namespaces, ambos com prefixos

O exemplo a seguir cria um documento que contém dois namespaces, ambos com prefixos de namespace.

Ao serializar uma árvore XML, o LINQ to XML emite declarações de namespace conforme necessário para que cada elemento esteja em seu namespace designado.

Imports <xmlns:aw="http://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 produz a seguinte saída:

<aw:Root xmlns:fc="www.fourthcoffee.com" xmlns:aw="http://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>

Consulte também