Compartir a través de


Información general sobre literales XML

Actualización: noviembre 2007

Un literal XML permite incorporar directamente XML en el código de Visual Basic. La sintaxis de los literales XML representa objetos de LINQ to XML y es similar a la sintaxis de XML 1.0. De esta forma, se 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 literales XML en objetos LINQ to XML. LINQ to XML proporciona un modelo de objetos simple para crear y manipular XML; además, este modelo se integra bien con Language-Integrated Query (LINQ). Para obtener más información, consulte XElement.

Puede incrustar una expresión 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, consulte Expresiones incrustadas en XML.

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.

Literales simples

Puede crear un objeto LINQ to XML en el código de Visual Basic escribiendo o pegando en XML válido. Un literal de elemento XML devuelve un objeto XElement. Para obtener más información, consulte Literal de elemento XML y Literales XML y la especificación XML 1.0. 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, 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:

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

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, sólo debe utilizar 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, consulte Expresiones incrustadas en XML.

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 llamadas al constructor XAttribute del atributo type. Específicamente, 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

Conceptos

Expresiones incrustadas en XML

Referencia

Literal de documento XML

Literal de elemento XML

XElement

Otros recursos

Crear XML en Visual Basic

Literales XML