Imports 语句 (XML 命名空间)

导入 XML 命名空间前缀,以便在 XML 文本和 XML 轴属性中使用。

语法

Imports <xmlns:xmlNamespacePrefix = "xmlNamespaceName">

部件

xmlNamespacePrefix
可选。 XML 元素和属性可以引用 xmlNamespaceName的字符串。 xmlNamespacePrefix如果未提供,则导入的 XML 命名空间是默认的 XML 命名空间。 必须是有效的 XML 标识符。 有关详细信息,请参阅 声明的 XML 元素和属性的名称

xmlNamespaceName
必填。 标识要导入的 XML 命名空间的字符串。

注解

可以使用 Imports 该语句定义全局 XML 命名空间,这些命名空间可与 XML 文本和 XML 轴属性一起使用,或者用作传递给 GetXmlNamespace 运算符的参数。 (有关使用 Imports 语句导入可在代码中使用类型名称的别名的信息,请参阅 Imports 语句(.NET 命名空间和类型)。) 使用语句声明 XML 命名空间的 Imports 语法与 XML 中使用的语法相同。 因此,可以从 XML 文件复制命名空间声明,并在语句中 Imports 使用它。

如果要重复创建来自同一命名空间的 XML 元素,则 XML 命名空间前缀非常有用。 使用语句声明的 Imports XML 命名空间前缀是全局的,因为它可用于文件中的所有代码。 创建 XML 元素文本以及访问 XML 轴属性时,可以使用它。 有关详细信息,请参阅 XML 元素文本XML 轴属性

如果定义没有命名空间前缀的全局 XML 命名空间(例如), Imports <xmlns="http://SomeNameSpace>"该命名空间被视为默认的 XML 命名空间。 默认 XML 命名空间用于未显式指定命名空间的任何 XML 元素文本或 XML 属性轴属性。 如果指定的命名空间是空命名空间(即, xmlns=""),则也会使用默认命名空间。 默认 XML 命名空间不适用于 XML 文本中的 XML 属性或没有命名空间的 XML 属性轴属性。

在 XML 文本中定义的 XML 命名空间(称为 本地 XML 命名空间)优先于由 Imports 语句定义为全局的 XML 命名空间。 由该语句定义的 Imports XML 命名空间优先于为 Visual Basic 项目导入的 XML 命名空间。 如果 XML 文本定义 XML 命名空间,则本地命名空间不适用于嵌入表达式。

全局 XML 命名空间遵循与 .NET Framework 命名空间相同的范围和定义规则。 因此,可以包含一个 Imports 语句,用于在导入 .NET Framework 命名空间的任何位置定义全局 XML 命名空间。 这包括代码文件和项目级导入的命名空间。 有关项目级导入的命名空间的信息,请参阅“引用”页、项目设计器(Visual Basic)。

每个源文件可以包含任意数量的 Imports 语句。 这些属性必须遵循选项声明(如 Option Strict 语句),并且它们必须位于编程元素声明(如 ModuleClass 语句)之前。

示例 1

下面的示例导入默认的 XML 命名空间和一个用前缀 ns标识的 XML 命名空间。 然后,它创建使用这两个命名空间的 XML 文本。

' 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

此代码显示以下文本:

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

示例 2

以下示例导入 XML 命名空间前缀 ns。 然后,它创建一个 XML 文本,该文本使用命名空间前缀并显示元素的最终形式。

' 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

此代码显示以下文本:

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

请注意,编译器将 XML 命名空间前缀从全局前缀转换为本地前缀定义。

示例 3

以下示例导入 XML 命名空间前缀 ns。 然后,它使用命名空间的前缀创建 XML 文本并访问具有限定名称 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

此代码显示以下文本:

Patrick Hines

另请参阅