Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Литерал, представляющий 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 .