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


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

Обновлен: Ноябрь 2007

Литерал, представляющий объект 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 в коде.

Bb384832.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

Пространства имен XML

Префиксы пространства имен XML полезны в ситуациях, когда необходимо создать в коде множественные XML-литералы с элементами одного пространства имен. Можно использовать глобальные префиксы пространства имен XML, которые определяются с помощью инструкции Imports, или локальные префиксы, которые можно определить с помощью синтаксиса атрибута xmlns:xmlPrefix = " xmlNamespace ". Дополнительные сведения см. в разделе Оператор Imports (пространство имен .NET и тип).

В соответствии с правилами обзора данных для пространства имен 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 As String = "book"
Dim attributeName1 As String = "year"
Dim attributeValue1 As Integer = 1999
Dim attributeName2 As String = "title"
Dim attributeValue2 As String = "My Book"

Dim book As XElement = _
<<%= elementType %>
    isbn="1234"
    <%= attributeName1 %>=<%= attributeValue1 %>
    <%= New XAttribute(attributeName2, attributeValue2) %>
/>

Console.WriteLine(book)

Этот код отображает следующий текст:

<book isbn="1234" 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

Встроенные выражения в XML

Ссылки

XElement

XML-литерал комментария

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

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

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

XML-литералы

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