historia - Espacio en blanco dentro de las etiquetas XML/HTML
que es html y css (4)
El estándar HTML [5] parece estar de acuerdo exactamente con el estándar XML, como lo describe Guffa ...
http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#start-tags
Sé cómo se maneja el espacio en blanco en los nodos de texto para XML y HTML, pero no estoy seguro acerca de los espacios en blanco dentro de los elementos de etiqueta. Obviamente, los espacios en blanco se usan dentro de las etiquetas para separar los atributos, pero ¿es válido tener espacios en blanco después de ''<'' o antes de ''>''?
Por ejemplo:
< foo >
< /foo >
O incluso:
<foo>
< / foo >
¿Son estas etiquetas XML válido? ¿Qué pasa con el HTML, suponiendo que fueran nombres reales de etiquetas HTML?
La especificación (sección 3.1 Etiquetas de inicio, etiquetas finales y etiquetas de elementos vacíos) dice que no hay espacios en blanco entre ''<''
y el nombre de la etiqueta, entre ''</''
y el nombre de la etiqueta, o dentro de ''/>''
. Sin embargo, puede agregar espacios en blanco después del nombre de la etiqueta:
<foo >
</foo >
<bar
/>
No puede comenzar con un espacio, pero puede (opcionalmente) finalizar con uno (antes del segundo ángulo, que cierra la primera etiqueta).
</
y />
son tokens, por lo que el espacio en blanco entre los dos caracteres sería un error de sintaxis. Y como señaló Guffa , no se permite el espacio en blanco entre el token de apertura y el nombre. Pero está bien agregar espacios en blanco entre la etiqueta del elemento y el token de cierre >
(o />
).
EDITAR para reflejar la cita correcta de Guffa de la especificación XML.