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