构造未来Web页面的工具语言XML
作者:叶文川
1 Web热
2 用户还不能满意现在的Web
3 XML产生的背景
4 什么是XML
5 支持XML的公司和它们的开发工具
6 XML展望
Web热
Internet已经有20多年的历史了,近几年才出现了Internet热,这主要应归功于Web。Internet提供了世界范围内网络互连和通信功能,Web则是一个环球信息资源库。Web由无数的页面(Home page主页)组成,页面上的信息包罗万象,而且时时在增加,天天在更新。用户只要打开浏览器就能得到他们感兴趣的资料。Web的易用性使千家万户都能共享 Internet上巨大的信息资源。时下,人人都在谈论Web和主页,翻开报纸或新闻杂志,几乎每天都要提到Web和主页。从一个小商店到一个大公司,从研究机关到学校,无不骄傲地向他人显示着自己的主页和 Web 地址。Web和主页已经成为计算机和通信领域乃至全社会的热点。
用户还不能满意现在的Web
到目前为止,几乎所有的Web页面都是用HTML编写的。HTML简单易学又通用,句法简明紧凑,加上其扩充的表格、帧、脚本等功能,使它得以在Web主页上大显身手。但是随着Web应用的越来越广泛,HTML过于简单的弱点也越来越明显了。
1.链路丢失后不能自动纠正。 由于许多页面的URL地址经常变化,当你浏览这些页面时就会遇到烦人的404 URL地址未找到的信息。所以你不得不手工一个个地更改链接相关页面的URL地址,这大大加重了Web页面的维护工作量。
2.动态内容需要下载的部件太多。用HTML建立的页面目前还不能对其页面的外观属性,例如色彩、字体、背景等实现更新,你只能重新下载一个新的页面或Java部件。但Java保存的数据搜索引擎是无法访问的,所以在HTML页面中使用Java来显示动态内容也不是灵丹妙药。
3.搜索时间长。由于HTML页面没有类似于数据库的结构,在这样的文档资料中搜索目标时需要对全部页面的所有内容扫描,往往检索出一大堆与主题词无关的内容, 这是因为HTML无法区分信息与元信息而造成的。而且HTML不支持信息嵌套体系结构,因而限制了全文检索功能。
4. HTML缺乏对双字节或多国文字的支持,或者说支持不够。例如中文信息页面在不同的平台下会出现格式不齐等问题。
5. HTML可扩展性差。科学家无法用HTML书写数学公式、化学方程式以及分子晶体结构。
正是由于这些缺点,人们已经开始研究能改进或替代HTML的Web页面制作语言。其中最有成效的,并已初步投入使用的有:可扩展标记语言——Extensible Markup Language简称XML、叠式页面——Cascading Style Sheets简称CSS以及动态HTML即DHTML。这些语言从不同角度解决了HTML存在的问题:XML有利于信息的表达和结构化组织,从而使数据搜索更有效;CSS解决Web页面的继承和显示;DHTML则主要用于Web页的动态显示问题。本文着重介绍可扩展标记语言XML。
XML产生的背景
XML同HTML一样,都来自Standard Generalized Markup Language, 即标准通用标记语言,简称SGML。早在Web未发明之前,SGML就早已存在。正如它的名称所言,SGML是一种用标记来描述文档资料的通用语言,它包含了一系列的文档类型定义(简称DTD),DTD 中定义了标记的含义,因而 SGML 的语法是可以扩展的。SGML十分庞大,既不容易学,又不容易使用,在计算机上实现也十分困难。鉴于这些因素,Web的发明者——欧洲核子物理研究中心的研究人员根据当时(1989年)计算机技术的能力,提出了HTML语言。
HTML只使用SGML中很小一部分标记,例如HTML 3.2定义了70种标记。为了便于在计算机上实现,HTML规定的标记是固定的,即HTML语法是不可扩展的,它不需包含DTD。HTML这种固定的语法使它易学易用,在计算机上开发 HTML的浏览器也十分容易。正是由于HTML的简单性,使 Web 技术从计算机界走向全社会,走向千家万户,Web的发展如日中天。
近年来,随着 Web的应用越来越广泛和深入,人们渐渐觉得HTML不够用了,HTML过于简单的语法严重地阻碍了用它来表现复杂的形式。 尽管HTML推出了一个又一个新版本,已经有了脚本、表格、帧等表达功能,但始终满足不了不断增长的需求。另一方面,这几年来计算机技术的发展也十分迅速,已经可以实现比当初发明创造HTML时复杂得多的Web浏览器,所以开发一种新的Web页面语言既是必要的,也是可能的。
有人建议直接使用SGML 作为Web语言,这固然能解决HTML遇到的困难。但是SGML太庞大了,用户学、用不方便尚且不说,要全面实现SGML的浏览器就非常困难,于是自然会想到仅使用SGML的子集,使新的语言既方便使用又实现容易。正是在这种形势下,Web标准化组织W3C建议使用一种精简的SGML版本——XML应运而生了。
什么是XML
XML是一个精简的SGML,它将SGML的丰富功能与HTML的易用性结合到Web的应用中。XML保留了SGML的可扩展功能,这使XML从根本上有别于HTML。XML要比HTML强大得多,它不再是固定的标记,而是允许定义数量不限的标记来描述文档中的资料,允许嵌套的信息结构。HTML只是Web显示数据的通用方法,而XML提供了一个直接处理 Web 数据的通用方法。HTML着重描述Web页面的显示格式,而XML着重描述的是Web页面的内容。让我们先来看一看用XML描述天气预报的实例:
March 25, 1998
08:00
Seattle
WA
West Coast
USA
partly cloudy
46
SW
6
51
87
10
1
为了使编写的Web页面成为有效的XML文档,文中每一添加的标记必须记入一个独立的DTD文件中。当客户浏览天气预报文档时,相关的DTD文件是随着文档一起下载到客户端,客户浏览器就懂得怎样来处理它们,例如你可以从几个天气报告中计算出平均温度等,最后将结果显示出来。
DTD文件使XML页面能包含更多的内容,表现更复杂的形式。从实例中也可以看出XML页面信息是结构化的,有些与数据库结构类似,因而更具访问性,其检索结果更有针对性、更准确。
另外你也可以将URL地址定义在DTD文件中,当Web主页地址发生变化时,你只需改动DTD文件中的定义即可,而不必一一在HTML文档中改变URL地址,从而使Web的维护更方便,用户也不会遇到URL地址找不到的信息,这样一来,Web的应用更稳定。
并不是所有的DTD文件都要下载到客户端,已经制订成为标准的协议,例如在后面第六点中提到的化学标记语言CML、数学标记语言MML等是不需要DTD文件的。
除了DTD外,XML中还包括可扩展格式语言XSL(Extensible Style Language) 和可扩展链接语言XLL(Extensible Linking Language)。
XSL用于将XML数据翻译为HTML或其他格式的语言。XSL提供了一种叠式页面CSS的功能,使开发者构造出具有表达层结构的Web页面来,以有别于XML的数据结构。XSL也能和HTML一起构造叠式页面。XSL可以解释数量不限的标记,它使Web的版面更丰富多彩,例如动态的文本、跑马式的文字。此外,XSL还处理多国文字、双字节的汉字显示、网格的各种各样的处理等。
XLL是XML的链接语言,它与HTML的链接相似,但功能更强大。XLL支持可扩展的链接和多方向的链接。它打破了HTML只支持超级文本概念下最简单的链接限制,能支持独立于地址的域名、双向链路、环路、多个源的集合链接等。XLL链接可不受文档制约,完全按用户要求来指定和管理。
为了使XML易学易用,XML精简了一大片SGML难得用一次的功能。正如几十万汉字中常用的只不过八千,SGML常用的部分只占20%,XML抛弃了SGML中不常用的部分,使它一下就精简了80%。这样一来,XML的语法说明书只有30页,而SGML却有500页。
XML设计中也考虑了它的易用性,易用性来自两个方面:一方面用户编写Web页面方便,另一方面设计人员实现XML浏览器也不太困难。
总之,XML使用一个简单而有灵活的标准格式,为基于Web的应用提供了一个描述数据和交换数据的有效手段。HTML描述了显示全球数据的通用方法,而XML提供了直接处理全球数据的通用方法。
支持XML的公司和它们的开发工具
尽管XML还处在开发阶段,其标准正在由W3C组织制定,但是已经有许多公司表示全力支持XML,并开发了不少XML工具。Adobe公司的FrameMaker可以用来书写XML文档。Microsoft公司推出的IE 4.0已经可以显示、处理和编辑XML文档,Microsoft公司作出承诺,要在下一个版本的Office 软件如MS Word、Excel中支持XML。Netscape、Sun公司也不甘寂寞,纷纷表示要在他们的Web工具中支持XML。除了这些著名的公司有所行动外,其他小公司也把XML 作为一种商机,纷纷投入到XML的开发工作中。例如ArborText 公司的Cedar项目旨在开发XSL;ArborText公司和Microsoft公司一起向W3C提出了XSL的标准草案;Grif公司的Symposia Doc+则是一个编辑XML文档的可见即可得的工具。此外还有Copsol公司的XML开发工具,Norbert公司的XML句法分析器,Jade公司的XSL工具包以及支持客户/服务机应用的Serucie 98等。
XML展望
任何一项新技术的产生都是有其需求背景的,XML的诞生是在HTML遇到不可克服的困难之后。近年来HTML在许多复杂的Web应用中遇到了问题,要彻底解决这些问题,必须用功能强大的XML来替代HTML作为Web页面的书写工具。XML有利于信息的表达和结构化组织,从而使数据搜索更有效;XML可以使用URL别名使 Web的维护更方便,也使Web的应用更稳定;XML可以使用数字签名使Web的应用更广阔拓展到安全保密领域。可以认为未来的Web书写工具必定是XML。而XML的广泛使用必然能推动Web不断发展,从而开创Web应用的新时代。
Web的应用将随着XML的使用而更精彩,以下是可以预见的XML的几种应用。
XML/EDI电子数据交换
EDI(Electronic Data Interchange)是用电子技术代替基于纸张的操作手段,用于公司之间的单据交换。XML的丰富的格式语言可用来描述不同类型的单据,例如信用证、贷款申请表、保险单、索赔单以及各种发票等。结构化的XML文档送至Web的数据可以被加密,并且很容易附加上数字签名。XML的安全保密措施可在EDI的应用中充分显示它的魅力,XML有希望推动EDI的大规模的应用。
化学标记语言CML和数学标记语言Math ML
CML(chamical Markup Language)和Math ML(Mathematical Markup Language)是XML应用于描述化学和数学公式的标记语言。CML可描述分子与晶体结构、化合物的光谱结构等。而Math ML则是数学家的福音,自Web问世以来,数学家们第一次可以使用Math ML将数学公式精确地显示在浏览器上。
开放式软件描述格式OSD
和EDI的命运相仿,软件包的上网发行一直处于试行阶段。OSD(Open Software Descriptipon)是XML的一组用来描述各种软件产品的标记集,可以详细说明软件的规格、使用说明以及可运行平台等。
通道定义格式CDF
通道定义格式CDF(Channel definition format)是Microsoft在IE 4.0浏览器中使用的XML数据格式, 用于描述活动通道的内容和桌面部件,指明通道的信息及其更新情况。CDF 使不同平台的互操作成为可能,使Web发布者可以控制推(push)技术。专用的推技术将不再影响不同推技术的互操作性,这样一来,从互不兼容的平台上可以获得相同的Web内容。
开放式财务交换OFX
OFX(Open Financial Exchange)也是XML的一种标记集,用于描述会计事务所与客户之间的业务往来。使用OFX,客户与会计事务所之间可以直接交换财务数据,包括电子银行和支付协议等说明文件。
为了推动XML的使用,W3C已经批准了XML标准1.0版本,相信XML 1?0的颁布会带动大批高级的Web应用,用户必须从现在起开始考虑用XML来书写Web页面。但是XML的大量使用并不意味着HTML会马上消亡。习惯的势力是强大的,正如Cobol语言在很长的一段时间里没有退出历史舞台一样,由于现存的大量的Web页面都是用HTML书写的,HTML决不会轻易退出使用。可以预计,在未来的5年内,XML将和HTML携手并肩共同使用在Web应用的不同领域中。
发布人:netbull 来自:中国程序员网站