2008-10-08 9 views

Respuesta

8

Puede crear un atributo vacío a través de attName = ""

Puede crear un elemento vacío a través de

<elementName></elementName> 

o

<elementName/> 
+0

http://www.w3.org/TR/REC-xml/#NT-AttValue – Manav

11

Sí, esto es XML bien formado.

Una manera fácil de probar esto (en Windows) es guardar la muestra en un archivo test.xml y abrirla con Internet Explorer. IE mostrará un mensaje de error si el documento no está bien formado.

+24

No estoy seguro de que depender de IE como la prueba definitivos en un estándar. –

+2

No se preocupe: la prueba de xml bien formado es algo muy bien entendido y difícil de estropear. –

+1

Como se señaló en @ hal10001, hay varios analizadores que fallan cuando se proporcionan XML válidos y espero que haya varios que funcionen con XML no válido. –

4

No sirve de nada que se trata de un atributo XML , no es un elemento. Un elemento vacío sería:

</> 

que no es XML válido.

+0

Tiene razón, he editado la pregunta para que coincida con lo que pretendía. –

+2

Si estamos siendo pedantes, la especificación XML llama a elementos como '

' y '
' elementos vacíos. –

2

También se debe tener en cuenta que algunos analizadores XML arrojarán un error en los nodos de cadenas vacías y los atributos en lugar de devolver un nulo o una cadena vacía. Entonces, aunque podría ser válido, sería mejor dejarlo de lado por completo.

+0

Eso suena como un analizador roto, ya que un atributo faltante es diferente de un atributo que especifica una cadena vacía (particularmente cuando se usa una DTD que especifica valores de atributo predeterminados). –

+0

Estoy totalmente de acuerdo :) –

+0

¿Qué analizador arroja un error en un atributo vacío? –

0

Sí - contenido del elemento puede estar vacío, y como usaste en tu pregunta, incluso hay una notación de etiqueta especial de elemento vacío:

<elementname /> 

Excepto cuando es necesario interoperabilidad con SGML, lo anterior es equivalente a

<elementname></elementname> 

Los valores de atributo también puede estar vacío, pero los atributos siempre debe ir seguido de un '=' y una cadena entre comillas, incluso si la cadena no contiene caracteres


El lugar definitivo para esta información es la especificación XML: http://www.xml.com/axml/testaxml.htm

Esto es lo que el XML de referencia anotada tiene que decir sobre los elementos vacíos:

Por lo tanto, es la siguiente: <img src='madonna.gif'></img> realmente exactamente lo mismo que <img src='madonna.gif'/>? En lo que respecta a XML es en cuestión, lo son. Esta decisión fue con motivo de mucho debate religioso, con la sensación de que hay un elemento esencial entre los elementos del tipo "contenedor" y "contenedor". Y como deja en claro el "para la interoperabilidad" debajo de , si está utilizando el software pre-1998 SGML para procesar XML, existe una gran diferencia.

nota: la discusión sobre los elementos vacíos se debió a la redacción original de la pregunta publicada.

3

esta es la etiqueta XML válido:

<mytag myattrib=""/> 

esto no es:

<mytag myattrib/> 
Cuestiones relacionadas