Как создать документ с пространствами имен (LINQ to XML) (Visual Basic)
В этом разделе описано, как создать документ с пространствами имен в Visual Basic.
Можно создавать документы с пространствами имен в Visual Basic, используя тот же подход, что описан в разделе Как создать документ с пространствами имен (C#) (LINQ to XML). Однако более удобно будет использовать глобальные декларации пространств имен в Visual Basic.
При использовании литералов XML в Visual Basic пользователи могут задавать одно глобальное пространство имен XML. Это пространство имен является пространством имен по умолчанию как для литералов, так и для свойств XML. Пространство имен XML по умолчанию можно задать как на уровне проекта, так и на уровне файла. Если оно задается на уровне файла, то оно переопределяет пространство имен по умолчанию, заданное на уровне проекта.
Можно также задавать другие пространства имен и указывать префиксы для них.
Как пространства имен по умолчанию, так и пространства имен с префиксами можно задавать при помощи ключа Imports.
Для получения дополнительной информации см. Введение в XML-литералы в Visual Basic.
Обратите внимание, что пространство имен 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>