Quelle est la relation entre SGML, HTML, XML et XHTML?
sobes.tech IA
Réponse de l'IA
SGML (Langage de Marquage Généralisé Standard) est un méta-langage de balisage, norme ISO 8879. Il définit la syntaxe pour décrire d'autres langages de balisage, mais n'est pas un langage de balisage pour les documents en soi. HTML et XML sont des applications (définitions) de SGML, mais avec des objectifs et des restrictions différents.
HTML (Langage de Marquage Hypertexte) est un langage de balisage basé sur SGML, conçu pour créer des pages web. Il possède un ensemble fixe de balises et de règles pour leur utilisation, avec des règles de syntaxe plus flexibles par rapport à XML (par exemple, il ne nécessite pas de fermer toutes les balises obligatoirement).
XML (Langage de Marquage Extensible) est un autre méta-langage de balisage, descendant de SGML, mais beaucoup plus simple et rigide. La principale différence avec SGML est que XML se concentre sur la transmission de données structurées, pas sur la présentation du document. Contrairement à HTML, XML n'a pas d'ensemble fixe de balises : elles sont définies par l'utilisateur. Il exige une conformité stricte à la syntaxe (fermer toujours les balises, imbriquer correctement, etc.).
XHTML (Langage de Marquage Hypertexte Extensible) est une reformulation de HTML 4 sous forme d'application XML. C'est-à-dire, c'est du HTML, mais avec une syntaxe plus stricte, similaire aux règles de XML. Il a tenté de combiner les avantages de HTML (pour les pages web) et de XML (rigueur, extensibilité), mais a été largement remplacé par HTML5.
Ainsi, la relation est la suivante:
- SGML est le parent/base de HTML et XML.
- HTML et XML sont des applications de SGML (ont une syntaxe définie par les règles de SGML).
- XHTML est une version de HTML réécrite en respectant les règles syntaxiques de XML.
- HTML a été créé pour afficher des documents dans un navigateur, XML pour transmettre et stocker des données structurées.
- XHTML a tenté de combiner l'affichage (HTML) avec la rigueur (XML).
En résumé, la chaîne de dépendance est : SGML -> HTML, SGML -> XML. Et aussi : HTML + syntaxe XML -> XHTML.
Exemple de structure:
<!-- Exemple HTML -->
<!DOCTYPE html>
<html>
<head>
<title>Titre</title>
</head>
<body>
<h1>Salutation</h1>
<p>Ceci est un paragraphe.</p>
</body>
</html>
<!-- Exemple XML -->
<livre>
<titre>Mon livre</titre>
<auteur>Jean Dupont</auteur>
<genre>Science-fiction</genre>
</livre>
<!-- Exemple XHTML -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Titre</title>
</head>
<body>
<h1>Salutation</h1>
<p>Ceci est un paragraphe.</p>
</body>
</html>
Faites attention à la rigueur de fermeture des balises dans XML et XHTML par rapport à HTML.