可扩展置标语言XML(eXtensible Markup Language)是万维网协会
W3C(World Wide Web Consortium)所推荐的第二代
Web语言。
简介
近年来,随着万维网协会W3C(World Wide Web Consortium)所推荐的第二代Web语言——可扩展置标语言XML(eXtensible Markup Language)的成熟和完善,人们不断拓展XML的作用领域。XML是一种源置标语言,是对HTML的扩展。它允许用户为各类数据创建自己的标记,制定各种各样的置标语言,以此来创建不依赖于平台、语言的开放数据。XML完全面向数据内容,是自描述语言,可以描述线性表、树、图形等数据结构,从而能成为不同应用系统之间的一种通用数据接口标准,便于不同系统之间信息的传输。目前基于XML的应用都是通过
DTD (Document Type Declaration)描述XML文件的整体结构以及文件的语法。DTD能起到传统数据库中模式的作用,这对于异构数据源的集成有很重要意义。随着XML的发展,DTD显露出许多缺点,如采用非XML的语法规则、数据类型贫乏、扩展性较差等。目前这一从
SGML继承来的概念正在被新的XMLSchema所逐渐替代。
Schema完全采用的XML语法结构,本身即是XML的一种应用,达到了完美的一致性和自描述性。Schema对DTD进行了扩充,定义了丰富的基本数据类型,并允许用户在这些基本数据类型基础上自己定义数据类型,进而定义数据的类型和数据取值间的多方面约束关系,从而在应用文件、对象或数据库之间的数据传输、转换时能方便地进行类型转换。XMLSchema支持开放的内容模型,这意味着在不违反语义有效性的情况下可以扩充XML文档,只要加入的元素和属性在它们各自域的前后关系中是有效的。
XML来源
XML有两个先驱——SGML和
HTML,这两个语言都是非常成功的置标语言,但是它们都在某些方面存在着与生俱来的缺陷。XML正是为了解决它们的不足而诞生的。
SGML的全称是标准通用置标语言,它从20世纪80年代初开始使用。正如XML一样,SGML也可用于创建成千上万的置标语言,它为语法置标提供了异常强大的工具,同时具有极好的扩展性,因此在分类和索引数据中非常有用。目前,SGML多用于科技文献和政府办公文件中。
但是,SGML非常复杂,其复杂程度对于网络上的日常应用简直不可思议。不仅如此,SGML非常昂贵。目前比较便宜的SGML软件之一是Adobe Frame Maker,其标准版本价格为850美元,而Adobe Frame Maker+SGML是以1995美元售出的。还有最关键的一点,几个主要的浏览器厂商都明确拒绝支持SGML,这无疑是SGML在网上传播遇到的最大障碍。
相反,HTML免费、简单,而且它获得了广泛的支持。HTML最初于1990年由CERN设计,它是一个非常简单的SGML语言,可以方便普通人的使用。而正如设计之初所构想的那样,HTML目前在世界范围内得到了广泛的应用。
正因为如此,1996年人们开始致力于描述一个新的置标语言,它既具有SGML的强大功能和可扩展性,同时又具有HTML的简单性。万维网联盟W3C决定专门成立一个SGML专家小组来从事此项工作,由Sun公司大名鼎鼎的Jon Bosak担任小组的指挥。
事实上,Bosak和他领导的专家小组对SGML所做的贡献就像Java研究组对C++做出的贡献一样。SGML中所有非核心的、未被使用的和含义模糊的部分都被删除,剩下的就成为短小精干的置标工具——XML。对于XML的描述只有26页,而当初SGML的描述却长达500页之多。而值得一提的是,对于XML的描述尽管篇幅只是SGML的二十分之一,但SGML中所有的精华都被保留了下来。
这以后,XML不断发展演化,并且从化学置标语言(Chemistry Markup Language,CML)和数学置标语言(Mathematical Markup Language,MathML)中汲取了大量的经验。1997年春天,可扩展链接语言( eXtensible Link Language,XLL)草案已被拟定,到了1997年夏天,微软也开始了关于频道描述格式(Channel Definition Format,CDF)的定义工作,这应该算是XML的第一个真正的应用。
最后,XML于1998年修成正果。W3C于1998年2月批准了XML的1.0版本,一个崭新而大有前途的置标语言诞生了。
XML优点
XML 良好的可扩展性
在XML产生之前,要想定义一个置标语言并推广利用它非常困难。一方面,如果制定了一个新的语言而期望它能生效,需要把这个标准提交给相关的组织(如W3C),等待它接受并正式公布这个标准,经过几轮的评定和修改,到这个置标语言终于成为一个正式推荐标准时,可能已经过了几年的时间。另一方面,为了让这套标记得到广泛应用,制订者必须为它配备浏览工具。这样,就不得不去游说各个浏览器厂商接受并支持新制定的标记,或者索性自己开发一个新的浏览器去与现有的浏览器竞争,无论哪个办法,都需要耗费大量的时间和工作。现在借助XML的帮助,制定新的置标语言要简单易行得多了,这也正是XML的优势所在。
大家都知道,各个不同的行业可能会有一些独特的要求。比如说,化学家需要化学公式中的一些特殊符号,建筑家需要设计图纸中的某些特殊的标记,音乐家需要音符,这些都需要单独的标记。但是,其他网页设计者一般不会用这些记号,也不需要这些标记。XML的优点就在于它允许各个组织、个人建立适合他们自己需要的标记库,并且这个标记库可以迅速地投入使用。
不仅如此,随着当今世界越来越多元化,要想定义一套各行各业能够普遍应用的标记既困难,也没有必要。XML允许各个不同的行业根据自己独特的需要制定自己的一套标记,同时,它并不要求所有浏览器都能处理这成千上万个标记,同样也不要求置标语言的制定者制定出一个非常详尽、非常全面的语言,从而适合各个行业、各个领域的应用。比起那些追求大而全的置标语言的做法,这种具体问题具体分析的方法实际上更有助于置标语言的发展。
实际上,现在许多行业、机构都利用XML定义了自己的置标语言。比较早而且比较典型的有:化学置标语言(CML由Peter Murray-Rust制订)和数学置标语言(MathML1.0版本,W3C1998年4月7日推荐标准)。
XML 内容与形式的分离
XML不仅允许自定义一套标记,而且这些标记不必仅限于对显示格式的描述。XML允许根据各种不同的规则来制定标记,比如根据商业规则,根据数据描述甚至根据数据关系来制定标记。
仍以前面关于学生列表的文档(xuesheng.dtd)为例,对两个不同类型的文档进行一个详细的比较。之前的例子中,文档是用HTML语言写的。尽管这也是一个存储、显示数据的可行的方法,但它的效率和能力却非常有限,至少存在以下3个严重的问题。
当使用XML时,以上问题就迎刃而解了。现在的标记为要表现的数据赋予了一定的含义。用这种形式存储时,数据非常简单明晰,因为它所携带的信息不是显示上的描述,而是语义上的描述。就像后面将要看到的那样,信息的显示方式已经从信息本身中抽取出来,放在“样式单”中。这样一来,上面所说的HTML的3个问题一一得到了解决。XML内容与形式分离的3个好处如下。
其他优点
XML的良好的可扩展性及内容与形式的分离是XML最突出的优点,除此以外,XML至少还有下面三个优点。
我们是通过流传至今的大量历史文献知道祖先悠久辉煌的历史,同样,我们的后代也要靠我们留下的文字资料来了解我们。可是现在大部分资料都是电子文档的形式,而且许多没有被打印下来单独存档,而只留了几份拷贝。若干年后,我们的子孙很可能面对着这些电子文档,苦于没有软件工具能够打开。如果没有XML,恐怕只有两个办法:要么返朴归真继续使用纸介质,要么不辞劳苦随着软件的更新换代来大规模地转换原有文档到最新的格式。SGML和XML不但能够长期作为一种通用的标准,而且很容易向其他格式的文档转化,它们的设计对这一问题给出了圆满的解决方案。
XML主要用途
设计XML的本意是用来存储、传送和交换数据的,而不是用来显示数据的。
创建新的置标
语言作为元置标语言,XML可以为用户定义适合本行业领域的置标语言。目前这一应用的成功例子比比皆是,例如化学领域的CML,数学领域的MathML,移动通信领域的WML等。
存储数据
XML文档是带有一定语义的
纯文本格式的文件,可以用来存储数据,也可以方便地编写应用程序来存储和读取存储的数据。由于XML对于硬件、软件、应用程序是独立的,因此也可以使用除标准HTML浏览器以外的其他应用程序使用XML文档数据,其他应用程序可以将XML文档作为数据源来访问,就像它们访问数据库一样,使得用XML存储的数据更为有用。XML良好的自描述性也使它成为保存历史档案,如政府文件、公文、科学研究报告等的最佳选择。
交换数据
使用XML可以将数据在不兼容的系统之间进行交换。在现实中,计算机系统和数据库所包含的数据格式不兼容。将数据转换成XML文档,就能够被不同类型的多种应用程序阅读,可以大大地降低应用的复杂性。XML也将成为在Internet上的企业之间交换金融信息的主要语言。
Web应用
由于XML是由SGML特别为Web简化的,因此XML文档将成为Web资源的重要组成部分,XML使得搜索引擎更为智能和准确。XML在Web方面的应用有如下方面。
XML前景展望
XML自推出以来,尤其是在1998年2月成为W3C推荐标准以来,受到了广泛的支持。各大软件厂商如IBM、Microsoft、Oracle、Sun等都积极支持并参与XML的研究和产品化工作,先后推出了支持XML的产品或者将改造原有的产品以支持XML,W3C也一直致力于完善XML的整个理论体系。
XML虽然获得了极大的支持,但是它还有很长的路要走。首先,XML的规则只是迈出了第一步,还有许多技术细节没有解决。其次,现在虽然出现了一些XML工具和应用,但是其市场反应还有待进一步观察。另外如何让更多的人迅速学会使用XML,并利用它进行开发,进而促进XML的应用也是一个问题。因此XML的出现和迅猛发展并不意味着HTML即将退出互联网舞台,由于HTML的易学易用和非常多的工具支持,HTML将在较长的时间里继续在Web舞台上充当主角。但是如果用户想超越HTML的范围,XML将是最佳的选择。
另外,由于XML是用于定义语言的元语言,任何个人、公司和组织都可以利用它来定义自己的词汇表(通过DTD或Schema表示),这虽然是XML的魅力和灵活性之所在,但同时也是XML的最大问题之所在,如果每个人、公司和组织都定义了自己的词汇表,它们之间的通信就会出现困难。因此在一些领域先后出现了一些标准化组织,它们的任务就是规范本领域的词汇表,形成统一的标准,使得在本领域内的通信成为可能。但在标准推出并得到广泛认可之前,各自为政的局面将继续下去。更糟糕的是,由于对应用的理解不一致和商业利益等原因,同一个领域也许还有多个标准化组织,它们形成的词汇表并不完全兼容,使得采取不同标准的计算机仍然难以通信。
无论如何,XML的出现使互联网跨入了一个新的阶段,它将成为因特网领域中一个重要的开发平台。XML的诞生已经而且将继续促使全新种类的应用程序的产生,而这些新的应用程序又将需要新的软件和硬件工具。可以预测,无论是在软件还是硬件上,XML都将开辟一系列的新市场,促成互联网上新的革命。