Información general sobre literales XML (Visual Basic)XML Literals Overview (Visual Basic)

Un literal XML le permite incorporar XML directamente en el código de Visual Basic.An XML literal allows you to incorporate XML directly into your Visual Basic code. La sintaxis de literales XML representa LINQ to XMLLINQ to XML objetos y es similar a la sintaxis XML 1.0.The XML literal syntax represents LINQ to XMLLINQ to XML objects, and it is the similar to the XML 1.0 syntax. Esto facilita la creación de elementos y documentos XML mediante programación porque el código tiene la misma estructura que el código XML final.This makes it easier to create XML elements and documents programmatically because your code has the same structure as the final XML.

Visual Basic compila literales XML en LINQ to XMLLINQ to XML objetos.Visual Basic compiles XML literals into LINQ to XMLLINQ to XML objects. LINQ to XMLLINQ to XML Proporciona un modelo de objetos simple para crear y manipular XML y este modelo se integra bien con Language-Integrated Query (LINQ)Language-Integrated Query (LINQ). provides a simple object model for creating and manipulating XML, and this model integrates well with Language-Integrated Query (LINQ)Language-Integrated Query (LINQ). Para obtener más información, consulta XElement.For more information, see XElement.

Puede insertar una expresión de Visual Basic en un literal XML.You can embed a Visual Basic expression in an XML literal. En tiempo de ejecución, la aplicación crea un LINQ to XMLLINQ to XML objeto para cada literal incorporando los valores de las expresiones incrustadas.At run time, your application creates a LINQ to XMLLINQ to XML object for each literal, incorporating the values of the embedded expressions. Esto le permite especificar el contenido dinámico dentro de un literal XML.This lets you specify dynamic content inside an XML literal. Para obtener más información, consulte expresiones incrustadas en XML.For more information, see Embedded Expressions in XML.

Para obtener más información sobre las diferencias entre la sintaxis de literales XML y la sintaxis XML 1.0, vea literales XML y la especificación de XML 1.0.For more information about the differences between the XML literal syntax and the XML 1.0 syntax, see XML Literals and the XML 1.0 Specification.

Literales simplesSimple Literals

Puede crear un LINQ to XMLLINQ to XML objeto en el código de Visual Basic escribiéndola o pegándola en XML válido.You can create a LINQ to XMLLINQ to XML object in your Visual Basic code by typing or pasting in valid XML. Un literal de elemento XML devuelve un XElement objeto.An XML element literal returns an XElement object. Para obtener más información, consulte Literal de elemento XML y literales XML y la especificación de XML 1.0.For more information, see XML Element Literal and XML Literals and the XML 1.0 Specification. El ejemplo siguiente crea un elemento XML que tiene varios elementos secundarios.The following example creates an XML element that has several child elements.

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

Se puede crear un documento XML a partir de un literal XML con <?xml version="1.0"?>, como se muestra en el ejemplo siguiente.You can create an XML document by starting an XML literal with <?xml version="1.0"?>, as shown in the following example. Un literal de documento XML devuelve un XDocument objeto.An XML document literal returns an XDocument object. Para obtener más información, consulte Literal de documento XML.For more information, see 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>

Nota

La sintaxis de literales XML en Visual Basic no es idéntica a la sintaxis en la especificación XML 1.0.The XML literal syntax in Visual Basic is not identical to the syntax in the XML 1.0 specification. Para obtener más información, consulte literales XML y la especificación de XML 1.0.For more information, see XML Literals and the XML 1.0 Specification.

Continuación de líneaLine Continuation

Un literal XML puede abarcar varias líneas sin usar caracteres de continuación de línea (la secuencia de espacio de subrayado-entrar).An XML literal can span multiple lines without using line continuation characters (the space-underscore-enter sequence). Esto facilita la comparación de los literales XML en código con documentos XML.This makes it easier to compare XML literals in code with XML documents.

El compilador trata los caracteres de continuación de línea como parte de un literal XML.The compiler treats line continuation characters as part of an XML literal. Por lo tanto, debe usar la secuencia de espacio de subrayado-entrar solo al que pertenece el LINQ to XMLLINQ to XML objeto.Therefore, you should use the space-underscore-enter sequence only when it belongs in the LINQ to XMLLINQ to XML object.

Sin embargo, es necesario que los caracteres de continuación de línea si tiene una expresión de varias líneas en una expresión incrustada.However, you do need line continuation characters if you have a multiline expression in an embedded expression. Para obtener más información, consulte expresiones incrustadas en XML.For more information, see Embedded Expressions in XML.

Incrustar consultas en literales XMLEmbedding Queries in XML Literals

Puede usar una consulta en una expresión incrustada.You can use a query in an embedded expression. Al hacerlo, los elementos devueltos por la consulta se agregan al elemento XML.When you do this, the elements returned by the query are added to the XML element. Esto le permite agregar contenido dinámico, como el resultado de consulta de un usuario, a un literal XML.This lets you add dynamic content, such as the result of a user's query, to an XML literal.

Por ejemplo, el código siguiente utiliza una consulta incrustada para crear elementos XML de los miembros de la phoneNumbers2 de matriz y, a continuación, agregue esos elementos como elementos secundarios de contact2.For example, the following code uses an embedded query to create XML elements from the members of the phoneNumbers2 array and then add those elements as children of 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 el compilador crea objetos a partir de los literales XMLHow the Compiler Creates Objects from XML Literals

El compilador de Visual Basic traduce los literales XML a llamadas al equivalente LINQ to XMLLINQ to XML constructores para crear el LINQ to XMLLINQ to XML objeto.The Visual Basic compiler translates XML literals into calls to the equivalent LINQ to XMLLINQ to XML constructors to build up the LINQ to XMLLINQ to XML object. Por ejemplo, el compilador de Visual Basic traducirá el siguiente ejemplo de código en una llamada a la XProcessingInstruction constructor para la instrucción de la versión XML, las llamadas a la XElement constructor para la <contact>, <name>, y <phone> los elementos y las llamadas a la XAttribute constructor para la type atributo.For example, the Visual Basic compiler will translate the following code example into a call to the XProcessingInstruction constructor for the XML version instruction, calls to the XElement constructor for the <contact>, <name>, and <phone> elements, and calls to the XAttribute constructor for the type attribute. En concreto, dados los atributos en el ejemplo siguiente, el compilador de Visual Basic llamará el XAttribute(XName, Object) constructor dos veces.Specifically, given the attributes in the following sample, the Visual Basic compiler will call the XAttribute(XName, Object) constructor twice. La primera pasará el valor type para el name parámetro y el valor home para el value parámetro.The first will pass the value type for the name parameter and the value home for the value parameter. El segundo también pasará el valor type para el name parámetro, pero el valor work para el value parámetro.The second will also pass the value type for the name parameter, but the value work for the value parameter.

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énSee Also

XElement
Crear XML en Visual BasicCreating XML in Visual Basic
Expresiones incrustadas en XMLEmbedded Expressions in XML
Literal de documento XMLXML Document Literal
Literal de elemento XMLXML Element Literal
Literales XMLXML Literals