网络技术发展到今日,的确已渗透到社会生活的每一个角落。而令网络如此平易近人,为大众所接受,单靠TCP/IP是远远不够的,由此,HTML——超文本标识语言便应运而生,并以其简单精练的语法、极易掌握的通用性与易学性,使WEB网页可以亲近于每一个普通人,互联网也才得以普及发展以至今日的辉煌。
然而,电子商务、电子图书、远程教育等全新领域如异军突起,迅猛发展并逐渐成为互联网世界必不可少且愈发重要的组成部分,随之而来的是WEB文件的复杂化、多样化、智能化,于是高容量、高信息量、高效率便成为网络信息传输技术发展的追求。与此同时还有另一种需求变得愈发广泛而迫切,那便是同样的数据能否根据不同用户不同需求而以不同的效果、形式表达、再现出来。举一个简单的例子。假设我们要在网上拍卖一幅油画,而在一个WEB文件中包含了有关这幅油画的全部信息,包括油画名称、油画简介、作者名称、作者简介、拍卖行信息、拍卖底价、各竞价方名称、各竞价方出价、最高价等等。而在客户端有各种用户,如拍卖行的经纪人,他并不需要任何有关油画本身的信息,而只需看到一个包含所有竞价方及其竞价的统计列表;而那些竞价方则希望看到自己喜欢的有关油画的资料,他们有的喜欢作者,有的喜欢油画的内容,有的则只喜欢画的色彩等等;另外一些"穷光蛋”也许只想过过眼瘾,看看油画即可;也许还有一些“别有用心”的人,他们根本就不关心什么油画、拍卖,只想让计算机接收到这个文件后能够自动地将其分门别类,放到自己与之相对应的数据库中。这样一来,这个WEB文件必须具有极高的复杂性与灵活性,以应付如此复杂多变的具体应用。HTML所欠缺的恰恰就是这一点,它的简单与普遍性原则虽曾使WEB的推广受益匪浅,但反过来也成为其发展的最大的桎梏,尽管人们已付诸很多努力,包括各式各样的修改扩充,如增加表格、框架、脚本语言等等,但均未能从根本上改变HTML的局限性。于是人们开始全力重新构造WEB,并相继诞生了许多新的技术,但由于种种原因大都没能普及而生存下来。唯有一项,不仅在使用中得到各方肯定,更在短短两年内迅速崛起,并得到Microsoft、 IBM等各大公司的全力支持,竞相开发,成为一股不可遏抑的席卷全球的浪潮,这便是XML——可扩展标识语言。
XML是互联网联合组织(W3C)创建一组规范,以便于软件开发人员和内容创作者在网页上组织信息,其目的不仅在于满足不断增长的网络应用需求,同时还希望借此能够确保在通过网络进行交互合作时,具有良好的可靠性与互操作性。
与HTML一样,XML也源自SGML(Standard Generalize Markup Language一种老资格的通用标记语言),它保留了SGML 80%的功能,使复杂程度降低了20%,尽管如此,XML却有着HTML语言所欠缺的巨大的伸缩性与灵活性。XML不再象HTML一样有着一成不变的格式。XML实际上是一种定义语言,即使用者可以定义无穷无尽的标记来描述文件中的任何数据元素,从而突破了HTML固定标记集合的约束,使文件的内容更丰富更复杂并组成一个完整的信息体系。
XML语言可以让信息提供者根据需要,自行定义标记及属性名,也可以包含描述法,从而使XML文件的结构可以复杂到任意程度。XML主要有三个要素:Schema(模式)、XSL(eXtensibleStylesheetLanguage可扩展样式语言)和XLL(eXtensibleLinkLanguage可扩展链接语言)。Schema规定了XML文件的逻辑结构,定义了XML文件中的元素、元素的属性以及元素和元素的属性之间的关系,它可以帮助XML的分析程序校验XML文件标记的合法性;XSL是用于规定XML文档样式的语言,它能在客户端使Web浏览器改变文档的表示法,从而不需要再与服务器进行交互通信;XLL 将进一步扩展目前Web上已有的简单链接。
良好的数据存储格式、可扩展性、高度结构化、便于网络传输是XML主要的四大特点,决定了其卓越的性能表现。由于XML能针对特定的应用定义自己的标记语言,这一特征使得XML可以在电子商务、政府文档、报表、司法、出版、联合、CAD/CAM、保险机构、厂商和中介组织信息交换等领域中一展身手,根据不同的系统、厂商提供各具特色的独立解决方案。
总的说来的XML的应用可分为四类:
一、应用于客户需要与不同的数据源进行交互时。数据可能来自不同的数据库,他们都有各自不同的复杂格式。但客户与这些数据库间只通过一种标准语言进行交互,那就是XML。由于XML的自定义性及可扩展性,它足以表达各种类型的数据。客户收到数据后可以进行处理,也可以在不同数据库间进行传递。总之,在这类应用中,XML解决了数据的统一接口问题。但是,与其他的数据传递标准不同的是,XML并没有定义数据文件中数据出现的具体规范,而是在数据中附加tag来表达数据的逻辑结构和含义。这使XML成为一种程序能自动理解的规范。
二、应用于将大量运算负荷分布在客户端,即客户可根据自己的需求选择和制作不同的应用程序以处理数据,而服务器只须发出同一个XML文件。仍以上例为论,如按传统的“客户/服务器”工作方式,客户向服务器发出不同的请求,服务器分别予以响应,这不仅加重服务器本身的负荷,而且网络管理者还须事先调查各种不同的用户需求以做出相应不同的程序,但假如用户的需求繁杂而多变,则仍然将所有业务逻辑集中在服务器端是不合适的,因为服务器端的编程人员可能来不及满足众多的应用需求,也来不及跟上需求的变化,双方都很被动。应用XML则将处理数据的主动权交给了客户,服务器所作的只是尽可能完善、准确地将数据封装进XML文件中,正是各取所需、各司其职。XML的自解释性使客户端在收到数据的同时也理解数据的逻辑结构与含义,从而使广泛、通用的分布式计算成为可能。
三、应用于将同一数据以不同的面貌展现给不同的用户。这一应用也可在上例中体现出来。它又类似于同一个剧本,我们却可以用电视剧、电影、话剧、动画片等不同形式表现出来。这一应用将会为网络用户界面个性化、风格化的发展铺平道路。
四、应用于网络代理对所取得的信息进行编辑、增减以适应个人用户的需要。有些客户取得数据并不是为了直接使用而是为了根据需要组织自己的数据库。比方说,教育部建立一个庞大的题库,考试时将题库中的题目取出若干组成试卷,再将试卷封装进XML文件,接下来便是最精彩部份,在各个学校让其通过一个过滤器,滤掉所有的答案,再发送到各个考生面前,未经过滤的内容则可直接送到老师手中,当然考试过后还可以再传送一份答案汇编。此外,XML文件中还可以包含进诸如难度系数、往年错误率等其他相关信息,这样只需几个小程序,同一个XML文件便可变成多个文件传送到不同的用户手中。
综合以上四种不同类型的应用,我们可以总结出,XML其实源自一种"数据归其主,用户尽其欢"的哲学。具体说来便是数据制作者并不考虑日后这些数据具体会有哪些用途,只是尽量全面地考虑今后有可能会被用到的信息,并将其完整、规范地制作成XML文件,服务商则不会被拘禁于特定的脚本语言、制作工具及传输引擎的囚笼内,而是提供一种标准化、可独立销售、有级别操作的领域,在那里不同的制作及传输工具将各显神通,一决雌雄,从而极大限度地满足客户的需求,成为“最信得过”的服务商。
XML的诸多优点及先进性实在令其光芒四射,备受网络开发者的青睐,微软、IBM无不对之秋波频频,大有得XML者得天下之势。尤其是微软公司行动如疾风闪电,XML1.0刚一出笼它便急不可待地吞了下去,未来的OFFICE2000、Windows2000都将完全采用XML格式,而IE4.0、IE5.0则早已金屋藏娇了。商业公司如此,国外的研究机构更加钟情有甚,如W3C(万维网联盟)、http://www.gca.org/、http://www.irt.org/等等,各类XML站点如雨后春笋、层出不穷。W3C正在号召全世界的开发人员共同对XML进行定义和开发,XML正走着与LINUX相同的发展道路,但它生逢其时,势必将比LINUX更加成功。
国外XML技术正发展得如火如荼,而国内呢,却依旧一派悄然。发展民族产业一味畏缩于国家保护的襁褓之内是永无出头之日的,永远只能是一个“大男婴”,稍经挫折,势必夭折;发展民族产业单靠豪言壮语、满腔激情是远远不够的,必须靠敏锐的思维、超前的意识方能取胜;发展民族产业单单依赖政策的开放是远远不够的,思想上的开放、不断学习世界最新的技术,永远走在世界前列,这才是成功的关键。XML技术虽然发展迅猛,但其应用仍处于初级阶段。换句话说,我们现在奋起直追,尤为未晚。
与其大梦醒时方觉晚,不如立时拼博争朝夕。为了在国内推广这项势必风靡世界的技术我们创建了一个网站——http://www.xml.org.cn/,希望借此组建一个网上虚拟组织,以便于更多的有识之士加入到我们的行列,共同将我国的XML技术推向高峰。
许慎、朱麟
——摘自:http://www.chinaunplugged.com