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 literal XML representa objetos LINQ to XML y es similar a la sintaxis XML 1.0. Esto facilita la creación de documentos y elementos XML mediante programación porque el código tiene la misma estructura que el XML final.

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

Puede insertar una expresión de Visual Basic en un literal XML. En tiempo de ejecución, la aplicación crea un objeto LINQ to XML para cada literal, incorporando los valores de las expresiones incrustadas. Esto le permite especificar contenido dinámico dentro de un literal XML. Para más información, consulte Expresiones insertadas en XML.

Para obtener más información sobre las diferencias entre la sintaxis literal XML y la sintaxis 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, vea 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 documentos 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 literal XML de Visual Basic no es idéntica a la sintaxis de la especificación XML 1.0. Para obtener más información, vea Literales XML y la especificación XML 1.0.

Continuación de línea

Un literal XML puede abarcar varias líneas sin usar caracteres de continuación de línea (la secuencia espacio-subrayado-entrar). Esto facilita la comparación de literales XML en el código con documentos XML.

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

Sin embargo, se necesitan caracteres de continuación de línea si tienes una expresión en varias líneas dentro de una expresión incrustada. Para más información, consulte Expresiones insertadas en XML.

Inserción de consultas en literales XML

Puede usar una consulta en una expresión insertada. Al hacerlo, los elementos devueltos por la consulta se agregan al elemento XML. Esto le permite agregar contenido dinámico, como el resultado de la consulta de un usuario, a un literal XML.

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

Consulte también