如何:创建包含命名空间的文档 (LINQ to XML) (Visual Basic)

更新:November 2007

本主题演示如何在 Visual Basic 中创建包含命名空间的文档。

通过使用 如何:创建包含命名空间的文档 (C#) (LINQ to XML) 中所述的技术,可以使用 Visual Basic 创建具有命名空间的文档。但是,使用 Visual Basic 全局命名空间声明更加方便。

在 Visual Basic 中使用 XML 文本时,用户可以定义一个全局默认 XML 命名空间。该命名空间对 XML 文本和 XML 属性都是默认的命名空间。可以在项目级别或文件级别上定义默认的 XML 命名空间。如果在文件级别上定义,则会重写项目级别上的默认命名空间。

还可以定义其他命名空间,并为这些命名空间指定命名空间前缀。

通过使用 Imports 关键字来定义默认命名空间和带前缀的命名空间。

有关更多信息,请参见 Visual Basic 中的 XML 文本简介

请注意,默认 XML 命名空间仅适用于元素,而不适用于属性。默认情况下属性从不在命名空间中。但是可以使用命名空间前缀将属性置于一个命名空间中。

示例

此示例创建一个包含命名空间的文档。

Imports <xmlns:aw="https://www.adventure-works.com">
Module Module1
    Sub Main()
        Dim root As XElement = _
            <aw:Root>
                <aw:Child aw:Att="attvalue"/>
            </aw:Root>
        Console.WriteLine(root)
    End Sub
End Module

本示例生成以下输出:

<aw:Root xmlns:aw="https://www.adventure-works.com">
  <aw:Child aw:Att="attvalue" />
</aw:Root>

此示例创建一个包含两个命名空间的文档,其中一个为默认命名空间。

Imports <xmlns="https://www.adventure-works.com">
Imports <xmlns:fc="www.fourthcoffee.com">

Module Module1

    Sub Main()
        Dim root As XElement = _
            <Root>
                <Child Att="attvalue"/>
                <fc:Child2>child2 content</fc:Child2>
            </Root>
        Console.WriteLine(root)
    End Sub

End Module

本示例生成以下输出:

<Root xmlns:fc="www.fourthcoffee.com" xmlns="https://www.adventure-works.com">
  <Child Att="attvalue" />
  <fc:Child2>child2 content</fc:Child2>
</Root>

下面的示例创建一个包含多个命名空间的文档,每个命名空间都具有命名空间前缀。

序列化 XML 树时,LINQ to XML 发出所需的命名空间声明,这样每个元素都位于所指定的命名空间中。

Imports <xmlns:aw="https://www.adventure-works.com">
Imports <xmlns:fc="www.fourthcoffee.com">

Module Module1

    Sub Main()
        Dim root As XElement = _
            <aw:Root>
                <fc:Child>
                    <aw:DifferentChild>other content</aw:DifferentChild>
                </fc:Child>
                <aw:Child2>c2 content</aw:Child2>
                <fc:Child3>c3 content</fc:Child3>
            </aw:Root>
        Console.WriteLine(root)
    End Sub

End Module

本示例生成以下输出:

<aw:Root xmlns:fc="www.fourthcoffee.com" xmlns:aw="https://www.adventure-works.com">
  <fc:Child>
    <aw:DifferentChild>other content</aw:DifferentChild>
  </fc:Child>
  <aw:Child2>c2 content</aw:Child2>
  <fc:Child3>c3 content</fc:Child3>
</aw:Root>

请参见

概念

Visual Basic 中的命名空间 (LINQ to XML)