序言
长期以来,广大的Web编程者使用的一直都是HTML,但是HTML不易于扩展,已经不能适应目前网络发展需要。为了解决这些问题,1998年专门为World Wide Web的发展开发通用协议和标准的组织W3C审查并推出了另一个有关Web页面制作的标准技术规范,这种规范被称为XML。XML标准发布后,许多知名厂商都宣布了对XML技术的支持,其中包括IBM、Sun、Oracle、Microsoft等知名厂商。
XML是什么?
XML全称为可扩展的标记语言,不过实际上它和真正意义上的标记语言还有着相当多的区别,它是一种允许用户对自己的标记语言进行定义的源语言。简单来说,如果HTML是一个描述系统,XML就是用来定义这个描述系统的,使用XML就可以定义出像HTML这样的系统。
除了XML外,还有两种标记语言,分别是SGML(Stardard Generalized Markup Language,标准广义标记语言)和HTML。它们都是利用各种标记使文档规范化格式化,以便于信息的整理与交流。这些标识语言的发展过程中,SGML是最先问世的,SGML应用的前题下Web和HTML语言也应运诞生。之后人们对于Web信息交流的要求日渐复杂,HTML语言已经满足不了这种需求,XML适时的出现了。
SGML的主要应用范围是在文档中表达一些数据,它已经出现了十余年之久。HTML和XML都是从SGML发展而来的文档形式。它们之间都有一些共同之处,但是HTML是SGML的一个应用,而XML是SGML的一个精减的子集。SGML是一个用来定义在电子表格中如何对文件的结构和内容进行描述的国际标准(ISO-8879)。为了满足各种不同的页面表达需要,SGML设计得非常复杂,因此使用起来很不方便,使得其未能得到普及和大规模的应用。而XML大约只保留了SGML中80%的功能,并且大大减少了SGML的复杂性。XML使用起来非常容易,其复杂程度大约只有SGML的20%,因此它一经推出即受到一些用户的欢迎。
XML的特性
XML的出现大大丰富了HTML的描述功能,它可以描述非常复杂的Web页面。如复杂的数学公式,化学分子式等等。XML的特性主要分为4个大方面,分别是:结构化、自描述、可扩展和浏览器自适应。
1.结构化
XML是一种极端标准化的语言规范。类似于SGML,XML文件利用了一个DTD(Document type definition,文件类型定义)规范,DTD规范是一个用来定义XML文件的语法、句法和数据结构的标准。DTD还可以定义在使用每一个你所声明的元素时是必需的、可选的还是有条件的,以及可允许的属性值的范围是否有所限制,是否有一个缺省值,或者是否允许有空标记等。
XML带有一个XML语法分析器,XML语法分析器使用DTD来确定一个文件是否是规范化的,就是说它是否包括了正确定义的开始和结束标记。如果它是有效的,那么说明它完全遵守DTD规范。这种规范不允许有任何形式的变通,即使是一个小错误也会导致整个文件通不过XML语法分析器的检查。一个XML语法分析器可以通过内置的DTD,或通过使用 HTML元素外部定义的DTD,或通过使用描述逻辑规则或一个外部定义的处理指令集来自动检查Web页面是否完全符合DTD规范。
这些更严格的数据结构的好处之一在于用户可以很容易将文件的属性映射到数据结构或对象分级结构中。这就使在客户端的浏览器和数据库之间来回传输文件变得很可靠,也使用户可以使用结构化的XML文件作为一种中介体让数据在两种数据库之间灵活地进行转移。也就是说,人们得到了一种从文件中检索信息的可靠方法,这也就是人们所熟悉的语法分析。另一个优点是使各种格式的XML文件都可以被机器识别。允许机器能够识别各种格式的XML页面就可以让不同的站点之间自动共享不同格式的数据。使用DTD,用户甚至可以通过一个共同的描述连接不同格式的数据。
2.自描述
并没有任何要求规定XML文件必须是可以自描述的,只要求是结构化的就可以,但带有自描述可以增强Web的检索功能。这些描述被称作“元数据(metedata)”,它们可以包括有关一个文件的信息如安全(谁可以阅读它)、阅读范围、文件内容、文件是用什么语言写的、作者是谁以及关于这个文件的其它任何信息。虽然HTML也有一个类似的增加元数据的功能,但是它未能很好地对交换不同元数据属性的格式进行定义。
元数据的存在可以大大增强Web的检索和导航功能。通常普通的HTML完成这样一个查询过程是非常复杂的,但有了XML后Web页面就可以自动完成这一系列的查询过程。
元数据的出现使得使用软件代理变得更加简单。代理这个词在计算机方面应用得非常广,人们对它的理解也不尽统一。这里所描述的代理是指一个能够从网络上的多台机器中根据用户的需要搜集信息的一个有线程对象工具。通常代理都被认为是“智能的”、“可移动的”或者是“个人化的”。XML元数据允许一个代理变得更加个人化,由于它能够访问数据的描述,这些描述将有助于代理找到它所需要的信息。
3.可扩展性
XML的一个中心特性就体现在它的名字中――可扩展性,也被称为可扩展或可定制的能力。可扩展性一直是HTML的弱点,由于HTML被定义成一套固定的标签集,人们不可能增加新的标签而又不破坏HTML标准,但现在Web页面需要表达的内容越来越丰富而复杂,标准HTML规定的标签远远不能满足页面设计的需要。为了解决标准HTML目前的限制并且考虑到未来Web页面发展的需要,就要求新的页面标签具有可扩展性,能够创建新的标签。在XML中,标签是由DTD定义的,正是它定义了在一个文件的结构中允许有什么样的应用,例如:浏览器、检索数据库、打印引擎等。
4.浏览器自适应
如果一个XML文件是结构化的,那么这样的一个文件应该能够适应各种不同的浏览模式。目前就有了用XML开发的为了能够运行在移动电话的小显示窗口上而设计的Web页面。这种类型的文件允许使用标准的电话接口进行简单的导航处理,如使用不同拨号键来表示不同输入信息。在有必要的前提下,还可以将其作为一种将文本翻译成可读的语言格式的有效方法。
XML提供的软件功能还能够对用户输入的数据进行动态的计算和显示。人们可以将股票的价格实时地输入到一个XML格式的表格中,这个表格就能够动态地计算股票的赢亏情况,而这一切都不用借助浏览器即可完成。一些XML的专门应用开发商还在软件方面增加了更多的功能。
XML的自适应特性使得用户和开发人员都得到了更大的益处。目前,页面设计人员必须编写HTML、HDML或具有CSS(级联风格表单)的HTML等格式的文件才能在浏览器中进行显示。如果使用了XML,Web页面的制作和显示将更加方便。如CSS 2就是CSS的下一个版本,它可以利用XML的表格功能来进行多栏和多维国际化显示(用于多种不同的语言如需要从上往下阅读或从右向左阅读的日语)。有了这种风格机制,开发人员就可以为同样的数据创建多种浏览形式,以便满足不同地区和不同爱好的用户需要。
走过的路
在刚刚开发出来的时候,XML仅得到了一部分浏览器生产商和网络管理联盟的支持。其中最为人关注的要数Sun公司宣布开发XML的Java扩展部件的计划及桌面管理任务组(DMTF)发布的XML编码规范,该规范作为其基于Web企业管理(WBEM)倡议的一部分使通用信息模型(CIM)的数据使用XML。
1998年10月,微软宣布它将在Windows和Internet Explorer 5.0中包含现有的XML标准。
Netscape公司在1999年7月发行的Netscape Navigator 5.0版的核心引擎Gecko,据说也全面支持CSS和XML文档。
1999年7月,Novell宣布向NDS增加支持XML的计划,同时Bowstreet Software在基于XML和LDAP的标记语言之上开发出的Directory Service Markup Language(DSML,目录服务标记语言)得到了业界的广泛支持。
之后全球最大的电子商务供应商Oracle公司也宣布将加大对XML的支持力度,着手开发从Java到XML过渡的产品,并发布了支持XML的Oracle开发工具最新版本JDeveloper 3.1和Oracle开发工具包(Oracle XML Developer Kit)。
一点隐患
由于被应用的速度很慢,XML的性能很难为人们所熟知。日本著名洁具生产厂家东陶(TOTO)曾计划构筑与顾客以XML格式交换订发货数据的办公用品供应系统。在开发前他们专门以顾客为对象进行了“是否对XML非常了解”的调查。调查结果显示有接近9成的顾客回答“根本没有听说过XML”或“好象是能在报表软件中使用的一种格式”。这样一来,由于以XML格式进行数据交换的优势未能深入人心,所以东陶只好对采用XML的开发计划亮起了红灯。
XML的设计初衷是能够在一个“松散结合的多协议”(如Web)环境中很好地工作,在这种环境中管理人员不能对所有节点进行集中控制。虽然XML开放设计的数据交换给用户带来了极大好处,但它是以客户机上的速度为代价的。专家们认为XML的设计显然没有将效率作为格式本身的目标,于是他们带给大家一个疑问:我们究竟失去了多少效率。除此之外安全性也是人们担心的问题。
形形色色的应用
1.XML/EDI电子数据交换
EDI(Electronic Data Interchange)是用电子技术代替基于纸张的操作手段,主要用于公司之间的单据交换。XML丰富的格式语言可用来描述不同类型的单据,如信用证、贷款申请表、保险单、索赔单以及各种发票等。结构化的XML文档送至Web的数据可以被加密,并且很容易附加上数字签名。XML的安全保密措施可在EDI的应用中充分显示它的魅力,并有希望推动EDI的大规模应用。
2.化学标记语言CML和数学标记语言Math ML
CML(Chemical Markup Language)和Math ML(Mathematical Markup Language)是XML的两个分支,分别应用于描述化学和数学公式的标记语言。CML可描述分子与晶体结构、化合物的光谱结构等。而Math ML的出现则为数学家带来了福音。自Web问世以来,数学家们第一次可以将数学公式精确地显示在浏览器上,而这个愿望的实现主要是依靠Math ML。
3.OSD开放式软件描述格式
软件集合包在网上的发行一直处于试行阶段。OSD(Open Software Descriptipon)是XML的一组用来描述各种软件产品的标记集,可以详细说明软件的规格、使用说明以及可运行平台等。
4.CDF通道定义格式
通道定义格式CDF(Channel definition format)是Microsoft在IE 4.0浏览器中使用的XML数据格式并用于描述活动通道的内容和桌面部件,它主要用于指明经过通道的信息及其更新情况。CDF使不同平台的互操作成为可能,使Web发布者可以控制推(push)技术。专用的推技术将不再影响不同推技术的互操作性,这样一来从互不兼容的平台上可以获得相同的Web内容。
5.OFX开放式财务交换
OFX(Open Financial Exchange)也是XML的一种标记集,专门用于描述会计事务所与客户之间的业务往来。使用OFX,客户与会计事务所之间可以直接交换财务数据,包括电子银行和支付协议等说明文件。
XML具有许多优点,遗憾的是它目前仍不为世人所熟知。为此,许多知名厂商研究者都在为XML的推广和应用而不懈努力,并且已经在一些方面得到了应用,例如微软的.net计划就以XML来充当一种不同种类数据之间交换的基本途径。作为一种让不同的数据和平台在World Wide Web上进行平滑沟通的规范,可以预见,XML在将来一定会得到广泛的应用。(影子)
|