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

本主题演示如何在 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)