之前一直很晕这些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,而是直接使用<!DOCTYPE HTML>
。