Declaração de importação (namespace XML)

Importa prefixos de namespace XML para uso em literais XML e propriedades de eixo XML.

Sintaxe

Imports <xmlns:xmlNamespacePrefix = "xmlNamespaceName">

Partes

xmlNamespacePrefix
Opcional. A cadeia de caracteres pela qual os elementos e atributos XML podem se referir a xmlNamespaceName. Se no xmlNamespacePrefix for fornecido, o namespace XML importado será o namespace XML padrão. Deve ser um identificador XML válido. Para obter mais informações, consulte Nomes de elementos e atributos XML declarados.

xmlNamespaceName
Obrigatório. A cadeia de caracteres que identifica o namespace XML que está sendo importado.

Observações

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

Os prefixos de namespace XML são úteis quando você deseja criar repetidamente elementos XML que são do mesmo namespace. O prefixo do namespace XML declarado com a Imports instrução é global no sentido de que está disponível para todo o código no arquivo. Você pode usá-lo ao criar literais de elemento XML e ao acessar propriedades do eixo XML. Para obter mais informações, consulte Literal de elemento 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 será considerado o namespace XML padrão. O namespace XML padrão é usado para qualquer literal de elemento XML ou propriedades de eixo de atributo XML que não especifiquem explicitamente um namespace. O namespace padrão também é usado se o namespace especificado for o namespace vazio (ou seja, xmlns=""). O namespace XML padrão não se aplica a atributos XML em literais XML ou a propriedades do eixo de atributos XML que não têm um namespace.

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

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

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

Exemplo 1

O exemplo a seguir importa um namespace XML padrão e um namespace XML identificado com o prefixo ns. Em seguida, ele cria literais XML que usam ambos os 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

Este código exibe o seguinte texto:

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

Exemplo 2

O exemplo a seguir importa o prefixo nsdo namespace XML . Em seguida, ele 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

Este código exibe o seguinte texto:

<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.

Exemplo 3

O exemplo a seguir importa o prefixo nsdo namespace XML . Em seguida, ele usa o prefixo do namespace para criar um literal XML e acessar o primeiro nó filho com o nome ns:namequalificado.

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

Este código exibe o seguinte texto:

Patrick Hines

Consulte também