Historique : de SGML à XML
SGML
XML hérite historiquement (et fonctionnellement) du méta-langage SGML, développé au début des années 1980 et largement utilisé dans le cadre des systèmes documentaires, notamment dans les industries de hautes technologies pour lesquelles la fiabilité de la documentation est cruciale. SGML restait un formalisme insuffisamment explicite et trop complexe, ce qui rendait difficile la programmation d'applications SGML dans des cadres plus larges. SGML laissait notamment des ambiguïtés en terme d'interprétation du balisage. XML est un langage respectant la syntaxe SGML, mais en y ajoutant des contraintes supplémentaires, afin d'en lever les ambiguïtés.
A l'origine SGML :
norme ISO (1986) créé pour la représentation de documents structurés
bien adapté aux systèmes documentaires massifs
exemple de langage SGML : HTML
Un formalisme pas assez explicite :
rend difficile la programmation d'applications SGML (navigateurs, etc.)
XML (98) : hérite de SGML en contraignant la syntaxe
Exemple : Ambiguïté en SGML
En SGML une balise ouvrante n'est pas obligatoirement fermée par une balise fermante (sa fermeture pouvant rester implicite), tandis qu'en XML toute balise ouvrante est obligatoirement fermée.
Le code SGML <A><B></B>
est ambigu car on ne sait pas s'il faut l'interpréter comme :
<A></A><B></B>
ou<A><B></B></A>
.
En XML seule l'une des deux formulations non ambiguës est autorisée.
Exemple :
HTML est un langage SGML
DocBook est à l'origine un langage SGML, porté depuis en XML
Fondamental :
XML hérite de SGML en contraignant la syntaxe, tout document XML est donc un document SGML.