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

ExempleAmbiguï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.