Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Literal que representa un XElement objeto .
Sintaxis
<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>
Partes
<Obligatorio. Abre la etiqueta de elemento inicial.
nameObligatorio. Nombre del elemento. El formato es uno de los siguientes:
Texto literal del nombre del elemento, del formato
[ePrefix:]eName, donde:Parte Descripción ePrefixOpcional. Prefijo de espacio de nombres XML para el elemento . Debe ser un espacio de nombres XML global definido con una Importsinstrucción en el archivo o en el nivel de proyecto, o un espacio de nombres XML local que se define en este elemento o en un elemento primario.eNameObligatorio. Nombre del elemento. El formato es uno de los siguientes:
- Texto literal. Vea Nombres de atributos y elementos XML declarados.
- Expresión incrustada del formulario<%= eNameExp %>. El tipo deeNameExpdebe serStringo un tipo que se puede convertir implícitamente en XName.Expresión incrustada del formulario
<%= nameExp %>. El tipo denameExpdebe serStringo un tipo convertible implícitamente a XName. No se permite una expresión incrustada en una etiqueta de cierre de un elemento.
attributeListOpcional. Lista de atributos declarados en el literal.
attribute [ attribute ... ]Cada
attributeuno tiene una de las sintaxis siguientes:Asignación de atributos, del formato
[aPrefix:]aName=aValue, donde:Parte Descripción aPrefixOpcional. Prefijo de espacio de nombres XML para el atributo . Debe ser un espacio de nombres XML global definido con una Importsinstrucción o un espacio de nombres XML local definido en este elemento o en un elemento primario.aNameObligatorio. Nombre del atributo. El formato es uno de los siguientes:
- Texto literal. Vea Nombres de atributos y elementos XML declarados.
- Expresión incrustada del formulario<%= aNameExp %>. El tipo deaNameExpdebe serStringo un tipo que se puede convertir implícitamente en XName.aValueOpcional. Valor del atributo. El formato es uno de los siguientes:
- Texto literal, entre comillas.
- Expresión incrustada del formulario<%= aValueExp %>. Se permite cualquier tipo.Expresión incrustada del formulario
<%= aExp %>.
/>Opcional. Indica que el elemento es un elemento vacío, sin contenido.
>Obligatorio. Finaliza la etiqueta de elemento inicial o vacía.
elementContentsOpcional. Contenido del elemento.
content [ content ... ]Cada
contentuno puede ser uno de los siguientes:Texto literal. Todo el espacio en blanco de se convierte en
elementContentssignificativo si hay texto literal.Expresión incrustada del formulario
<%= contentExp %>.Literal del elemento XML.
Literal de comentario XML. Consulte Literal de comentario XML.
Literal de instrucción de procesamiento XML. Consulte Literal de instrucción de procesamiento XML.
Literal CDATA XML. Vea Literal CDATA XML.
</[name]>Opcional. Representa la etiqueta de cierre del elemento. No se permite el parámetro opcional
namecuando es el resultado de una expresión incrustada.
Valor devuelto
Objeto XElement .
Observaciones
Puede usar la sintaxis literal del elemento XML para crear XElement objetos en el código.
Nota:
Un literal XML puede abarcar varias líneas sin usar caracteres de continuación de línea. Esta característica permite copiar contenido de un documento XML y pegarlo directamente en un programa de Visual Basic.
Las expresiones incrustadas del formulario <%= exp %> permiten agregar información dinámica a un literal de elemento XML. Para más información, consulte Expresiones insertadas en XML.
El compilador de Visual Basic convierte el literal del elemento XML en llamadas al XElement constructor y, si es necesario, el XAttribute constructor.
Espacios de nombres XML
Los prefijos de espacio de nombres XML son útiles cuando tiene que crear literales XML con elementos del mismo espacio de nombres muchas veces en el código. Puede usar prefijos de espacio de nombres XML globales, que se definen mediante la Imports instrucción o prefijos locales, que se definen mediante la sintaxis de xmlns:xmlPrefix="xmlNamespace" atributo. Para más información, consulte Imports (Instrucción, Espacio de nombres XML).
De acuerdo con las reglas de ámbito de los espacios de nombres XML, los prefijos locales tienen prioridad sobre los prefijos globales. Sin embargo, si un literal XML define un espacio de nombres XML, ese espacio de nombres no está disponible para las expresiones que aparecen en una expresión incrustada. La expresión insertada solo puede tener acceso al espacio de nombres XML global.
El compilador de Visual Basic convierte cada espacio de nombres XML global que usa un literal XML en una definición de espacio de nombres local en el código generado. Los espacios de nombres XML globales que no se usan no aparecen en el código generado.
Ejemplo 1
En el ejemplo siguiente se muestra cómo crear un elemento XML simple con dos elementos vacíos anidados.
Dim test1 As XElement =
<outer>
<inner1></inner1>
<inner2/>
</outer>
Console.WriteLine(test1)
En el ejemplo se muestra el texto siguiente. Observe que el literal conserva la estructura de los elementos vacíos.
<outer>
<inner1></inner1>
<inner2 />
</outer>
Ejemplo 2
En el ejemplo siguiente se muestra cómo usar expresiones incrustadas para asignar un nombre a un elemento y crear atributos.
Dim elementType = "book"
Dim authorName = "My Author"
Dim attributeName1 = "year"
Dim attributeValue1 = 1999
Dim attributeName2 = "title"
Dim attributeValue2 = "My Book"
Dim book As XElement =
<<%= elementType %>
isbn="1234"
author=<%= authorName %>
<%= attributeName1 %>=<%= attributeValue1 %>
<%= New XAttribute(attributeName2, attributeValue2) %>
/>
Console.WriteLine(book)
Este código muestra el texto siguiente:
<book isbn="1234" author="My Author" year="1999" title="My Book" />
Ejemplo 3
En el ejemplo siguiente se declara ns como prefijo de espacio de nombres XML. A continuación, usa el prefijo del espacio de nombres para crear un literal XML y muestra el formulario final del elemento.
' Place Imports statements at the top of your program.
Imports <xmlns:ns="http://SomeNamespace">
Class TestClass1
Shared Sub TestPrefix()
' Create test using a global XML namespace prefix.
Dim inner2 = <ns:inner2/>
Dim test =
<ns:outer>
<ns:middle xmlns:ns="http://NewNamespace">
<ns:inner1/>
<%= inner2 %>
</ns:middle>
</ns:outer>
' Display test to see its final form.
Console.WriteLine(test)
End Sub
End Class
Este código muestra el texto siguiente:
<ns:outer xmlns:ns="http://SomeNamespace">
<ns:middle xmlns:ns="http://NewNamespace">
<ns:inner1 />
<inner2 xmlns="http://SomeNamespace" />
</ns:middle>
</ns:outer>
Observe que el compilador convirtió el prefijo del espacio de nombres XML global en una definición de prefijo para el espacio de nombres XML. El <elemento ns:middle> vuelve a definir el prefijo del espacio de nombres XML para el <elemento ns:inner1> . Sin embargo, el <elemento ns:inner2> usa el espacio de nombres definido por la Imports instrucción .