Udostępnij za pośrednictwem


Imports — Instrukcja (przestrzeń nazw XML)

Importuje prefiksy przestrzeni nazw XML do użycia w literałach XML i właściwościach osi XML.

Składnia

Imports <xmlns:xmlNamespacePrefix = "xmlNamespaceName">

generatora

xmlNamespacePrefix
Opcjonalny. Ciąg, za pomocą którego elementy i atrybuty XML mogą odwoływać się do xmlNamespaceNameelementu . Jeśli nie xmlNamespacePrefix zostanie podana, zaimportowana przestrzeń nazw XML jest domyślną przestrzenią nazw XML. Musi być prawidłowym identyfikatorem XML. Aby uzyskać więcej informacji, zobacz Nazwy zadeklarowanych elementów XML i atrybutów.

xmlNamespaceName
Wymagany. Ciąg identyfikujący importowaną przestrzeń nazw XML.

Uwagi

Możesz użyć instrukcji Imports , aby zdefiniować globalne przestrzenie nazw XML, których można używać z literałami XML i właściwościami osi XML lub jako parametry przekazywane do GetXmlNamespace operatora. (Aby uzyskać informacje na temat używania Imports instrukcji do importowania aliasu, który może służyć do używania nazw typów w kodzie, zobacz Import Statement (.NET Namespace and Type)). Składnia deklarowania przestrzeni nazw XML przy użyciu instrukcji Imports jest identyczna ze składnią używaną w języku XML. W związku z tym można skopiować deklarację przestrzeni nazw z pliku XML i użyć jej w instrukcji Imports .

Prefiksy przestrzeni nazw XML są przydatne, gdy chcesz wielokrotnie tworzyć elementy XML z tej samej przestrzeni nazw. Prefiks przestrzeni nazw XML zadeklarowany za pomocą instrukcji Imports jest globalny w tym sensie, że jest dostępny dla całego kodu w pliku. Można go używać podczas tworzenia literałów elementów XML i uzyskiwania dostępu do właściwości osi XML. Aby uzyskać więcej informacji, zobacz Właściwości literału elementu XML i osi XML.

Jeśli zdefiniujesz globalną przestrzeń nazw XML bez prefiksu przestrzeni nazw (na przykład Imports <xmlns="http://SomeNameSpace>"), ta przestrzeń nazw jest uważana za domyślną przestrzeń nazw XML. Domyślna przestrzeń nazw XML jest używana dla dowolnych literałów elementu XML lub właściwości osi atrybutów XML, które nie określają jawnie przestrzeni nazw. Domyślna przestrzeń nazw jest również używana, jeśli określona przestrzeń nazw jest pustą przestrzenią nazw (czyli xmlns=""). Domyślna przestrzeń nazw XML nie ma zastosowania do atrybutów XML w literałach XML ani do właściwości osi atrybutów XML, które nie mają przestrzeni nazw.

Przestrzenie nazw XML zdefiniowane w literału XML nazywane lokalnymi przestrzeniami nazw XML mają pierwszeństwo przed przestrzeniami nazw XML zdefiniowanymi przez instrukcję Imports jako globalną. Przestrzenie nazw XML zdefiniowane przez instrukcję Imports mają pierwszeństwo przed przestrzeniami nazw XML importowanymi dla projektu Visual Basic. Jeśli literał XML definiuje przestrzeń nazw XML, ta lokalna przestrzeń nazw nie ma zastosowania do wyrażeń osadzonych.

Globalne przestrzenie nazw XML są zgodne z tymi samymi regułami określania zakresu i definicji co przestrzenie nazw programu .NET Framework. W związku z tym można dołączyć instrukcję Imports w celu zdefiniowania globalnej przestrzeni nazw XML w dowolnym miejscu, w którym można zaimportować przestrzeń nazw programu .NET Framework. Obejmuje to zarówno pliki kodu, jak i zaimportowane przestrzenie nazw na poziomie projektu. Aby uzyskać informacje o zaimportowanych przestrzeniach nazw na poziomie projektu, zobacz Strona odwołań, Project Projektant (Visual Basic).

Każdy plik źródłowy może zawierać dowolną liczbę instrukcji Imports . Muszą one być zgodne z deklaracjami opcji, takimi jak Option Strict instrukcja, i muszą poprzedzać deklaracje elementów programowania, takie jak Module lub Class instrukcje.

Przykład 1

Poniższy przykład importuje domyślną przestrzeń nazw XML i przestrzeń nazw XML zidentyfikowaną z prefiksem ns. Następnie tworzy literały XML, które używają obu przestrzeni nazw.

' 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

Ten kod wyświetla następujący tekst:

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

Przykład 2

Poniższy przykład importuje prefiks nsprzestrzeni nazw XML . Następnie tworzy literał XML, który używa prefiksu przestrzeni nazw i wyświetla ostateczny formularz elementu.

' 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

Ten kod wyświetla następujący tekst:

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

Zwróć uwagę, że kompilator przekonwertował prefiks przestrzeni nazw XML z globalnego prefiksu na lokalną definicję prefiksu.

Przykład 3

Poniższy przykład importuje prefiks nsprzestrzeni nazw XML . Następnie używa prefiksu przestrzeni nazw, aby utworzyć literał XML i uzyskać dostęp do pierwszego węzła podrzędnego o kwalifikowanej nazwie 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

Ten kod wyświetla następujący tekst:

Patrick Hines

Zobacz też