Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Литерал, представляющий XElement объект.
Синтаксис
<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>
Комплектующие
<Обязательное. Открывает тег начального элемента.
nameОбязательное. Имя элемента. Формат является одним из следующих вариантов:
Литеральный текст для имени элемента формы,
[ePrefix:]eNameгде:Часть Описание ePrefixНеобязательно. Префикс пространства имен XML для элемента. Должен быть глобальным пространством имен XML, определенным с Importsпомощью инструкции в файле или на уровне проекта, или локальное пространство имен XML, определенное в этом элементе или родительском элементе.eNameОбязательное. Имя элемента. Формат является одним из следующих вариантов:
- Литеральный текст. См. имена объявленных XML-элементов и атрибутов.
— Внедренное выражение формы<%= eNameExp %>. ТипeNameExpдолжен бытьStringили тип, который неявно преобразуется в XName.Внедренное выражение формы
<%= nameExp %>. Тип должен бытьStringили типnameExpнеявно преобразован в XName. Внедренное выражение не допускается в закрываемом теге элемента.
attributeListНеобязательно. Список атрибутов, объявленных в литерале.
attribute [ attribute ... ]Каждый
attributeиз них имеет один из следующих синтаксисов:Назначение атрибутов
[aPrefix:]aName=aValueформы, где:Часть Описание aPrefixНеобязательно. Префикс пространства имен XML для атрибута. Должен быть глобальным пространством имен XML, определенным с Importsпомощью инструкции, или локального пространства имен XML, определенного в этом элементе или родительском элементе.aNameОбязательное. Имя атрибута. Формат является одним из следующих вариантов:
- Литеральный текст. См. имена объявленных XML-элементов и атрибутов.
— Внедренное выражение формы<%= aNameExp %>. ТипaNameExpдолжен бытьStringили тип, который неявно преобразуется в XName.aValueНеобязательно. Значение атрибута. Формат является одним из следующих вариантов:
— Литеральный текст, заключенный в кавычки.
— Внедренное выражение формы<%= aValueExp %>. Разрешен любой тип.Внедренное выражение формы
<%= aExp %>.
/>Необязательно. Указывает, что элемент является пустым элементом без содержимого.
>Обязательное. Заканчивает начальный или пустой тег элемента.
elementContentsНеобязательно. Содержимое элемента.
content [ content ... ]Каждое
contentможет быть одним из следующих вариантов:Литеральный текст. Все пробелы становятся значительными,
elementContentsесли есть литеральный текст.Внедренное выражение формы
<%= contentExp %>.Литерал XML-элемента.
Литерал комментариев XML. См. литерал комментариев XML.
Литерал инструкции обработки XML. См. литерал инструкций по обработке XML.
Литерал XML CDATA. См. литерал CDATA XML.
</[name]>Необязательно. Представляет закрывающий тег элемента. Необязательный
nameпараметр не допускается, если он является результатом внедренного выражения.
Возвращаемое значение
Объект XElement .
Замечания
Для создания XElement объектов в коде можно использовать синтаксис литерала XML-элемента.
Замечание
Xml-литерал может охватывать несколько строк без использования символов продолжения строки. Эта функция позволяет скопировать содержимое из XML-документа и вставить его непосредственно в программу Visual Basic.
Внедренные выражения формы <%= exp %> позволяют добавлять динамические сведения в литерал XML-элемента. Дополнительные сведения см. в разделе "Внедренные выражения" в ФОРМАТЕ XML.
Компилятор Visual Basic преобразует литерал XML-элемента в вызовы XElement конструктора и, если это необходимо, XAttribute конструктор.
Пространства имен XML
Префиксы пространства имен XML полезны при создании XML-литералы с элементами из одного пространства имен много раз в коде. Вы можете использовать префиксы глобального пространства имен XML, которые определяются с помощью инструкции или локальных префиксов, которые определяются с помощью Imports синтаксиса xmlns:xmlPrefix="xmlNamespace" атрибута. Дополнительные сведения см. в разделе "Импорт" (пространство имен XML).
В соответствии с правилами области для пространств имен XML локальные префиксы имеют приоритет над глобальными префиксами. Однако если XML-литерал определяет пространство имен XML, это пространство имен недоступно для выражений, которые отображаются в внедренном выражении. Внедренное выражение может получить доступ только к глобальному пространству имен XML.
Компилятор Visual Basic преобразует каждое глобальное пространство имен XML, которое используется XML-литералом в одно определение локального пространства имен в созданном коде. Глобальные пространства имен XML, которые не используются, не отображаются в созданном коде.
Пример 1
В следующем примере показано, как создать простой XML-элемент с двумя вложенными пустыми элементами.
Dim test1 As XElement =
<outer>
<inner1></inner1>
<inner2/>
</outer>
Console.WriteLine(test1)
В примере показан следующий текст. Обратите внимание, что литерал сохраняет структуру пустых элементов.
<outer>
<inner1></inner1>
<inner2 />
</outer>
Пример 2
В следующем примере показано, как использовать внедренные выражения для имени элемента и создания атрибутов.
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" />
Пример 3
В следующем примере объявляется 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 .