Imports-Anweisung (XML-Namespace)

Importiert XML-Namespacepräfixe für die Verwendung in XML-Literalen und XML-Achseneigenschaften.

Syntax

Imports <xmlns:xmlNamespacePrefix = "xmlNamespaceName">

Bestandteile

xmlNamespacePrefix
Optional. Die Zeichenfolge, über die XML-Elemente und -Attribute auf xmlNamespaceName verweisen können. Ohne Angabe von xmlNamespacePrefix ist der importierte XML-Namespace der XML-Standardnamespace. Muss ein gültiger XML-Bezeichner sein. Weitere Informationen finden Sie unter Namen von deklarierten XML-Elementen und Attributen (Visual Basic).

xmlNamespaceName
Erforderlich. Die Zeichenfolge, die den zu importierenden XML-Namespace identifiziert.

Bemerkungen

Sie können die Imports-Anweisung verwenden, um globale XML-Namespaces zu definieren, die Sie mit XML-Literalen und XML-Achseneigenschaften oder als Parameter verwenden können, die an den GetXmlNamespace-Operator übergeben werden. (Informationen zur Verwendung der Imports-Anweisung zum Importieren eines Alias, der dort verwendet werden kann, wo Typnamen in Ihrem Code verwendet werden, finden Sie unter Imports-Anweisung (.NET-Namespace und Typ).) Die Syntax zum Deklarieren eines XML-Namespace mithilfe der Imports-Anweisung ist identisch mit der Syntax, die in XML verwendet wird. Daher können Sie eine Namespacedeklaration aus einer XML-Datei kopieren und in einer Imports-Anweisung verwenden.

XML-Namespacepräfixe sind nützlich, wenn Sie wiederholt XML-Elemente erstellen möchten, die aus dem gleichen Namespace stammen. Das mit der Imports-Anweisung deklarierte XML-Namespacepräfix ist global, was in diesem Fall bedeutet, dass es für den gesamten Code in der Datei verfügbar ist. Sie können es beim Erstellen von XML-Elementliteralen und beim Zugriff auf XML-Achseneigenschaften verwenden. Weitere Informationen finden Sie unter XML-Elementliteral (Visual Basic) sowie unter XML-Achseneigenschaften (Visual Basic).

Wenn Sie einen globalen XML-Namespace ohne Namespacepräfix definieren (z. B. Imports <xmlns="http://SomeNameSpace>"), wird dieser Namespace als XML-Standardnamespace betrachtet. Der XML-Standardnamespace wird für alle XML-Elementliterale oder XML-Attributachseneigenschaften verwendet, bei denen nicht explizit ein Namespace angeben ist. Der Standardnamespace wird auch verwendet, wenn der angegebene Namespace der leere Namespace (also xmlns="") ist. Der XML-Standardnamespace gilt nicht für XML-Attribute in XML-Literalen oder XML-Attributachseneigenschaften, die keinen Namespace haben.

XML-Namespaces, die in einem XML-Literal definiert sind (so genannte lokale XML-Namespaces), haben Vorrang vor XML-Namespaces, die durch die Imports-Anweisung als global definiert werden. XML-Namespaces, die durch die Imports-Anweisung definiert werden, haben Vorrang vor XML-Namespaces, die für ein Visual Basic-Projekt importiert werden. Wenn ein XML-Literal einen XML-Namespace definiert, gilt dieser lokale Namespace nicht für eingebettete Ausdrücke.

Globale XML-Namespaces folgen den gleichen Bereichs- und Definitionsregeln wie .NET Framework-Namespaces. Daher können Sie überall dort, wo Sie einen .NET Framework-Namespace importieren können, eine Imports-Anweisung einfügen, um einen globalen XML-Namespace zu definieren. Das gilt sowohl für Codedateien als auch für importierte Namespaces auf Projektebene. Informationen zu importierten Namespaces auf Projektebene finden Sie unter Seite „Verweise“, Projekt-Designer (Visual Basic).

Jede Quelldatei kann eine beliebige Anzahl von Imports-Anweisungen enthalten. Diese müssen auf Optionsdeklarationen folgen (beispielsweise auf die Option Strict-Anweisung) und vor Programmierelementdeklarationen platziert werden (beispielsweise vor Module- oder Class-Anweisungen).

Beispiel 1

Im folgenden Beispiel werden ein XML-Standardnamespace und ein XML-Namespace importiert, der mit dem Präfix ns identifiziert wird. Anschließend werden XML-Literale erstellt, die beide Namespaces verwenden.

' 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

Durch diesen Code wird folgender Text angezeigt:

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

Beispiel 2

Im folgenden Beispiel wird das XML-Namespacepräfix ns importiert. Anschließend wird ein XML-Literal erstellt, das das Namespacepräfix verwendet und die endgültige Form des Elements anzeigt.

' 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

Durch diesen Code wird folgender Text angezeigt:

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

Beachten Sie, dass der Compiler das XML-Namespacepräfix von einem globalen Präfix in eine lokale Präfixdefinition konvertiert hat.

Beispiel 3

Im folgenden Beispiel wird das XML-Namespacepräfix ns importiert. Anschließend wird mit dem Namespacepräfix ein XML-Literal erstellt und auf den ersten untergeordneten Knoten mit dem qualifizierten Namen ns:name zugegriffen.

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

Durch diesen Code wird folgender Text angezeigt:

Patrick Hines

Siehe auch