我们先看看它们的历史起源:
- SGML——1986年国际标准化组织出版发布了一个信息管理方面的国际标准(ISO 8879:1986信息处理)。
- HTML 2.0——1995年11月作为RFC 1866发布
- XML 1.0——1998年,W3C发布了XML1.0规范,使用它来简化Internet的文档信息传输
- XHTML 1.0——2000年成为W3C的推荐标准
- HTML5——2014年,W3C宣布,该标准制定完成
注意:HTML 1.0在1993年6月作为互联网工程工作小组(IETF)工作草案发布,并非标准。
从上表可以看出SGML最为古老,SGML成为国际标准的接近20年之后,HTML 2.0才称为W3C的推荐标准,XML发展的最晚,SGML和HTML显然是XML的先驱。
我们先介绍一下SGML吧,SGML不是一门格式化语言,甚至不是一门特定的标记语言。SGML是允许人们创建他们自己的标记语言的一套规范。它规定的内容识别符使文本的一致性格式化非常容易,从而使文档管理系统能够快速地给信息定位。SGML非常适合于设计大量结构相似的数据工程,如目录、手册、清单、转录和统计摘要等。它使开发人员能够集合在一起方便地开发数据结构规范,创建文档类型定义(DTD),然后将它运用到整个组织内的文档。
SGML与HTML有什么关系呢?HTML4以前的版本(包含HTML4)理论上是基于SGML的一个实例,因此需要在doctype中引用相关的DTD。之所以用理论上,是因为有人说HTML4以前的版本(不包含HTML4)并不严格符合SGML。
SGML与XML有是什么关系呢?XML是SGML的一个子集,比SGML要简单,但是能实现SGML的大部分功能。而XML的出现是为了解决HTML存在问题,如:
- 不能解决所有解释数据——像是影音文件、化学公式、音乐符号等其他形态的内容
- 效能问题——需要下载整份文件,才能对文件做搜寻的动作
- 扩充性、弹性、易读性均不佳
之后发展的XHTML是基于XML的一个实例,XHTML的出现是为了解决HTML语法要求松散的问题。而如今的HTML5已经不再基于SGML。