2011-04-05 14 views
21

Estoy confundido. Un compañero de trabajo me habló sobre la posibilidad de que las etiquetas que terminan en />, como <br />, todavía se puedan usar en HTML5. Pensé que solo se podía usar <br>-style. Toda la "conversación" a través de Internet se trata de usar lo último.¿HTML5 es válido XML?

¿Podría alguien explicarme esto? Esto parece muy confuso y mal documentado.

Y esto trae a colación otra pregunta: ¿HTML 5 se considera como XML bien formado?

+4

posible duplicado de [HTML 5: ¿Es

o
?] (Http://stackoverflow.com/questions/1946426/html-5-is-it-br-br-or-br) –

+1

@ GabyakaG.Petrioli no está de acuerdo con el duplicado porque esto es más general, no se limita a '
'. ;-) –

+0

No, pero podría escribir HTML bien formado de forma que sea XML válido. Y viceversa, si mantiene XML lo suficientemente simple puede ser HTML válido. – nawfal

Respuesta

10

Hay una serialización XML de la misma, llamada XHTML5. Básicamente, puede usar HTML5 (serialización HTML) o XHTML5 (serialización XML). El borrador de la especificación dice que HTML5 "es el formato sugerido para la mayoría de los autores", principalmente por las mismas razones por las que la gente recomienda text/html para XHTML 1.1.

3

HTML5 se puede escribir con o sin barras de cierre automático; está destinado a ser compatible con versiones anteriores con el código HTML   4.01 y XHTML   1.0, por lo que es fácil convertir el código en HTML5 válido. Hay es una serialización XML llamada XHTML5, pero para propósitos de compatibilidad con navegadores IE, no se recomienda su uso. Así que, técnicamente, HTML5 es no considerado como XML bien formado.

2

Bajo ninguna condición que debe esperar de cualquier documento HTML (independientemente de la versión) para ser "bien formados XML "

html! = Xml.

Es una especificación diferente con diferentes sugerencias (estoy evitando a propósito la palabra "reglas" aquí) sobre cómo debe interpretarse.

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 sorprendente que cualquiera de los navegadores muestre lo mismo.

+8

Se supone que las páginas compatibles con XHTML están bien formadas por definición. Las páginas XHTML bien formadas tenían la intención de hacer que las rutinas de análisis en los navegadores web fueran menos complicadas. Sin embargo, HTML y HTML5 no tienen que estar bien formados, aunque pueden serlo si así lo desean. Por supuesto, incluso las páginas con un XHTML DOCTYPE podrían no estar bien formadas debido a los codificadores descuidados, así que esta es probablemente la razón por la cual se recomienda la especificación HTML5 en lugar de XHTML5 ya que los navegadores buenos probablemente respaldan la representación de páginas mal codificadas. – Kmeixner

7

Puede markup su página como válida HTML5 y XHTML5: http://www.w3.org/TR/html-polyglot/

marcado Políglota que cumple con un conjunto bien definido de restricciones se interpreta como compatibles, independientemente de que se procesan como HTML o como XHTML según la especificación HTML5.

El documento básico podría parecerse a:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
    <head> 
    <title></title> 
    </head> 
    <body> 
    </body> 
</html> 

Por supuesto que tendría que seguir algunas reglas adicionales (como no utilizar el elemento noscript, por ejemplo), indicadas en el proyecto de trabajo vinculados .

11

No.Contraejemplos:

Estos son HTML5 válido, pero XHTML5 válido:

  1. Algunas etiquetas de cierre pueden omitirse:

    <p>First 
    <p>Second 
    

    Ver: P-end-tag (</p>) is not needed in HTML

  2. script mágica de escape:

    <script><a></script> 
    

    Ver: What is CDATA in HTML?

  3. Atributos sin valores (atributos Boolean):

    <input type="text" disabled /> 
    

    Ver: Correct value for disabled attribute

  4. atributos sin comillas, por ejemplo:

    <div data-a=b></div> 
    

    Ver: In XHTML 1.0 Strict do attribute values need to be surrounded with quotes?

  5. Elementos implícitos abiertos y múltiples elementos de nivel superior.

    Algunos elementos HTML se crean implícitamente. P.ej. html. Esto permite que el HTML que tiene "múltiples elementos de nivel superior":

    <!doctype html><title>a</title><p>a</p> 
    

    Ver: Is it necessary to write HEAD, BODY and HTML tags?

XHTML que es HTML válido:

  1. CDATA construcciones con etiquetas no válidas en el interior

  2. ENTITY y otras construcciones de la marca de exclamación, que permiten mil millones de risas: How does the billion laughs XML DoS attack work?

Valid HTML y XHTML, pero con diferentes significados:

  1. HTML tiene cientos de referencias de caracteres con nombre (por ejemplo, &pound;, &copy;), XML tiene solo 5 (quot, amp, apos, lt, gt).
Cuestiones relacionadas