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


Литеральное представление 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-элемента в вызовы конструктора #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.

См. также

Ссылки

XElement

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

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

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

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

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

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

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

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

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