Imports 语句(XML 命名空间)

Imports,用于 XML 文本和 XML 轴属性的 XML 命名空间前缀。

语法

Imports <xmlns:xmlNamespacePrefix = "xmlNamespaceName">

组成部分

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

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

注解

你可以使用 Imports 语句来定义可与 XML 文本和 XML 轴属性结合使用或可作为参数传递给 GetXmlNamespace 运算符的全局 XML 命名空间。 (若要了解如何使用 Imports 语句导入可用于代码中类型名称所用位置的别名,请参阅Imports 语句(.NET 命名空间和类型)。) 使用 Imports 语句声明 XML 命名空间的语法与 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

另请参阅