Литеральное представление XML-элемента (Visual Basic)
Литерал, представляющий объект XElement.
<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>
Части
Термин |
Определение |
||||||||
< |
Обязательный. Открывает начальный тег элемента. |
||||||||
name |
Обязательный. Имя элемента. Имеет один из следующих форматов:
|
||||||||
attributeList |
Необязательный. Список атрибутов, объявленных в литерале. attribute [ attribute ... ] Каждый параметр attribute имеет один из следующих синтаксисов:
|
||||||||
/> |
Необязательный. Указывает, что элемент является пустым, без содержимого. |
||||||||
> |
Обязательный. Завершает начало или тег пустого элемента. |
||||||||
elementContents |
Необязательный. Содержимое элемента. content [ content ... ] Каждый параметр content может быть таким:
|
||||||||
</[name]> |
Необязательный. Представляет закрывающий тег для элемента. Необязательный параметр name не допускается, когда он является результатом встроенного выражения. |
Возвращаемое значение
Объект XElement.
Заметки
Можно использовать синтаксис литерального представления XML-элемента для создания объектов XElement в коде.
Примечание
XML-литерал может занимать несколько строк без использования символа продолжения строки.Эта особенность позволяет копировать содержимое из XML-документа и вставлять его непосредственно в программу Visual Basic.
Встроенные выражения формы <%= exp %> позволяют добавлять динамические данные литерального представления XML-элемента. Дополнительные сведения см. в разделе Встроенные выражения в XML (Visual Basic).
Компилятор Visual Basic преобразует литеральное представление XML-элемента в вызовы конструктора #ctor и, если необходимо, конструктора#ctor.
Пространства имен XML
Префиксы пространства имен XML полезны в ситуациях, когда необходимо создать в коде множественные XML-литералы с элементами одного пространства имен. Можно использовать глобальные префиксы пространства имен XML, которые определяются с помощью инструкции Imports, или локальные префиксы, которые можно определить с помощью синтаксиса атрибута xmlns:xmlPrefix = " xmlNamespace ". Дополнительные сведения см. в разделе Оператор Imports (пространство имен XML).
В соответствии с правилами обзора данных для пространства имен XML, локальные префиксы имеют приоритет по сравнению с глобальными префиксами. Тем не менее, если XML-литерал определяет пространство имен XML, это пространство имен недоступно для выражений, отображаемых во встроенном выражении. Встроенные выражения могут иметь доступ только к глобальному пространству имен XML.
Компилятор Visual Basic преобразует каждое глобальное пространство имен XML, используемое XML литералом в одном локальном пространстве имен, определенном в созданном коде . Неиспользуемые глобальные пространства имен XML не появляются в созданном коде.
Пример
В следующем примере показано, как создать простой XML-элемент, который имеет два вложенных пустых элемента.
Dim test1 As XElement =
<outer>
<inner1></inner1>
<inner2/>
</outer>
Console.WriteLine(test1)
В примере приведен следующий текст. Обратите внимание, что литерал сохраняет структуру пустых элементов.
<outer>
<inner1></inner1>
<inner2 />
</outer>
В следующем примере показано использование встроенных выражений для присвоения имени элементу и создания атрибутов.
Dim elementType = "book"
Dim authorName = "My Author"
Dim attributeName1 = "year"
Dim attributeValue1 = 1999
Dim attributeName2 = "title"
Dim attributeValue2 = "My Book"
Dim book As XElement =
<<%= elementType %>
isbn="1234"
author=<%= authorName %>
<%= attributeName1 %>=<%= attributeValue1 %>
<%= New XAttribute(attributeName2, attributeValue2) %>
/>
Console.WriteLine(book)
В этом коде отображается следующий текст:
<book isbn="1234" author="My Author" year="1999" title="My Book" />
В следующем примере ns объявляется как префикс пространства имен XML. Затем используется префикс пространства имен для создания 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 в определение префикса пространства имен XML. Элемент <ns:middle> переопределяет префикс пространства имен XML для элемента < ns:inner1 >. Однако элемент < ns:inner2 > использует пространство имен, определенное инструкцией Imports.
См. также
Ссылки
XML-литерал комментариев (Visual Basic)
Литеральное представление XML-раздела CDATA (Visual Basic)
Оператор Imports (пространство имен XML)
Основные понятия
Имена объявляемых элементов и атрибутов XML (Visual Basic)
Встроенные выражения в XML (Visual Basic)