Imports-Anweisung (XML-Namespace)

Aktualisiert: November 2007

Importiert XML-Namespacepräfixe zur Verwendung in XML-Literalen und XML-Achseneigenschaften.

Imports <xmlns:xmlNamespacePrefix = "xmlNamespaceName">

Bestandteile

  • xmlNamespacePrefix
    Optional. Die Zeichenfolge, durch die XML-Elemente und Attribute auf xmlNamespaceName verweisen können. Wenn Sie keinen xmlNamespacePrefix angeben, wird der XML-Standardnamespace importiert. Muss ein gültiger XML-Bezeichner sein. Weitere Informationen finden Sie unter Namen von deklarierten XML-Elementen und Attributen.

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

Hinweise

Mit der Imports-Anweisung können Sie globale XML-Namespaces definieren, die Sie für XML-Literale und XML-Achseneigenschaften oder als Parameter für den GetXmlNamespace-Operator verwenden können. (Informationen zur Verwendung der Imports-Anweisung zum Importieren eines Alias, den Sie an den Stellen verwenden können, an denen im Code Typnamen verwendet werden, finden Sie unter Imports-Anweisung (.NET-Namespace und Typ).) Die Syntax zum Deklarieren eines XML-Namespaces mit der Imports-Anweisung ist identisch mit der in XML verwendeten Syntax. Daher können Sie eine Namespacedeklaration aus einer XML-Datei kopieren und in einer Imports-Anweisung verwenden.

XML-Namespacepräfixe sind hilfreich, wenn Sie wiederholt XML-Elemente erstellen möchten, die aus demselben Namespace stammen. Ein mit der Imports-Anweisung deklarierter XML-Namespace ist in dem Sinne global, dass er für den gesamten Code in der Datei zur Verfügung steht. Sie können ihn beim Erstellen von XML-Elementliteralen und beim Zugreifen auf XML-Achseneigenschaften verwenden. Weitere Informationen finden Sie unter XML-Elementliteral und XML-Achseneigenschaften.

Wenn Sie einen globalen XML-Namespace ohne einen Namespacepräfix definieren (z. B. Imports <xmlns="http://SomeNameSpace>"), wird dieser Namespace als der XML-Standardnamespace angesehen. Der XML-Standardnamespace wird für alle XML-Elementliterale oder XML-Attributachseneigenschaften verwendet, für die kein expliziter Namespace angegeben wird. Außerdem wird der Standardnamespace verwendet, wenn ein leerer Namespace (also ) angegeben wird. Der XML-Standardnamespace gilt nicht für XML-Attribute in XML-Literalen oder für XML-Attributachseneigenschaften ohne Namespace.

In einem XML-Literal definierte XML-Namespaces, die als lokale XML-Namespaces bezeichnet werden, haben Vorrang vor XML-Namespaces, die mit der Imports-Anweisung als global definiert werden. Mit der Imports-Anweisung definierte XML-Namespaces 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 denselben Bereichs- und Definitionsregeln wie .NET Framework-Namespaces. Aus diesem Grund können Sie eine Imports-Anweisung zum Definieren eines globalen XML-Namespaces auch an den Stellen angeben, an denen Sie einen .NET Framework-Namespace importieren können. Dies gilt sowohl für Codedateien als auch für auf Projektebene importierte Namespaces. Informationen über auf Projektebene importierte Namespaces finden Sie unter Seite "Verweise", Projekt-Designer (Visual Basic).

Jede Quelldatei kann beliebig viele Imports-Anweisungen enthalten. Diese müssen nach Option-Deklarationen, z. B. Option Strict, angegeben werden und Deklarationen von Programmierelementen, z. B. Module-Anweisungen oder Class-Anweisungen, vorangestellt werden.

Beispiel

Im folgenden Beispiel werden ein XML-Standardnamespace und ein mit dem Präfix ns gekennzeichneter XML-Namespace importiert. 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>

Im folgenden Beispiel wird der XML-Namespacepräfix ns importiert. Anschließend wird ein XML-Literal erstellt, das das Namespacepräfix verwendet und die abschließende 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 das XML-Namespacepräfix vom Compiler von einer globalen Präfixdefinition in eine lokale Präfixdefinition umgewandelt wurde.

Im folgenden Beispiel wird der XML-Namespacepräfix ns importiert. Anschließend wird das Namespacepräfix verwendet, um ein XML-Literal zu erstellen und auf den ersten untergeordneten Knoten mit dem qualifizierten Namen ns:name zuzugreifen.

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

Konzepte

Namen von deklarierten XML-Elementen und Attributen

Referenz

XML-Elementliteral

GetXmlNamespace-Operator

Weitere Ressourcen

XML-Achseneigenschaften