web-dev-qa-db-fra.com

Comparer / contraster HTML, XHTML, XML et HTML5

Ok, donc je ne suis pas sûr de la différence entre ces langues. Quelqu'un pourrait-il clarifier? Je sais que XML a une balise définie par l'utilisateur et html est prédéfini, mais c'est essentiellement l'étendue de mes connaissances.

Je sais que HTML5 est censé remplacer HTML, mais XML n'était-il pas censé le faire également? Fondamentalement, quelles langues sont ici un substitut à l'autre, et quel complément? XML remplace-t-il XHTML?

25
GiH

HTML est le langage de balisage HyperText, qui est conçu pour créer des documents structurés et fournir une signification sémantique derrière les documents. HTML5 est la prochaine version de la spécification HTML.

XML est le langage de balisage extensible, qui fournit des règles pour créer, structurer et encoder des documents. Vous voyez souvent que XML est utilisé pour stocker des données et permettre la communication entre les applications. Il est indépendant du langage de programmation - tous les principaux langages de programmation fournissent des mécanismes de lecture et d'écriture de documents XML, dans le cadre du noyau ou dans des bibliothèques externes.

XHTML est un code HTML basé sur XML. Il remplit la même fonction que HTML, mais avec les mêmes règles que les documents XML. Ces règles concernent la structure du balisage.

32
Thomas Owens

XML est un méta-langage. Une méta-langue est une langue qui fournit un mécanisme de syntaxe pour créer d'autres langues sans contraindre l'expression à travers une grammaire prédéfinie. XML est défini dans le langage doctype SGML. Le respect des exigences de syntaxe strictes de XML est appelé bien formé, qui est une pratique de précision précise par rapport à un ensemble d'exigences déclaré dans le but d'obtenir un traitement uniforme d'un document à travers différentes applications et agents utilisateurs.

SGML est un méta-langage comme XML et est même le parent de XML. SGML offre une forme large pour définir les données dans les utilisations de la syntaxe sans fournir de convention de typage des données. Contrairement à SGML, XML présente une syntaxe rigide et extrêmement simplifiée qui ne prête pas à confusion. XML propose également des définitions de type de données également contrairement à SGML. Les éléments en XML fournissent une étendue d'espace de noms de manière lambda, tandis que SGML ne prend pas en charge les espaces de noms.

Doctype est un langage basé sur SGML qui utilise une syntaxe complètement différente de XML pour définir les grammaires du langage de balisage et les conventions de type de données générales pour distinguer les éléments de données du texte.

Le schéma XML est un langage écrit XML qui permet des définitions de grammaire de langage avec une forme structurelle précise en plus de conventions de typage de données spécifiques pour les éléments, les structures et les attributs. Les langues écrites dans le schéma sont structurellement conscientes de soi, contrairement aux vocabulaires SGML, de sorte qu'elles connaissent leurs propres exigences internes à différents points de la structure. Les langages définis par le schéma peuvent être immédiatement ouverts à la validation par référence au document de schéma, en raison de la conscience de soi structurelle, tandis que les langages définis dans Doctype nécessitent un logiciel sans rapport avec des définitions statiques pour pouvoir effectuer la validation.

HTML 1.0 a été écrit en texte anglais et n'est ni SGML ni XML.

HTML 2 - 4 sont écrits en SGML et offrent des flexibilités SGML, telles que des balises majuscules ou des balises de début sans balise de fermeture correspondante.

XHTML 1.0 est une forme définie par SGML du langage HTML avec des exigences étendues pour briller la compatibilité progressive vers la syntaxe XML.

XHTML 1.1 est le langage HTML défini en XML avec des exigences de bonne forme XML.

HTML5, comme HTML 1.0, n'est défini à l'aide d'aucun méta-langage. Il est écrit en anglais et bouge radicalement en opposition aux exigences uniformes d'une sérialisation XML. HTML5 semble avoir été créé pour la convivialité et la diffusion des médias sans tenir compte de la structure ou des hiérarchies linguistiques.

XHTML5 signifie "XML Serialization of HTML5" et est une syntaxe XML pour HTML5 qui peut être utilisée lors de la sérialisation d'un arbre DOM en HTML5 (un arbre DOM perd la possibilité de distinguer les balises soupe soupe et les balises correctement) et doit adhérer à la règles et espaces de noms XML plus stricts. Il est destiné à faciliter la lecture de la machine ou l'échange de données, ou lorsque deux documents HTML5 doivent être comparés. Il est spécifié avec et dans la norme HTML5 (merci à hsivonen de l'avoir signalé).

10
austin cheney

XML est une syntaxe: il définit comment vous écrivez des données, mais pas quelles données vous pouvez écrire. Par exemple:

<something otherthing="stuff">content</something>

Le HTML est un vocabulaire: il définit quels types d'éléments vous pouvez écrire (par exemple BODY, P, LI, etc.) mais n'est pas très strict sur la façon dont vous l'écrivez (voir " Tag soup ") ;

XHTML est (approximativement) le vocabulaire HTML sauf écrit en utilisant la syntaxe XML (beaucoup plus stricte). Il est donc (car la syntaxe est plus stricte) plus facile à analyser pour les logiciels, mais il est plus difficile pour les non-programmeurs d'écrire correctement. Il n'est pas très populaire, car Internet Explorer ne le prend pas correctement en charge.

HTML5 est la version de prochaine génération de HTML (la version actuelle de HTML 4), toujours en brouillon, pas encore une norme, partiellement prise en charge par certains navigateurs (et donc expérimentale). HTML5 prendra explicitement en charge la diffusion soit en utilisant la syntaxe XML, soit en tant que soupe de balises.

8
ChrisW

Vous pouvez google ou utiliser wikipedia pour une définition exacte. Je vais juste donner un exemple:

HTML:

<DIV id=header>header</div>

XHTML:

<div id="header">header</div>

HTML 5:

<header>header</header>

XML est la syntaxe sur laquelle est basé XHTML:

<something otherthing="stuff">content</something>
6
marcgg

Tout d'abord, il y avait SGML , l'ancêtre conceptuel du HTML et du XML, qui est un

  • S standard (ISO 8879: 1986), afin que des organisations et des programmes disparates puissent échanger des documents
  • G énéralisé, afin que les utilisateurs puissent définir de nouvelles balises
  • M arkup, afin que le contenu du document puisse être complété par des informations structurelles décrivant le contenu
  • L anguage, afin qu'il y ait une grammaire qui définit le balisage.

Ensuite, HTML a été créé comme un ensemble spécifique de balises SGML utilisé pour définir la façon dont les pages Web doivent être présentées.

XML a été créé pour simplifier SGML.

XHTML a été créé pour refondre HTML en XML bien formé (nécessitant des balises fermantes, par exemple, qui n'étaient pas strictement nécessaires en SGML et HTML).

HTML 5 est la version actuelle de HTML. Il rejette la motivation derrière XHTML et permet une spécification de balisage plus lâche que les règles de XML ne l'exigeraient.

5
kjhughes

Voir le graphique pour le deux sérialisations de HTML5 langage abstrait. alt text

4
karlcow

HTML est un langage de balisage pour les pages Web, tandis que XML est un langage de balisage pour les informations. XML n'a jamais été conçu comme un remplacement direct de HTML, il a une portée différente.

HTML 5 n'est que la dernière version de HTML. La version "actuelle" de HTML (celle prise en charge par pratiquement tous les navigateurs utilisés) est la 4.01.

XHTML est une norme basée sur HTML qui a été ajustée pour se conformer aux règles plus strictes de XML. Un document XHTML est également un document XML et s'il est correctement écrit, il peut être analysé par n'importe quel analyseur XML.

2
Guffa

HTML est un langage de balisage conçu pour les pages Web. HTML 5 est la cinquième version de HTML.

XML est un autre langage de balisage. XHTML est un dialecte de XML qui ressemble étroitement à HTML et était censé le remplacer, mais en raison d'un support médiocre, il existait simplement à côté de HTML.

1
Chuck