之前一直很晕这些ML之间有什么关系,查了很多资料后终于弄清了关系。XML、HTML是SGML的子集,而XML和HTML的结合就是XHTML。另,HTML5自立门户。
SGML
总的来说,之前所有语言都是由SGML定义的,SGML标准通用标记语言(Standard Generalized Markup Language)是可以定义标记语言的元语言。SGML就定义了一种语言的语法,比方说XML的注释如何定义等等,这个定义语法的文档就是DTD(Document Type Definition)。
而XML和HTML(指HTML4.0)就是被SGML定义的两种语言,大的区别就是XML是定义数据用的,HTML是定义外观的。另外,由于历史起因,HTML的语法比较松散,XML的语法比较严格,比方说属性名的大小写敏感等。正因而,W3C决定规范一下HTML的语法,就创造出了XHTML:使用XML的严格的语法进行HTML的外观定义。即:XML+HTML→XHTML。HTML5
XHTML由于过于严格的语法所以发展不如意,到现如今,W3C 在制定 HTML5 标准时,希望摆脱 SGML 的少量无用的功能和公告,并延续 HTML4 的风格,而非严格的 XHTML 的风格。因而在HTML5中不需要用到DTD,而是直接使用。