html5 - codes - meta html
¿HTML5 es válido XML? (5)
Estoy confundido. Un compañero de trabajo me dio la posibilidad de que las etiquetas que terminan en />
, como <br />
aún puedan usarse en HTML5. Pensé que solo se podía usar el estilo de las mujeres. Todo el "discurso" a través de Internet es sobre el uso de este último.
¿Podría alguien explicarme esto por favor? Esto parece muy confuso y mal documentado.
Y esto plantea otra pregunta: ¿Se considera que HTML 5 es XML bien formado?
Bajo ninguna condición debería esperar que cualquier documento html (independientemente de la versión) esté "bien formado xml "
html! = xml.
Es una especificación diferente con diferentes sugerencias (estoy evitando a propósito la palabra "reglas" aquí) sobre cómo se debe interpretar.
La especificación de HTML 5 tiene suficiente "hazlo de esta manera, pero está bien si no lo haces" menea las afirmaciones de que es una maravilla que alguno de los navegadores muestre lo mismo.
HTML5 se puede escribir con o sin barras de cierre automático; está diseñado para ser compatible con versiones anteriores tanto de HTML 4.01 como de XHTML 1.0, por lo que es fácil convertir el código en HTML5 válido. Existe una serialización XML llamada XHTML5, pero por razones de compatibilidad con los navegadores IE, no se recomienda su uso. Así que técnicamente, HTML5 no se considera un XML bien formado.
Hay una serialización XML de ella, llamada XHTML5 . Básicamente, puedes usar HTML5 (serialización HTML) o XHTML5 (serialización XML). La especificación del borrador dice que HTML5 "es el formato sugerido para la mayoría de los autores", principalmente por las mismas razones por las que las personas recomiendan text/html
para XHTML 1.1.
Puede marcar su página como HTML5 y XHTML5 válidos: http://www.w3.org/TR/html-polyglot/
El marcado Polyglot que cumple con un conjunto bien definido de restricciones se interpreta como compatible, independientemente de si se procesan como HTML o XHTML, según la especificación HTML5.
El documento básico podría verse como:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
</head>
<body>
</body>
</html>
Por supuesto, tendría que seguir algunas reglas adicionales (como no usar el elemento noscript
, por ejemplo), que se describen en el borrador de trabajo vinculado.
No. Contra-ejemplos:
Estos son HTML5 válido pero XHTML5 no válido:
Algunas etiquetas de cierre se pueden omitir:
<p>First <p>Second
script
escape magic:<script><a></script>
Atributos sin valores (atributos booleanos):
<input type="text" disabled />
Atributos sin comillas, por ejemplo:
<div data-a=b></div>
Ver: En XHTML 1.0 Estricto, ¿los valores de atributo deben estar entre comillas?
Elementos abiertos implícitos y múltiples elementos de nivel superior.
Algunos elementos HTML se crean implícitamente. Por ejemplo,
html
. Esto permite que el HTML tenga "múltiples elementos de nivel superior":<!doctype html><title>a</title><p>a</p>
XHTML válido que no es válido HTML:
CDATA
construye con etiquetas inválidas dentroENTITY
y otras construcciones de signos de exclamación, que permiten millones de risas: ¿Cómo funciona el ataque XML DoS de mil millones de risas?
Valido HTML y XHTML pero con diferentes significados:
- HTML tiene cientos de referencias de caracteres con nombre (por ejemplo,
£
©
), XML tiene solo 5 (quot
,amp
,apos
,lt
,gt
).