Partilhar via


Visão geral de literais XML (Visual Basic)

Um literal XML permite que você incorpore XML diretamente em seu código do Visual Basic. A sintaxe literal XML representa objetos LINQ to XML e é semelhante à sintaxe XML 1.0. Isso facilita a criação de elementos XML e documentos programaticamente porque seu código tem a mesma estrutura que o XML final.

Visual Basic compila literais XML em objetos LINQ to XML. O LINQ to XML fornece um modelo de objeto simples para criar e manipular XML, e esse modelo se integra bem ao LINQ (Language-Integrated Query). Para obter mais informações, veja XElement.

Você pode incorporar uma expressão do Visual Basic em um literal XML. Em tempo de execução, seu aplicativo cria um objeto LINQ to XML para cada literal, incorporando os valores das expressões incorporadas. Isso permite especificar conteúdo dinâmico dentro de um literal XML. Para obter mais informações, consulte Expressões incorporadas em XML.

Para obter mais informações sobre as diferenças entre a sintaxe literal XML e a sintaxe XML 1.0, consulte Literais XML e a especificação XML 1.0.

Literais simples

Você pode criar um objeto LINQ to XML em seu código do Visual Basic digitando ou colando em XML válido. Um literal de elemento XML retorna um XElement objeto. Para obter mais informações, consulte Literal de elemento XML e Literais XML e a especificação XML 1.0. O exemplo a seguir cria um elemento XML que tem vários elementos filho.

Dim contact1 As XElement = 
    <contact>
      <name>Patrick Hines</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>

Você pode criar um documento XML iniciando um literal XML com <?xml version="1.0"?>, conforme mostrado no exemplo a seguir. Um literal de documento XML retorna um XDocument objeto. Para obter mais informações, consulte Literal de documento XML.

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>

Nota

A sintaxe literal XML no Visual Basic não é idêntica à sintaxe na especificação XML 1.0. Para obter mais informações, consulte Literais XML e a especificação XML 1.0.

Continuação da linha

Um literal XML pode abranger várias linhas sem usar caracteres de continuação de linha (a sequência space-underscore-enter). Isso facilita a comparação de literais XML em código com documentos XML.

O compilador trata caracteres de continuação de linha como parte de um literal XML. Portanto, você deve usar a sequência space-underscore-enter somente quando ela pertence ao objeto LINQ to XML.

No entanto, você precisará de caracteres de continuação de linha se tiver uma expressão de várias linhas em uma expressão incorporada. Para obter mais informações, consulte Expressões incorporadas em XML.

Incorporando consultas em literais XML

Você pode usar uma consulta em uma expressão incorporada. Quando você fizer isso, os elementos retornados pela consulta são adicionados ao elemento XML. Isso permite adicionar conteúdo dinâmico, como o resultado da consulta de um usuário, a um literal XML.

Por exemplo, o código a seguir usa uma consulta incorporada para criar elementos XML a partir dos membros da phoneNumbers2 matriz e, em seguida, adicionar esses elementos como filhos de 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

Como o compilador cria objetos a partir de literais XML

O compilador do Visual Basic converte literais XML em chamadas para os construtores LINQ to XML equivalentes para criar o objeto LINQ to XML. Por exemplo, o compilador do Visual Basic traduzirá o exemplo de código a seguir em uma chamada para o XProcessingInstruction construtor para a instrução de versão XML, chamadas para o XElement construtor para os <contact>elementos , <name>e <phone> e chamadas para o XAttribute construtor para o type atributo. Especificamente, dados os atributos no exemplo a seguir, o compilador do Visual Basic chamará o XAttribute(XName, Object) construtor duas vezes. O primeiro passará o valor type para o name parâmetro e o valor home para o value parâmetro. O segundo também passará o valor type para o name parâmetro, mas o valor work para o value parâmetro.

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>

Consulte também