Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
XML-литерал позволяет напрямую встроить XML в ваш код на Visual Basic. Синтаксис литерала XML представляет объекты LINQ to XML, и он аналогичен синтаксису XML 1.0. Это упрощает создание XML-элементов и документов программным способом, так как код имеет ту же структуру, что и окончательный XML.
Visual Basic компилирует XML-литералы в объекты LINQ to XML. LINQ to XML предоставляет простую объектную модель для создания и управления XML, и эта модель хорошо интегрируется с Language-Integrated запросом (LINQ). Дополнительные сведения см. в разделе XElement.
Выражение Visual Basic можно внедрить в XML-литерал. Во время выполнения приложение создает объект LINQ to XML для каждого литерала, включив значения внедренных выражений. Это позволяет указать динамическое содержимое внутри XML-литерала. Дополнительные сведения см. в разделе "Внедренные выражения" в ФОРМАТЕ XML.
Для получения дополнительной информации о различиях между синтаксисом XML-литералов и синтаксисом XML 1.0 посмотрите XML-литералы и спецификацию XML 1.0.
Простые литералы
Вы можете создать объект LINQ to XML в коде Visual Basic, введя или вставив допустимый XML-код. Литерал XML-элемента возвращает XElement объект. Дополнительные сведения см. в разделах «Литерал XML-элемента» и «Литералы XML и спецификация XML 1.0». В следующем примере создается XML-элемент с несколькими дочерними элементами.
Dim contact1 As XElement =
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
XML-документ можно создать с помощью XML-литерала, начиная с <?xml version="1.0"?>, как показано в следующем примере. Литеральный объект в XML-документе возвращает объект XDocument. Для получения дополнительной информации см. XML Document Literal.
Dim contactDoc As XDocument =
<?xml version="1.0"?>
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
Замечание
Синтаксис XML-литерала в Visual Basic не идентичен синтаксису в спецификации XML 1.0. Дополнительные сведения см. в разделе XML-литералы и спецификация XML 1.0.
Продолжение строки
XML-литерал может охватывать несколько строк без использования символов продолжения строки (последовательность пробела-подчеркивания-энтер). Это упрощает сравнение XML-литералы в коде с XML-документами.
Компилятор обрабатывает символы продолжения строки как часть XML-литерала. Поэтому следует использовать последовательность 'пробел-символ нижнего подчеркивания-ввод' только если она принадлежит объекту LINQ to XML.
Тем не менее, если в внедрённом выражении имеется многострочное выражение, вам потребуются символы продолжения строки. Дополнительные сведения см. в разделе "Внедренные выражения" в ФОРМАТЕ XML.
Внедрение запросов в XML-литералы
Запрос можно использовать во встроенном выражении. При этом элементы, возвращаемые запросом, добавляются в XML-элемент. Это позволяет добавить динамическое содержимое, например результат запроса пользователя, в XML-литерал.
Например, следующий код использует внедренный запрос для создания XML-элементов из элементов phoneNumbers2 массива, а затем добавления этих элементов в качестве дочерних contact2элементов.
Public Class XmlSamples
Public Sub Main()
' Initialize the objects.
Dim phoneNumbers2 As Phone() = {
New Phone("home", "206-555-0144"),
New Phone("work", "425-555-0145")}
' Convert the data contained in phoneNumbers2 to XML.
Dim contact2 =
<contact>
<name>Patrick Hines</name>
<%= From p In phoneNumbers2
Select <phone type=<%= p.Type %>><%= p.Number %></phone>
%>
</contact>
Console.WriteLine(contact2)
End Sub
End Class
Class Phone
Public Type As String
Public Number As String
Public Sub New(ByVal t As String, ByVal n As String)
Type = t
Number = n
End Sub
End Class
Как компилятор создает объекты из XML-литералов
Компилятор Visual Basic преобразует XML-литералы в вызовы эквивалентных конструкторов LINQ to XML для создания объекта LINQ to XML. Например, компилятор Visual Basic преобразует следующий пример кода в вызов конструктора XProcessingInstruction для инструкции xml-версии, вызовы конструктора XElement для элементов <contact>, <name> и <phone>, а также вызов конструктора XAttribute для атрибута type. В частности, учитывая атрибуты в следующем примере, компилятор Visual Basic будет вызывать XAttribute(XName, Object) конструктор дважды. Первый будет передавать значение type параметра name и значение home параметра value . Второй также передает значение type параметра name , но значение work параметра value .
Dim contactDoc As XDocument =
<?xml version="1.0"?>
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>