Поделиться через


Литеральное представление XML-элемента (Visual Basic)

Литерал, представляющий объект XElement.

<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>

Части

Термин

Определение

<

Обязательный.Открывает начальный тег элемента.

name

Обязательный.Имя элемента.Имеет один из следующих форматов:

  • Текст литералов для имени элемента формы [ePrefix:]eName, где:

ЧастьОписание
ePrefix Необязательный.Префикс пространства имен XML для указанного элемента.Должно быть глобальным пространством имен XML, которое определено инструкцией Imports в файле или на уровне проекта, или локальным пространством имен XML, которое определено в этом элементе или в родительском элементе.
eName Обязательный.Имя элемента.Имеет один из следующих форматов:
  • Встроенные выражения формы <%= nameExp %>.Необходимо, чтобы тип nameExp был String или типом, который неявным образом преобразовывается в XName.Внедренное выражение недопустимо в теге закрытия элемента.

attributeList

Необязательный.Список атрибутов, объявленных в литерале.

attribute [ attribute ... ]

Каждый параметр attribute имеет один из следующих синтаксисов:

  • Назначение атрибута формы [aPrefix:]aName=aValue, где:

ЧастьОписание
aPrefix Необязательный.Префикс пространства имен XML для атрибута.Должно быть глобальным пространством имен XML, которое определено с инструкцией Imports, или локальным пространством имен XML, которое определено в этом элементе или родительском элементе.
aName Обязательный.Имя атрибута.Имеет один из следующих форматов:
aValue Необязательный.Значение атрибута.Имеет один из следующих форматов:
  • Текст литерала, заключенный в кавычки.

  • Встроенные выражения формы <%= aValueExp %>.Допустимым является любой тип.

  • Встроенные выражения формы <%= aExp %>.

/>

Необязательный.Указывает, что элемент является пустым, без содержимого.

>

Обязательный.Завершает начало или тег пустого элемента.

elementContents

Необязательный.Содержимое элемента.

content [ content ... ]

Каждый параметр content может быть таким:

</[name]>

Необязательный.Представляет закрывающий тег для элемента.Необязательный параметр name не допускается, когда он является результатом встроенного выражения.

Возвращаемое значение

Объект XElement.

Заметки

Можно использовать синтаксис литерального представления XML-элемента для создания объектов XElement в коде.

ПримечаниеПримечание

XML-литерал может занимать несколько строк без использования символа продолжения строки.Эта особенность позволяет копировать содержимое из XML-документа и вставлять его непосредственно в программу Visual Basic.

Встроенные выражения формы <%= exp %> позволяют добавлять динамические данные литерального представления XML-элемента.Дополнительные сведения см. в разделе Встроенные выражения в XML (Visual Basic).

Компилятор Visual Basic преобразует литеральное представление XML-элемента в вызовы конструктора XElement и, если необходимо, конструктораXAttribute.

Пространства имен 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.

См. также

Ссылки

XElement

XML-литерал комментариев (Visual Basic)

Литеральное представление XML-раздела CDATA (Visual Basic)

Оператор Imports (пространство имен XML)

Основные понятия

Имена объявляемых элементов и атрибутов XML (Visual Basic)

Встроенные выражения в XML (Visual Basic)

Другие ресурсы

XML-литералы (Visual Basic)

Создание XML в Visual Basic