Instrução Imports (Namespace XML)

Importa prefixos do namespace XML ara usar em literais XML e propriedades de eixo XML.

Imports <xmlns:xmlNamespacePrefix = "xmlNamespaceName">

Partes

  • xmlNamespacePrefix
    Opcional.A sequência de caracteres pela qual elementos e atributos XML podem se referir a xmlNamespaceName.Se nenhum xmlNamespacePrefix for fornecido, o namespace XML importado é o namespace XML padrão.Deve ser um identificador XML válido.Para obter mais informações, consulte Nomes de elementos XML declarado e atributos.

  • xmlNamespaceName
    Obrigatório.A sequência de caracteres que identifica o namespace XML que está sendo importado.

Comentários

Você pode usar a instrução Imports para definir namespaces XML globais que você pode usar com literais XML e propriedades de eixo XML, ou como parâmetros passados para o operador GetXmlNamespace.(Para obter informações sobre como usar a instrução Imports para importar um alias que pode ser usado onde nomes de tipo são usados em seu código, consulte Declaração Imports (Tipo e Namespace .NET).) A sintaxe para declarar um namespace XML usando a instrução Imports é idêntica a sintaxe usada em XML.Portanto, você pode copiar uma declaração de namespace de um arquivo XML e usá-la em uma instrução Imports.

Prefixos de namespace XML são úteis quando você deseja criar repetidamente elementos XML que são do mesmo namespace.O prefixo de namespace XML declarado com a instrução Imports é global no sentido de que está disponível a todos os códigos no arquivo.Você pode usá-lo quando você cria literais de elemento XML e quando você acessa propriedades de eixo XML.Para obter mais informações, consulte Elemento Literal XML e Propriedades do eixo XML.

Se você definir um namespace XML global sem um prefixo de namespace (por exemplo, Imports <xmlns="http://SomeNameSpace>"), esse namespace é considerado o namespace XML padrão.O namespace XML padrão é usado para quaisquer literais de elemento XML ou propriedades de eixo de atributo XML que não especificam explicitamente um namespace.O namespace padrão também é usado se namespace especificado for o namespace vazio (ou seja, ).O namespace XML padrão não se aplica aos atributos XML em literais XML ou às propriedades de eixo do atributo XML que não têm um namespace.

Namespaces XML são definidos em um literal XML, que são chamados namesapces XML locais, têm precedência sobre namespaces XML que são definidos pela instrução Imports como globais.Namespaces XML que são definidos pela instrução Imports têm precedência sobre namespaces XML importados para um projeto Visual Basic.Se um literal XML define um namespace XML, esse namespaces local não se aplica a expressões incorporados.

Namespaces XML globais seguem as mesmas regras de escopo e definição que namespaces do .NET Framework.Como resultado, você pode incluir uma instrução Imports para definir um namespace XML global em qualquer lugar que você pode importar um namespace do .NET Framework.Isso inclui namespaces importados de arquivos de código e no nível do projeto.Para obter informações sobre namespaces importados no nível do projeto, consulte Página de referências, Designer de projeto (Visual Basic).

Cada arquivo-fonte pode conter qualquer número de declarações Imports.Elas devem seguir declarações de opções, como a instrução Option Strict, e devem preceder declarações de elemento de programação, como instruções Module ou Class.

Exemplo

O exemplo a seguir importa um namespace XML padrão e um namespace XML identificado com o prefixo ns.Em seguida, cria literais XML que usam os dois namespaces.

' Place Imports statements at the top of your program.  
Imports <xmlns="http://DefaultNamespace">
Imports <xmlns:ns="http://NewNamespace">

Module Module1

  Sub Main()
    ' Create element by using the default global XML namespace. 
    Dim inner = <innerElement/>

    ' Create element by using both the default global XML namespace
    ' and the namespace identified with the "ns" prefix.
    Dim outer = <ns:outer>
                  <ns:innerElement></ns:innerElement>
                  <siblingElement></siblingElement>
                  <%= inner %>
                </ns:outer>

    ' Display element to see its final form. 
    Console.WriteLine(outer)
  End Sub

End Module

Esse código exibe o texto a seguir:

<ns:outer xmlns="http://DefaultNamespace" 
          xmlns:ns="http://NewNamespace">
  <ns:innerElement></ns:innerElement>
  <siblingElement></siblingElement>
  <innerElement />
</ns:outer>

O exemplo a seguir importa o prefixo ns do namespace XML.Em seguida, cria um literal XML que usa o prefixo do namespace e exibe a forma final do elemento.

' 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

Esse código exibe o texto a seguir:

<ns:outer xmlns:ns="http://SomeNamespace">
  <ns:middle xmlns:ns="http://NewNamespace">
    <ns:inner1 />
    <inner2 xmlns="http://SomeNamespace" />
  </ns:middle>
</ns:outer>

Observe que o compilador converteu o prefixo do namespace XML de um prefixo global para uma definição de prefixo local.

O exemplo a seguir importa o prefixo ns do namespace XML.Ele então usa o prefixo de namespace para criar um literal XML e acessar o primeiro nó filho com o nome qualificado ns:name.

Imports <xmlns:ns = "http://SomeNamespace"> 

Class TestClass4

    Shared Sub TestPrefix()
        Dim contact = <ns:contact>
                        <ns:name>Patrick Hines</ns:name>
                      </ns:contact>
        Console.WriteLine(contact.<ns:name>.Value)
    End Sub

End Class

Esse código exibe o texto a seguir:

Patrick Hines

Consulte também

Conceitos

Nomes de elementos XML declarado e atributos

Referência

Elemento Literal XML

Operador GetXmlNamespace

Outros recursos

Propriedades do eixo XML