Compartir a través de


Información general sobre literales XML (Visual Basic)

Un literal XML permite incorporar XML directamente en el código de Visual Basic. La sintaxis del literal XML representa los objetos LINQ to XML y es el similar a la sintaxis de XML 1.0. Esto facilita la creación de elementos y documentos XML mediante programación porque el código tiene la misma estructura que el último XML.

Visual Basic compila los literales de XML en objetos LINQ to XML. LINQ to XML proporciona un modelo de objetos simple para crear y manipular código XML; además, este modelo se integra bien con Language-Integrated Query (LINQ). Para obtener más información, vea XElement.

Puede incrustar una expresión de Visual Basic en un literal XML. En tiempo de ejecución, la aplicación crea un objeto LINQ to XML por cada literal incorporando los valores de las expresiones incrustadas. De esta forma, puede especificar el contenido dinámico en un literal XML. Para obtener más información, vea Expresiones incrustadas (Visual Basic).

Para obtener más información acerca de las diferencias entre las sintaxis de literales XML y XML 1.0, vea Literales XML y la especificación XML 1.0 (Visual Basic).

Literales simples

Puede crear un objeto LINQ to XML en el código de Visual Basic escribiendo o pegando un XML válido. Un literal de elemento XML devuelve un objeto XElement. Para obtener más información, vea Literal de elemento XML (Visual Basic) y Literales XML y la especificación XML 1.0 (Visual Basic). En el ejemplo siguiente se crea un elemento XML que tiene varios elementos secundarios.

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

Puede crear un documento XML iniciando un literal XML con <?xml version="1.0"?>, como se muestra en el ejemplo siguiente. Un literal de documento XML devuelve un objeto XDocument. Para obtener más información, vea Literal de documento XML (Visual Basic).

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

La sintaxis de literales XML de Visual Basic no es idéntica a la de la especificación XML 1.0. Para obtener más información, vea Literales XML y la especificación XML 1.0 (Visual Basic).

Continuación de línea

Un literal XML puede abarcar varias líneas sin utilizar los caracteres de continuación de línea (la secuencia espacio-carácter de subrayado-entrar). De esta forma, se facilita la comparación de literales XML en código con documentos XML.

El compilador trata los caracteres de continuación de línea como parte de un literal XML. Por consiguiente, solo debe usar la secuencia espacio-carácter de subrayado-entrar cuando pertenezca al objeto LINQ to XML.

Sin embargo, sí necesita los caracteres de continuación de línea si tiene una expresión multilínea en una expresión incrustada. Para obtener más información, vea Expresiones incrustadas (Visual Basic).

Incrustar consultas en literales XML

Puede usar una consulta en una expresión incrustada. De esta forma, los elementos devueltos por la consulta se agregan al elemento XML. Así puede agregar contenido dinámico, como el resultado de la consulta de un usuario, a un literal XML.

Por ejemplo, el código siguiente utiliza una consulta incrustada para crear elementos XML a partir de los miembros de la matriz phoneNumbers2 y, a continuación, agregue esos elementos como elementos secundarios 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

Cómo crea el compilador objetos a partir de literales XML

El compilador Visual Basic traduce los literales XML en las llamadas a los constructores LINQ to XML equivalentes para generar el objeto LINQ to XML. Por ejemplo, el compilador Visual Basic traducirá el ejemplo de código siguiente en una llamada al constructor XProcessingInstruction para obtener la instrucción de versión XML, en llamadas al constructor XElement de los elementos <contact>, <name> y <phone>, y en llamadas al constructor XAttribute del atributo type. En concreto, dados los atributos del siguiente ejemplo, el compilador Visual Basic llamará dos veces al constructor XAttribute(XName, Object). La primera pasará el valor type al parámetro name y el valor home al parámetro value. La segunda también pasará el valor type al parámetro name, pero el valor work al parámetro 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>

Vea también

Referencia

Literal de documento XML (Visual Basic)

Literal de elemento XML (Visual Basic)

XElement

Conceptos

Expresiones incrustadas (Visual Basic)

Otros recursos

Crear XML en Visual Basic

Literales XML (Visual Basic)