XML在Web中的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

XML与web的技术应用
前言
World Wide Web无疑是最近两年Internet上最具生命力的一种应用,由于它操作简单而又功能强大,不仅能够传输文本数据,而且可以进行声音、图象、多媒体等数据的传输,因此它受到越来越多的用户的喜爱。

随着Web文件变得越来越大越来越复杂,Web内容的提供商已经开始感受到普通的HTML已经无法提供用于大规模的商业出版所需要的扩展性、结构和数据检查功能。

由于Java语言的发展,越来越多的客户端应用要用到Java applet,由于Java applet能够往Web客户端嵌入强大的数据控制能力,这使得当前HTML在传输文件数据方面的不足更加明显。

为了满足商业Web出版的需要和解决Web技术在新的分布式文件处理领域的的应用需求,W3C开发了一种可扩展的标记语言,这就是XML(Extensible Markup Language),以用于那些目前HTML无法满足要求的应用。

本文我们介绍了XML技术的发展并且讨论了由XML 产生的新的基于Java的Web应用。

HTML和SGML
我们知道,Web上的绝大部分文件是以HTML的形式存储和传输的。

超文本标记语言HTML (HyperText Markup Language)是一种最简单的Web页面标记语言,它非常适合于标记超文本、多媒体和显示较小较简单的文件。

HTML是在于标准广义标记语言SGML(Standard Generalized Markup language)的基础上发展来的,SGML是一个用于定义和使用Web文件格式的国际标准,即ISO 8879标准。

SGML允许一个文件来描述它们自己的语法,也就是说,允许文件自己确定用在文件中的标记集合和这些标记所代表的结构上的联系。

标准的HTML规范是SGML规范的一个严格定义的小的子集合。

标准的HTML规定的固定数据的标签集合,不允许用户定义自己的扩展标签,这样用户在开发Web页面文件时不必考虑语言规范,因此可以节省开发时间和精力,但是这同时也导致了标准HTML语言在几个重要方面如可扩展性、结构和有效性等的严重不足。

●可扩展性 HTML并不允许用户根据在Web上表达一些特殊数据的需要去定义专用的标签或属性。

●结构 HTML并不支持表达数据库结构或面向对象的分级结构所需要的深层结构的规范。

●有效性 HTML并不允许利用应用来检查数据的结构上的有效性。

虽然HTML是在SGML基础上发展而来的,但它在上述几个方面的做法却与SGML的做法相反,一个标准的SGML应用应该可以支持任意复杂的SGML语言规范并且具有标准HTML中所没有的可扩展性、结构和有效性检查功能。

SGML的出现使人们有可能定义自己专用的文件格式来处理庞大而又复杂的Web文件,并且管理大的信息数据库。

然而,全部的SGML规范包含了许多一般的Web应用并不需要的可选的特性,正是这些可选的特性使SGML过于复杂而无法得到普及和被人们广泛接受。

XML应运而生
为了解决标准的HTML标记功能的不足而又弥补SGML虽然标记功能强大但却过于复杂不易实施的缺陷,World Wide Web联合会(W3C)成立了一个XML工作组来开发一套新的规范以便使Web页面开发人员能够更容易更直观的在Web上使用SGML的有用的特性。

W3C创建XML的目标是能够在Web上传输需要有任意深度和复杂性的自描述数据结构的文件。

XML(可扩展的标记语言)是一个专门为Web应用设计的简化的SGML子集规范。

XML保留了SGML在可扩展性、结构和有效性方面的主要优点,使得既保留SGML的绝大部分实用的功能又使得用户更容易学习、使用和实现XML。

XML与HTML的不同主要体现在以下三个方面:
信息提供商能够根据自己的需要随意定义新的标签和属性。

文件结构能够具有任意深度的结构层次。

3.任意一个XML文件都能够包含一个可选的描述自身的语法以供需要进行结构的有效性检查的应用使用。

XML在设计之初就要求具有最强大的表达功能、最大限度的适合教学、最大限度的易于实现,因此它一经产生就得到了用户的普遍欢迎。

XML语言并不后向兼容现有的HTML文件,但是遵守W3C HTML 3.2规范的文件能够很容易转换成符合XML格式的文件,这样用户就不必担心原有的HTML文件无法在XML环境中使用,最大限度的保持了用户在HTML方面的原有投资。

为了减少用户减少将原有的基于HTML的资源转移成基于XML的数据格式,许多厂商专门推出了一些专门的XML转换工具。

基于XML的Web应用
将促进XML发展的应用将是那些用标准的HTML无法完成的Web应用。

这些应用从大的方面讲可以被分成以下四类:需要Web客户端在两个或更多异质数据库之间进行通信的应用。

试图将大部分处理负载从Web服务器转到Web客户端的应用。

需要Web客户端将同样的数据以不同的浏览形式提供给不同的用户的应用。

需要智能Web代理根据个人用户的需要裁减信息内容的应用。

如果没有XML,为了满足上述这些应用的需要,就需要使用专门编写的script代码嵌入到HTML文件中同专门的浏览器插件或Java applet一起提供和分发。

XML在设计时是基于这样一个理念的:数据应该属于它的创建者,内容提供商应该具有最好的数据结构以便使他们不致于被束缚到某种特定的script语言中,只有这样才能为不同的写作和分发工具实现自由竞争提供一个标准的、厂商中立的页面标记语言。

第一类XML应用:数据库交换
最典型的第一类XML应用就是美国的家庭健康医疗机构的信息跟踪系统。

美国的家庭健康医疗制度比较健全,它的医疗信息系统要求对全国病人的各种医疗记录,以满足联邦医疗机构和健康维护组织的需要。

一般地,需要将病人的资料提交给家庭健康医疗机构的信息系统,该信息系统包含大量的基于纸文件的信息材料,包括病人的病史、来自各个医生、医院、药店和保险机构的帐单等。

将病人的资料输入到数据库时工作量最大的工作是需要手工将这些的材料输入到机构的数据库中。

Web技术的产生使那些盼望能够通过电子手段减少工作人员输入负担的医疗信息机构
看到了希望。

不幸的是,现有的Web应用仍然还不能满足这种应用的需要。

医院最开始为信息机构提供与类似下面的这种解决方案:登录到医院的Web站点上。

成为一个授权用户。

使用Web浏览器访问病人的医疗记录从浏览器中打印出记录。

手工的输入打印出来的数据。

今天的读者可能觉得这个方案太原始太可知笑了,但它的确是一个以较早采用医疗信息系统而闻名的一家很大的美国医院的最初的做法。

这个方案更完善一点的做法就是操作员从Web浏览器上读取病人的数据并且将这些数据直接输入到另一个浏览器窗口中的医疗信息机构的在线表格上中而不必先将数据打印出来。

这两种方案的唯一的不同在于第二种方案节省了用于打印输出的纸张,但它并不能从根本上解决问题。

较为实际一些的方案如下:登录到医院的Web站点上。

成为一个授权用户。

3.通过Web方式访问病人的医疗记录,医疗信息系统为每一个病人的记录放在一个文件夹中。

将存放记录的文件夹从Web应用中拖到内部的数据库应用中。

将其放到数据库中。

然而,这个过程用现在标准的HTML语言无法完成,原因主要有三个:
●HTML标签集合太有限了,因而无法表现或区别混合在病人的医疗史数据文件中的大量的数据库字段。

HTML不能够表现这些复杂的文件所具有的各种各样的结构。

●HTML缺乏任何能够在接受试图将自己输入到目标数据库中的应用前对其进行数据结构有效性检查的机制。

一种无缝的实现医疗记录的共享交换的技术的可行的办法是要求所有的医院和健康医疗机构使用一种由政府制定的统一的标准格式系统,然而要求所有的机构都统一的新系统来取代现有的异质信息系统几乎是不实际的。

允许异质系统之间交换数据的另一种办法是采用一种业界统一的交换格式,它为所有的输出系统制定统一的输出格式并且为所有的输入系统制定统一的输入格式。

这实际上就是SGML最初的设计目标,XML继承了这个理念。

许多行业,包括航空业、汽车业、电信业和计算机软件业等,都已经在使用统一格式的语言来进行数据交换。

一般地,W3C制定的主要的标准文件格式就是文件类型定义(Document Type Definition,DTD),它确定标记语言的标签集和语法。

这个DTD然后可以同任何用现有的编辑工具用业界标准的语言进行标记的文件一起发送,接收端的任何标准的应用都可以对其进行接收和处理。

XML的目标是提供一个系统独立、厂商独立的解决方案。

XML的出现将可以解决上述医疗信息系统的问题,其中最关键的就是XML能够针对特定的应用定义自己的标签,这也可以说是XML的最重要的功能。

有趣的是,XML 1.0规范发布的同一天SGML也声明HL7(一个由医疗IS厂商组成的标准组织)将开发一个用来解决上面例子中的问题的医疗标记语言(Health Care Markup Language)。

上面只是举了一个医疗方面的例子,其它的基于XML的第一类应用的例子还有:
●司法出版
●政府药品批准过程
●联合CAD/CAM努力
●跨系统的联合日历管理
●需要用到跨数据库操作的企业网络
●厂商和中介组织的信息交换:保险机构、安全机构及银行等。

第二类XML应用:利用Java的分布式处理
XML应用的典型代表是由半导体工业设计的数据传输系统。

每个大的半导体制造商都维护着包括它产生的所有的IC的庞大的技术信息。

为了交换这些数据,几年前由Intel、National Semiconductor、Philips、Texas Instrument和Hitachi等成立了一个工业论坛(Pinnacles Group)来设计一个专门用于半导体业的SGML规范。

这个论坛在1995年完成了这个规范,它的成员公司现在目前都在使用这个规范来进行数据的传输和交换。

可能会有人认为随着HTML变得越来越普及,Pinnacles的成员会重新考虑它们的作法,但实际上HTML的限制已经使他们确信它们的最初的思路是对的。

Pinnacles Group最早的想法使用专门的SGML标记语言产生的数据不仅仅可以将半导体数据单显示成可读的文件而且可以大促进半导体芯片的设计效率。

现人人们认识到这个方法是一个非常好的想法,它具有分布式Java applet的概念,将来的版本将允许工程师访问制造商的Web站点并且不仅下载关于某种特定的集成电路的可读的数据而且下载一个允许他们调整这些电路各种组合的Java applet。

这样的半导体应用很好的体现了XML的优点,因为:
1.它需要专门的标记。

由于半导体工具中有许多专门复杂的数据,为了表达这些数据就必须要有专门的标记标签,而这些专门的标记是目前固定的HTML标签集合所无法提供的。

2.它需要数据表达是平台和厂商中立的,这样来自各种数据源的数据才能在分布式应用中使用。

Interent本身就是一个异质的网络,组成网络的操作系统和所使的数据资源都可
能各不相同,只有成为平台独立和厂商独立的应用,XML才能用于各种异质数据库之间的通信。

3.XML的最终结果就是使得原有的必须在服务器上完成的大量的计算过程变成是由用
户自己的Web客户端同服务器的简单交互操作。

虽然有效性有时是很重要的,但它并不总是在这类应用中起到至关重要的作用,这与在数据进入数据库前必须检查其结构完整性的应用是不同的。

为了使处理过程尽可能富有效率,XML在设计时就允许有效性在它并不需要的地方是可选的而不是必须的。

上面讲的半导体应用不仅代表了一类未来的基于Java的应用──实际上人们都希望能够在客户端上对任何使用标准化数据的应用进行控制。

能够代表这类应用的最典型的的例子是:
●设计应用。

当设计者无法用其它办法通过服务器集中处理来考虑各种任务:电子、工程、建筑、菜单计划等。

●日程表应用。

当顾客用其它方法无法通过服务器来享受各种服务:飞机、火车、公共汽车、地铁;就餐、电影、戏剧和音乐会等。

这些应用正是分布式基于Java的应用可以大展身手的地方。

●商业应用。

这种应用允许消费者通过提供不同的购物原则进行选择:不动产、汽车、器械等。

●各种教育性应用。

比如那些经常被称之为“在线帮助(online help)”的应用。

●各种消费者支持应用,可以从最简单的割草机维护一直到最复杂的计算机的技术支持等各种应用。

最后一类应用的代表是Solution Exchange Standard,它是由一个由60多个硬件、软件和通信公司组成的联合会公布的一种SGML标记语言,其目的是促进技术支持信息在厂商、系统集成商和企业帮助台之间的传输和交换。

在Solution
Exchange Standard的声明中有这样的话:
“标准应该设计成灵活的,它独立于任何平台、厂商和应用,因此它能够用于交换信息而不管它们来自或到达什么样的系统。

除此之外,标准应该设计成具有很长的生命期。

SGML 提供很大的可扩展性,因此标准应该能够很容易容纳变化迅速的支持环境。


随着Web技术的发展,Java将会和XML技术相得益彰,这样的应用也会变得越来越重要。

第三类XML应用:用户选择浏览方式
第三类XML应用就是同样的数据可以以不同的浏览方式出现在浏览器中,而这些数据并不需要从再次Web服务器上下载。

这类应用的一个早期的例子是Web上的动态表格。

使用建立在面向对象数据库基础上的Web服务器,现在有可能将一个内容表格作出一个巨大的数据库,可以使用鼠标点击来打开这些数据库的“内容提要”,此时就可以看到整个数据库内容结构的更详细的信息。

一种具体的方案就是下载整个结构化的“内容提要”到客户端而不是仅仅由服务器产生的“内容提要”的浏览模式。

这样用户就能够在客户端根据自己的需要和爱好更快的对“内容提要”进行扩展、缩小、移动等操作,不仅加快了操作的速率,而且通过减少与服务器的交互操作减轻了Internet网络的负载。

Sun公司的一个工作小组将这种方案作为一个基于Java的HTML帮助浏览器的一部分,但是HTML的限制对工作组人员提出了更高的要求。

在这个应用中,“内容提要”以手工方式使用非标准的扩展标签构造(由于标准HTML中缺乏结构化因此不可能从文件中直接产生“内容提要”),然后“内容提要”条目由一个HTML页面中的评论进行包装以但在Web浏
览器中隐藏非标准的标记。

一个随HTML文件一起下载的Java applet解释隐藏的标记并且提供基于客户端的“内容提要”的浏览模式。

在实践中,用HTML设计的这种方案虽然工作得很好,但它对设计人员提高了很高的要求。

但是在一个XML环境中,“内容提要”的手工创建和隐藏非标准的标记扩展都不是必需的。

相反,标准的XML编辑器可以将“内容提要”下载到可以自动的创建和显示“内容提要”的浏览器中,这个浏览器使用一个下载的Java applet或一个标准的JavaHelp类库来完成结构化内容的创建和显示工作。

XML允许创建和定义新的标记和结构数据的能力大大扩展了数据在客户端的显示控制
方式。

如:
●一个提供有Solaris操作系统的Sparc和X86两种版本的技术手册根据用户的爱好在客户端可以显示成专门针对Sparc制作的,也可以显示成专门为X86制作的,只需用鼠标点击一下“爱好”开关即可。

●一个以多种语言提供的安装说明书可以根据用户的选择只被制造来根据用户的选择只选择一种语言显示在用户的浏览器上。

●一个包含许多注释的文件可以选择在浏览器上只显示文本、也可转换到只显示注释的模式或者这两者都显示的,所有这一切只需要通过一个菜单选择就可以完成。

●一个根据姓排序的电话号码簿可以立即转换成根据名排序的电话号码簿。

这些例子都表面一个Web设计者使用XML可以肜一种标准化的方式将结构化的数据提供给Web客户端。

第四类XML应用:Web智能代理
随着智能Web代理在结构化数据中应用的增加,未来将XML将出现一些新的应用领域。

也许这类应用中最早期方式可以就是那些大众媒体根据用户的“爱好”以一种标准的方式提供给用户的应用。

这就是有的人所说的“信息需要了解自己,信息需要了解用户”,电视传媒机构就是最典型的例子。

如某个具有500个有线电视频道的大电视公司可以提供一个个性化的电视收视指南。

那么这个个性化的电视收视指南不仅要求根据用户的爱好和其它的特性(教育级别、兴趣、职业、年龄等)以一种标准的厂商独立的方式提供给终端用户,而且这些收视指南也应该以一种允许用户端的智能代理自动选择用户最感兴趣的节目。

其中第二个要求只能通过一个使用诸多专门的标签(用于项目类别、用户类别、主要演员、长度、制造日期、特殊内容、语言等)的标准化的系统来满足,这样的要求通过标准的HTML自然是无法完成的,而使用XML则可以轻易完成。

同样的需求将于定制的报纸和许多其它的需要根据个人用户的爱好裁减内容的应用。

虽然这样的一些应用现在才刚刚出现,但随着Web技术的发展,它们将在我们的生活中起到越来越重要的作用。

这些应用的实施都需要有XML格式的数据以实现可交互操作性并且因此允许智能Web代理来为个人用户提供“个性化”的服务。

高级链接和风格单机制
由于XML是功能远超过目前的HTML的所能提供的链接和风格单机制,作为W3C SGML
工作的一个不可分割的部分,用于XML的链接和风格单机制也被提到了W3C的议事日程。

尽管链接HTML是一个广为人知的术语,似乎链接这个概念就是随着HTML的产生而产生的,其实HTML这个所谓的“超文本标记语言”实际上只实现了一小部分历史上曾经与超文本的概念有关的功能。

标准的HTML只支持最简单形式的表格──单向的链接到具有硬编码的Web站点。

这与在70年代和80年代初提出提出和创建链接这个概念时的含义有很大的差别。

在一个使用XML的真正的超文本系统中,必须为所有的超文本链接机制提供一套标准化的语法,包括:
●位置独立的命名
●双向链接
●可以在文件中进行定义和管理的链接
●可进行N项超链接(如环、多窗口等)
●聚集链接(多数据源)
●链接的属性(链接类型)
目前的CSS(cascading style stheets)提供了一个非常适合于HTML的相对低级需求的一个风格机制,但它不能支持可扩展的的结构化标记语言所需要的更广泛的需求。

与XML 的发展息息相关的另一项技术是风格单编程语言,它的主要作用是:
●可自由的扩展以便使风格单设计者可以针对无限种类的标签定义各种相应的处理。

●以使风格单设计者能够任意扩展可用的过程。

●基于标准的语法将使学习的难度降到最低
●能够解决一个XML文件的整个树结构,以使文件中的元素之间的复杂的关系可以得到很好的体现。

●完全国际化以便能够处理从左到或、从右到左、从上到下等各种阅读和显示习惯,即使在同一个文件中同时包括以上三种显示方式也应该可以正确处理。

●提供有一个复杂的参考模型,使用它可以完成很专业很复杂的页面布局特性如多栏区、旋转文本区、流动区等的设计。

●允许对定义进行部分修改以便使文件能够在Web的有效的进行传递。

文件风格语义和规范语言(Document Style Semantics and Specification
Language,DSSSL,ISO/IEC 10179标准)就是一种符合上述要求的语言。

DSSSL是一个用于未来的XML文件的风格单语言,它将进一步促进XML的发展。

结论
HTML很适应显示那些结构比较简单内容比较单一的Web文件,然而随着标准化Java应用的普及和发展,人们越来越感觉到有必要开发一种标准的、可扩展的、结构化的语言并且具有与之相适应的扩展链接和风格单机制。

XML的出现正是顺应了Web技术发展的这些要求,因此它不仅具有很大的发展潜力,而且也必将反过来进一步促进Web技术和Java技术的发展。

相关文档
最新文档