HTML5 est-il valide en XML?

je suis confus. Un collègue m'a fait part de la possibilité que des étiquettes se terminant par /> , comme <br /> puissent encore être utilisées dans HTML5. Je pensais que seul le style <br> pouvait être utilisé. Toutes les "discussions" sur Internet portent sur l'utilisation de ce dernier.

est-ce que quelqu'un pourrait m'expliquer ça? Cela semble très confus et mal documenté.

et cela soulève une autre question: Est-ce que HTML 5 est considéré comme XML bien formé?

24
demandé sur Maroun 2011-04-06 01:05:28

5 réponses

Pas de. Contre-exemples:

ceux-ci sont valides HTML5 mais invalides XHTML5:

  1. certaines étiquettes de fermeture peuvent être omises:

    <p>First
    <p>Second
    

    voir: la balise p-end (

    ) N'est pas nécessaire dans HTML

  2. script d'échapper à la magie:

    <script><a></script>
    

    voir: ce qui est CDATA en HTML?

  3. attributs sans valeurs (attributs booléens):

    <input type="text" disabled />
    

    voir: valeur correcte de l'attribut

  4. attributs sans guillemets, p.ex.:

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

    Voir: En XHTML 1.0 Strict n'valeurs d'attribut doivent être entourés par des guillemets?

  5. Implicite éléments ouverts et plusieurs éléments de niveau supérieur.

    certains éléments HTML sont créés implicitement. Par exemple: html . Cela permet au HTML d'avoir "plusieurs éléments de haut niveau":

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

    voir: est-il nécessaire d'écrire la tête, le corps et les balises HTML?

valide XHTML qui n'est pas valide HTML:

  1. CDATA constructions avec des étiquettes Invalides à l'intérieur de

  2. ENTITY et d'Autres constructions de points d'exclamation, qui permettent des milliards de rires: Comment fonctionne l'attaque de DoS de milliards de rires XML?

valide HTML et XHTML mais avec des significations différentes:

  1. HTML a des centaines de caractères nommés références (par exemple &pound; , &copy; ), XML a seulement 5 ( quot , amp , apos , lt , gt ).
18

il existe une sérialisation XML, appelée XHTML5 . Fondamentalement, vous êtes libre d'utiliser HTML5 (HTML serialization) ou XHTML5 (XML serialization). Le projet de spécification dit HTML5 " est le format suggéré pour la plupart des auteurs," principalement pour les mêmes raisons que les gens recommandent text/html pour XHTML 1.1.

10
répondu Matthew Flaschen 2011-04-05 21:24:28

vous pouvez marquer votre page comme valide HTML5 et XHTML5: http://www.w3.org/TR/html-polyglot /

Polyglotte de balisage qui répond à un ensemble de contraintes est interprétée comme étant compatible, indépendamment de si elles sont traitées comme HTML ou XHTML, par la spécification HTML5.

le document de base pourrait ressembler à:

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

Bien sûr, vous devez suivre certaines règles supplémentaires (comme ne pas utiliser l'élément noscript , par exemple), décrites dans le document de travail lié.

7
répondu unor 2012-08-14 23:42:31

HTML5 peut être écrit avec ou sans slashes à fermeture automatique; il est conçu pour être rétro-compatible avec le code HTML 4.01 et XHTML 1.0, de sorte qu'il est facile de convertir le code en HTML5 valide. Il est une sérialisation XML appelé XHTML5, mais pour rétrocompatibilité avec les navigateurs IE, il n'est pas recommandé d'utiliser. Ainsi, techniquement, HTML5 est et non considéré comme XML bien formé.

3
répondu mc10 2011-04-20 21:57:08

en aucun cas vous ne devez vous attendre à ce qu'un document html (quelle que soit la version) soit "bien formé xml

html != XML.

c'est une spécification différente avec différentes suggestions (j'évite délibérément le mot" règles " ici) sur la façon dont il devrait être interprété.

Le HTML 5 spec a assez de "faire de cette façon, mais c'est pas grave si vous n'avez pas" remuer les déclarations que c'est un miracle que tout le les navigateurs montrent la même chose à tous.

1
répondu NotMe 2011-04-20 22:10:43