HTML contre XHTML

HTML et XHTML sont les deux langues dans lesquelles les pages Web sont écrites. HTML est basé sur SGML tandis que XHTML est basé sur XML. Ils sont comme les deux faces d'une même pièce. XHTML a été dérivé de HTML pour se conformer aux normes XML. Par conséquent, XHTML est strict par rapport à HTML et ne permet pas à l'utilisateur de s'en tirer avec des lacunes dans le codage et la structure.

La raison pour laquelle XHTML a été développé était des balises spécifiques au navigateur alambiquées. Les pages codées en HTML sont apparues différentes dans les différents navigateurs.

Tableau de comparaison

Tableau de comparaison HTML versus XHTML
HTML XHTML
Introduction (de Wikipedia)HTML ou HyperText Markup Language est le principal langage de balisage pour créer des pages Web et d'autres informations pouvant être affichées dans un navigateur Web.XHTML (Extensible HyperText Markup Language) est une famille de langages de balisage XML qui reflètent ou étendent les versions du langage de balisage hypertexte (HTML) largement utilisé, la langue dans laquelle les pages Web sont écrites.
Extension de nom de fichier.html, .htm.xhtml, .xht, .xml, .html, .htm
Type de média Internettexte / htmlapplication / xhtml + xml
Développé parW3C & WHATWGWorld Wide Web Consortium
Type de formatFormat de fichier de documentLangage de balisage
Étendu à partir deSGMLXML, HTML
ReprésenteLangage Signalétique Hyper TextLangage de balisage HyperText extensible
ApplicationApplication du langage de balisage généralisé standard (SGML).Application de XML
Une fonctionLes pages Web sont écrites en HTML.Version étendue de HTML plus stricte et basée sur XML.
La natureFramework flexible nécessitant un parseur spécifique HTML indulgent.Sous-ensemble restrictif de XML et doit être analysé avec des analyseurs XML standard.
OrigineProposé par Tim Berners-Lee en 1987.Recommandation du World Wide Web Consortium en 2000.
VersionsHTML 2, HTML 3.2, HTML 4.0, HTML 5.XHTML 1, XHTML 1.1, XHTML 2, XHTML 5.

Présentation de HTML et XHTML

HTML est le langage de balisage prédominant pour les pages Web. HTML crée des documents structurés en désignant la sémantique structurelle pour le texte comme les en-têtes, les listes, les liens, les citations, etc. Il permet aux images et aux objets d'être incorporés pour créer des formulaires interactifs. Il est écrit sous forme de balises entourées de crochets - par exemple, . Des scripts dans des langues comme JavaScript peuvent également être chargés.

XHTML est une famille de langages XML qui étendent ou reflètent des versions de HTML. Il ne permet pas l'omission de balises ni l'utilisation de la minimisation des attributs. XHTML requiert qu'il y ait une balise de fin pour chaque balise de début et toutes les balises imbriquées doivent être fermées dans le bon ordre. Par exemple, alors que

est valide en HTML, il faudrait écrire

Caractéristiques des documents HTML vs XHTML

Les documents HTML sont composés d'éléments qui ont trois composants - une paire de balises d'élément - balise de début, balise de fin; les attributs des éléments donnés dans les balises et le contenu réel, textuel et graphique. L'élément HTML est tout ce qui se trouve entre et y compris les balises. (La balise est un mot-clé qui est placé entre crochets).

Les documents XHTML n'ont qu'un seul élément racine. Tous les éléments, y compris les variables, doivent être en minuscules et les valeurs affectées doivent être entourées de guillemets, fermées et imbriquées pour être reconnues. Il s'agit d'une exigence obligatoire en XHTML contrairement au HTML où il est facultatif. La déclaration de DOCTYPE déterminerait les règles à suivre pour les documents.

Mis à part les différentes déclarations d'ouverture d'un document, les différences entre un document HTML 4.01 et XHTML 1.0 - dans chacune des DTD correspondantes - sont largement syntaxiques. La syntaxe sous-jacente de HTML permet de nombreux raccourcis que XHTML ne fait pas, tels que des éléments avec des balises d'ouverture ou de fermeture facultatives, et même des éléments EMPTY qui ne doivent pas avoir de balise de fin. En revanche, XHTML requiert que tous les éléments aient une balise d'ouverture ou une balise de fermeture. Cependant, XHTML introduit également un nouveau raccourci: une balise XHTML peut être ouverte et fermée dans la même balise, en incluant une barre oblique avant la fin de la balise comme ceci:

. L'introduction de ce raccourci, qui n'est pas utilisé dans la déclaration SGML pour HTML 4.01, peut confondre les logiciels antérieurs peu familiers avec cette nouvelle convention. Un correctif consiste à inclure un espace avant de fermer la balise, en tant que tel:

Spécification XHTML vs HTML

HTML et XHTML sont étroitement liés et peuvent donc être documentés ensemble. HTML 4.01 et XHTML 1.0 ont tous deux trois sous-spécifications - stricte, lâche et frameset. La différence d'ouverture des déclarations pour un document distingue HTML et XHTML. D'autres différences sont syntaxiques. HTML permet des raccourcis comme des éléments avec des balises facultatives, des éléments vides sans balises de fin. XHTML est très strict sur l'ouverture et la fermeture des balises. XHTML utilise un attribut de fonctionnalité de définition de langage intégré. Toutes les exigences de syntaxe de XML sont incluses dans un document XHTML bien formé.

Notez cependant que ces différences s'appliquent uniquement lorsqu'un document XHTML est servi en tant qu'application XML; autrement dit, avec un type d'application MIME / xhtml + xml, application / xml ou text / xml. Un document XHTML servi avec un type MIME de texte / html doit être analysé et interprété comme HTML, donc les règles HTML s'appliquent dans ce cas. Une feuille de style écrite pour un document XHTML servi avec un type MIME de texte / html peut ne pas fonctionner comme prévu si le document est ensuite servi avec un type d'application MIME / xhtml + xml. Pour plus d'informations sur les types MIME, assurez-vous de lire les types MIME.

Cela peut être particulièrement important lorsque vous servez des documents XHTML sous forme de texte / html. À moins que vous ne soyez au courant des différences, vous pouvez créer des feuilles de style qui ne fonctionneront pas comme prévu si le document est utilisé comme un véritable XHTML.

Lorsque les termes «XHTML» et «document XHTML» apparaissent dans le reste de cette section, ils font référence au balisage XHTML servi avec un type XML MIME. Le balisage XHTML servi de texte / html est un document HTML pour les navigateurs.

Comment migrer de HTML vers XHTML

Comme recommandé par le W3C, les étapes suivantes peuvent être suivies pour la migration de HTML vers XHTML (documents XHTML 1.0):

  • Inclure les attributs xml: lang et lang sur les éléments affectant la langue.
  • Utilisez la syntaxe des éléments vides sur les éléments spécifiés comme vides en HTML.
  • Inclure un espace supplémentaire dans les balises d'élément vide:
  • Inclure des balises de fermeture pour les éléments qui peuvent avoir du contenu mais sont vides:
  • N'incluez pas de déclaration XML.

En suivant attentivement les directives du W3C sur la compatibilité, un agent utilisateur (navigateur Web) devrait être capable d'interpréter les documents avec la même facilité que HTML ou XHTML.

Comment migrer de XHTML vers HTML

Pour comprendre les différences subtiles entre HTML et XHTML, envisagez la transformation d'un document XHTML 1.0 valide et bien formé en un document HTML 4.01 valide. Pour effectuer cette traduction, vous devez suivre les étapes suivantes:

  • La langue d'un élément doit être spécifiée avec un attribut lang plutôt qu'avec l'attribut xHTML xml:lang . XHTML utilise l'attribut de fonctionnalité de définition de langage intégré de XML.
  • Supprimez l'espace de noms XML ( xmlns=URI ). HTML n'a pas de fonctionnalités pour les espaces de noms.
  • Modifiez la déclaration de type de document de XHTML 1.0 à HTML 4.01.
  • Si elle est présente, supprimez la déclaration XML. (Il s'agit généralement: ).
  • Assurez-vous que le type MIME du document est défini sur text/html . Pour HTML et XHTML, cela provient de l'en Content-Type tête HTTP Content-Type envoyé par le serveur.
  • Remplacez la syntaxe d'élément vide XML par un élément vide de style HTML (

    à

    ).

Articles Connexes