更新: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>