Alors qu'est-il arrivé à XHTML5?
Cette page est un brouillon pour xhtml5 et html5? Donc, il n'y a pas de différence entre ces doctypes?
Alors qu'est-il arrivé à XHTML5?
Cette page est un brouillon pour xhtml5 et html5? Donc, il n'y a pas de différence entre ces doctypes?
Réponses:
En 2012, au moment d'écrire ces lignes, il était clair que le W3C avait décidé d'abandonner XHTML pour HTML 5. Cette décision était motivée par plusieurs raisons:
Peu de gens s’intéressaient vraiment à XHTML. La plupart des sites Web ont été écrits en HTML.
Encore moins de gens comprenaient vraiment ce qu'est le langage XHTML et comment l'utiliser. Trop de sites Web prétendant servir XHTML utilisaient de mauvais en-têtes au lieu de Content-Type: application/xhtml+xml
.
Même lorsque vous comprenez parfaitement ce qu'est le XHTML et ce que doivent être les en-têtes, la chose est vraiment délicate avec des navigateurs de mauvaise qualité qui n'acceptent / supportent pas le application/xhtml+xml
type de contenu. Cela signifiait que vous deviez modifier l'en-tête en fonction du navigateur.
La partie XML de XHTML a également provoqué certaines situations étranges que les développeurs ont dû résoudre. Le premier est le INVALID_STATE_ERR: DOM Exception 11
message qui apparaît lorsque vous affectez le texte contenant des caractères HTML (comme é
) à un élément de la page XHTML. Lorsque vous rencontrez cette erreur avec son message très utile dans une application Web volumineuse après une requête AJAX, vous ne savez vraiment pas si c'est la faute de JQuery, AJAX ou autre chose.
Écrire du code HTML 5 ne signifie pas mélanger les balises. Si vous êtes passionné par XML et XHTML, vous pouvez toujours écrire du code HTML 5 qui ressemblera beaucoup à XML.
Au début des téléphones mobiles, XHTML était intéressant pour les appareils mobiles peu puissants. L'analyse XML est beaucoup plus facile que HTML. Désormais, avec les appareils mobiles bicœurs, peu importe s'ils doivent analyser du code XML propre valide ou du code HTML sale plein de hacks et de balises mixtes.
La spécification d'octobre 2014 mentionne la syntaxe XHTML . Pour le moment, il est difficile de savoir s'il existe un nouveau langage XHTML (pas de syntaxe ) et, le cas échéant, quelle sera la position de XHTML, ni l'adoption du nouveau standard XHTML par les principaux navigateurs.
XHTML5 est un synonyme de "HTML5 sérialisé en XML".
Diverses syntaxes concrètes peuvent être utilisées pour transmettre des ressources qui utilisent ce langage abstrait, dont deux sont définies dans cette spécification.
...
La deuxième syntaxe concrète est la syntaxe XHTML, qui est une application de XML. Lorsqu'un document est transmis avec un type MIME XML, tel que application / xhtml + xml, il est traité comme un document XML par les navigateurs Web et doit être analysé par un processeur XML. Nous rappelons aux auteurs que le traitement pour XML et HTML diffère; en particulier, même des erreurs de syntaxe mineures empêcheront le rendu complet d'un document appelé XML, alors qu'elles seraient ignorées dans la syntaxe HTML. Cette spécification définit la version 5.0 de la syntaxe XHTML, appelée "XHTML 5".
En outre, il y a un bon document sur l'écriture de polyglots HTML5 (pages pouvant être sérialisées à la fois en HTML5 et XML standard) ici:
http://dev.w3.org/html5/html-polyglot/html-polyglot.html#bib-HTML5
Et même un validateur!
Il s'appelle rarement XHTML5 de nos jours (et probablement encore plus rarement), car il s'agit toujours de HTML5, mais il existe toujours.
En termes simples: chaque modification de la spécification HTML5 est également une modification implicite correspondant à XHTML5.
HTML5 est un standard de facto et de jure ! Le XHTML est là, en standard également.
Recommandation du W3C du 28 octobre 2014
Le titre de la norme contient la chaîne "and XHTML" , nous parlons donc d’une décision finale du W3C de fusionner HTML et XHTML en une seule norme ; et cette norme explique comment sérialiser un fichier HTML dans un fichier XHTML et inversement.
XHTML
pièces et notes importantes:
application/xhtml+xml
Comme résumé par LF Sikos
XHTML5 est la sérialisation XML de HTML5. La syntaxe est décrite par la spécification HTML5. Cependant, il ne faut pas confondre XHTML5 étant une application de XML. En d'autres termes, HTML5 et XHTML5 ont un vocabulaire identique mais des règles d'analyse différentes.
Les documents HTML5 peuvent également être des documents XML valides. Ce balisage est souvent appelé langage «polyglotte». C’est le langage de chevauchement des documents qui est à la fois des documents HTML5 et XML. Les sérialisations HTML5 et XHTML5 sont compatibles entre elles. Cependant, XHTML5 a une syntaxe plus stricte. De plus, certaines parties de XHTML5 ne sont pas valides en HTML5, par exemple les instructions de traitement.
Donc, à proprement parler (et souligné par @vaxquis) "XHTML n’est qu’une syntaxe pour la sérialisation XML", il n’existe aucune DTD ou autre type de schéma XML .
Certaines personnes n'aiment pas dire "XHTML5 est XHTML". La question doit se scinder en une mini-FAQ sur "quand je peux l'utiliser comme XHTML". Ceci est un WIKI, corrigez s'il vous plaît s'il y a un "malentendu" ...
Il y a quelques problèmes dans "une conversion parfaite et générique HTML5-à-XHTML5 / XHTML5-à-HTML5", vous devez faire des "choix personnels" et des informations perdues. Comme le contexte sera différentes réponses:
Parler en vrac : OUI. Il y a beaucoup d'exemples (simples) où la cartographie est parfaite et réversible.
Strictement parlant : NON. Voir aussi le commentaire @vaxquis ci-dessous et les anciennes réponses de cette page. Quelques problèmes typiques:
Oui, vous pouvez. Même en sérialisant des fragments.
Oui, mais pas si vite et si facile que les anciennes DTD ... Voir les validateurs complexes, en tant que validator.nu
Oui, vous pouvez. Expliquons ce que vous pouvez.
Certains frameworks, comme Cocoon , utilisent des " chaînes XSLT ". Les sorties HTML5 et XHTML5 peuvent être utilisées comme "dernière sortie de la chaîne" ... Bien sûr, dans les étapes intermédiaires, HTML5 ne peut pas être utilisé car non XML, mais XHTML5 peut être utilisé.
Le problème de validation ci-dessus réapparaît ici: il n'y a pas de convention forte, donc, parfois, la "structure standard XHTML" est moins claire . Dans cette situation, vous devez faire attention dans "vous-même conventions" et être cohérent.
saveXML()
méthode?Oui. C'est une situation typique où les recommandations de sérialisation sont utilisées. Le code XML sera valide, le code XHTML5 est mappé à partir des états HTML5 et DOM d'origine ... Mais, dans certaines structures, certaines informations peuvent être perdues, comme indiqué ci-dessus.
Oui, malheureusement, XHTML est parti.
Ajouter une raison de plus à la réponse géniale de MainMa:
Lors de la création de XHTML, les applications Web devaient l’utiliser pour fournir un contenu structuré qui serait compris par les logiciels autres que les navigateurs, sans analyseurs HTML balises. Pour les ScreenReaders, le format XHTML est toujours intéressant, mais pour tout autre type de logiciel, les WebServices répondent à ces besoins et utilisent principalement XML ou JSON. SOAP a son propre schéma XML, plus simple que XHTML et orienté vers les opérations.
Aussi longtemps que je sache, il n'y a même pas une WebApp au monde qui envoie le même message HTTP aux deux navigateurs et aux autres clients. Même l'architecture REST, qui devait servir la même représentation d'un contenu dans plusieurs types de contenu en fonction des préférences du client, n'est pas utilisée pour servir les navigateurs XHTML / feed.
Dans Java EE, par exemple, en utilisant Eclipse, nous pouvons déployer un fichier war unique contenant des servlets + JSP pour servir le langage HTML, ainsi que Axis2 pour servir un WebService. Il est tout simplement plus facile de développer des logiciels distincts destinés aux navigateurs et à WebService que de disposer d'un logiciel unique et complexe qui les sert tous.
La principale raison du rejet de REST est précisément la complexité (et elle se voulait simple!) De développer un serveur qui sert le même contenu pour n'importe quel type de client sans rien savoir à son sujet. Et il est également difficile de gérer le besoin de Web d'évoluer rapidement, tout en conservant une définition stable qui ne forcerait pas les clients non-navigateurs à être mis à jour chaque fois qu'un fichier XHTML est modifié.
De la même manière, il est très difficile de développer un client non-navigateur qui analyse un document XHTML, même valide, en raison de tous ces éléments XML destinés à structurer la présentation rendue par le navigateur et non à contenir du contenu.
Si les utilisateurs de REST se plaignent déjà de la complexité XML de SOAP, beaucoup plus simple qu'un XHTML destiné à un navigateur, imaginez à quel point il est difficile de gérer XHTML pour plusieurs types de clients, serveur et côté client.
En pratique: utilisez HTML, XML si vous le souhaitez, pour créer des sites Web pour les navigateurs et tout type de solution WebService pour des clients autres que des navigateurs.
MAIS, je pense aussi que XHTML5 doit être créé. XHTML 1.1 (ok, 1.0, 1.1 est inutilisable) deviendra obsolète avec HTML5, et nous avons toujours besoin d'un validateur qui accepte les éléments HTML5 et valide le bon fonctionnement de XML.