Ethaniel > tu mélanges un peu tout, je simplifie mais en gros : le HTML
est du SGML et le XHTML
est du XML.
SGML est un langage générique (une syntaxe, quoi) permettant de rédiger différents types de documents, ces types étant décrits dans une DTD (document type description). Le HTML est un certain type de documents SGML, dont la DTD est standardisée, c'est donc une application spécifique de ce langage générique.
En (très très) gros SGML dit d'une part : un document est constitué d'éléments, ces éléments sont délimités par des tags qui sont de la forme <blabla>, etc. ; et d'autre part : un type de document est défini par une DTD dont la syntaxe est blabla, qui définit quels éléments ont le droit d'apparaître à quels endroits du document. Un document SGML valide est alors un document dans la syntaxe SGML qui vérifie les contraintes définies par sa DTD.
Par exemple la DTD de HTML te dit qu'un document est constitué d'un élément "html" qui contient deux éléments "head" et "body", etc.
Donc HTML n'est absolument pas le « successeur » de SGML
Le XML quant à lui est une version simplifiée de SGML (qui entre autres supprime tous les tags implicites). Comme c'est plus simple, c'est moins puissant mais aussi incomparablement plus facile à parser, d'où l'intérêt. Et le XHTML n'est ni plus ni moins que la traduction du type de document HTML version 4.01 de SGML vers XML (comme HTML n'utilisait je crois pas beaucoup des features de SGML qui ont disparu en XML, à part les tags implicites, la traduction consiste essentiellement à devoir fermer tous les éléments explicitement)
edit : ce sera peut-être plus clair que mon explication résumée

:
http://www.w3.org/TR/html4/intro/sgmltut.html