XML的诞生与流行
XML的诞生源自W3C不满于HTML语言对信息内在含义表现的贫瘠与局限性,基本上HTML只是一套定义数据外部表现格式的标记集,尽管人可以通过上下文理解HTML文档的涵义,但计算机却无法自动通过HTML标记知道其数据所要表达的内容并加以处理。然而随着互联网的高速发展,有越来越多的应用需要计算机具备自动理解Web文档的功能,在这种情况下,一种新的互联网语言呼之欲出。最简单的,我们可以想到,既然HTML已有的标记都是用于表征数据的显示格式的,当然也可以制定各种扩展标记以体现数据的实际涵义及相互关系,不过如要将万事万物都用特定的标记加以区分并汇于同一套标记集中,显然是不太现实的,于是W3C想到一种更好的方法,制定一种可以无限生成新标记的元语言,有了这套元语言,就再也无需担心会有某种数据无法用已有的标记表征了。1996年,以Jon Bosak为首的XML工作组,明确界定了下一代Web语言的发展定向:
·XML应该可以直接用于因特网(Internet)。
·XML应该支持大量不同的应用。
·XML应该与SGML兼容。
·处理XML文件的程序应该容易编写。
·XML中的可选项应无条件地保持最少,理想状况下应该为0个。
·XML文件应该是人可以直接阅读的,应该是条理清楚的。
·XML的设计应快速完成。
·XML的设计应该是形式化的,简洁的。
·XML文件应易于创建。
·XML标记的简洁性是最后考虑的目标。
1998.2月XML小组发表XML 1.0规范,如上所述,新的XML其实是SGML(标准通用标记语言)的一个子集,SGML是一种早期的创建标记语言的语言,它可以定义标记的数据类型、相互关系、属性、元素结构、以及标记本身的格式——它是一种完全可装配的元语言。
SGML提供了描述文档和创建新的一致性衡量准则所必要的公共框架,它集中于信息的结构并通过结构而不是表现形式来约束数据,SGML具有以下特性:
·不提倡一种特殊的文档结构;
·不存在必须使用的有限标注集;
·不限制创造新文档标准的潜力。
几乎所有对象信息都可以通过SGML为其所创建的标记集来精确表征,然而,即使为了表示简单的客观事物,也需要通过大段的SGML代码来定义,其中包含了对标记元素及对象结构的不同方面的约定与描述,尽管选项使语言更灵活,功能更强,但也非常复杂,由于SGML结构完整性的定义,这种描述几乎是无法简化的。显然,如果直接引用SGML来表示Web文档,不仅会使文档变得繁琐冗长,而且对Web页面制作人的专业水准也有着很高的要求,这显然会大大降低互联网的大众性与亲和力。新的XML规范不仅利用了SGML的创造性在Internet上方便地实现多元化数据的传播与交流。同时也保持WEB原有的广泛性、简易性。事实上,简化后的XML只使用标准的树型结构来表征对象信息,并将标记元素可任选的特征数目减少到了最少(通常为0)。当然,如果使用XML表征内部关系非常复杂的实体,便有可能损失对实体中某些特性及复合结构信息的充分描述,并带来结构上的不合理性,这种局限是XML规范本身所决定的。
尽管互联网是XML最大的应用方向,然而XML并不仅仅只是HTML的下一个版本,XML在最大程度上继承了SGML的优点——即XML是完全面向数据的。XML纯用于规范化定义数据对象,一个定义完整正确的XML对象具有良好的内聚性,并完全独立于数据的外部表现形式,除非这种联系是定义者特意添加的(如将显示形式作为元素的一种属性)。因此除了互联网之外,也完全可以在其它应用环境中引入XML,而没有附加的制约。事实上,在XML产生以后,除了某些复杂度极高的特殊应用环境,XML显然是较SGML更有效率、更实用、易于流行的信息流标准。