| 经常在 Web上冲浪的用户可能对W3C这个名字并不陌生,WWW联合会(W3C)是成立于1994年的一个国际标准化组织,它的主要目标是为World Wide Web的发展开发通用的协议和标准。HTTP和HTML协议就是W3C针对WWW制定的两个非常重要的协议。由于 HTML目前已不能满足用户表达丰富的页面内容的需要,目前W3C正在审查另一个有关Web页面制作的标准技术XML(eXtensible Markup Language,可扩展标记语言)0规范。这对广大的Web开发人员来讲无疑是一个福音。XML是SGML(Stardard Generalized Markup Language,标准广义标记语言)的一个精减的子集。SGML是一个用来定义在电子表格中如何对文件的结构和内容进行描述的国际标准(ISO-8879)。为了满足各种不同的页面表达需要,SGML设计得非常复杂,因此使用起来很不方便,使得它未能得到普及和大规模的应用。而XML大约只保留了SGML 80%的功能,并且大大减少了SGML的复杂性。XML使用起来非常容易,其复杂程度大约只有SGML的20%,因此它一经推出即受到用户的欢迎。 HTML是一个用来描述Web页面的内容和结构的一种最简单的页面描述语言,它只是一种用SGML来创建Web页面描述语言的一个具体实例。换句话说,如果将HTML看成是在织毛衣,那么SGML和XML就是关于如何织毛衣的指导书。通过学习XML,你可以创建毛衣,袜子、手套等。 主要特性 XML大大丰富了HTML的描述功能,可以描述非常复杂的Web页面,如复杂的数学表达式,化学方程式等。简单的讲,XML的功能可以分为四个方面:结构化、自描述、可扩展和浏览器自适应。下面我们分别介绍这几种特性: 结构化 XML是一种极端标准化的语言规范。同SGML一样,XML文件利用了一个DTD(document type definition,文件类型定义)规范,DTD规范是一个用来定义XML文件的语法、句法和数据结构的标准。DTD还可以定义在使用每一个你所声明的元素时是必需的、可选的还是有条件的,以及可允许的属性值的范围是否有所限制、是否有一个缺省值,或者是否允许有空标记等。 XML带有一个XML语法分析器,XML语法分析器使用DTD来确定一个文件是否是规范化的,就是说它是否包括了正确定义的开始和结束标记。如果它是有效的,那么说明它完全遵守DTD规范──不允许有任何形式变通,即使是一个小错误也会导致整个文件通不过XML语法分析器的检查。一个XML语法分析器可以通过内置的DTD,或通过使用<DOCTYPE> HTML元素外部定义的DTD,或通过使用描述逻辑规则或一个外部定义的处理指令集来自动检查Web页面是否完全符合DTD规范。 那么 XML定义这些更严格的数据结构对编写Web页面的人有什么好处呢?这样的数据结构的一个重要的优点就是用户可以很容易将文件的属性映射到数据结构或对象分级结构中。这就使在客户端的浏览器和数据库之间来回传输文件变得很可靠,也使用户可以使用结构化的XML文件作为一种中介体让数据在两种数据库之间灵活的进行转移。也就是说,人们得到了一种从文件中检索信息的可靠的方法,这也就是人们所熟悉的语法分析。这种数据结构的另一个好处是使各种格式的XML文件都可以被机器识别。允许机器能够识别各种格式的XML页面就可以让不同的站点之间自动共享不同格式的数据。使用DTD,用户甚至可以通过一个共同的描述连接不同的格式的数据。这种共享对 EDI(电子数据交换)和供应链集成应用是非常理想的。webMethods公司正在开发这方面的应用。它的Web Automation Toolkit是用100%纯Java的办法来将基于Web的数据源集成到各种形式的应用中。相信随着XML的进一步标准化和应用的普及,基于XML开发的应用也会越来越多。自描述 XML的第二个重要特性就是允许有自描述信息。尽管并不要求XML文件必须是可以自描述的(只要求是结构化的),但带有自描述可以增强Web的检索功能。这些描述被称作“元数据(metedata)”,它们可以包括有关一个文件的信息如安全(谁可以阅读它)、阅读范围、文件内容、文件是用什么语言写的、作者是谁以及关于这个文件的其它任何信息。虽然HTML也有一个增加元数据的功能(即<Meta>标记),但是它未能很好地对交换不同元数据属性的格式进行定义。如,一个使用author属性的站点将不能够共享一个使用属性writer的站点的元数据。XML语言创建了几种不同的元数据格式,包括: ● RDF(Resource Desciption Format,资源描述格式)──它是一种自动描述提供哪些信息的强大的方法。● CDF(Channel Data Format,信道数据格式)── 一个将Web信息出版到桌面上的格式。● PICS(Platform for Internet Content Selection,Internet内容选择平台)──它最初是用来帮助开发人员创建一个Internet内容分级系统来防止小孩阅读那些只适合于成人阅读的Web内容。● WIDL(Web Interface Definition Language,Web接口定义语言)──允许自动完成同Web文件和表格的交互操作,提供根据标准的Web协议完成请求/应答交互操作的通用方法,或允许将Web作为一种通用的集成平台使用。元数据可以大大增强 Web的检索和导航功能。比如要通过Web搜索“一个在北京销售的价格在2000元以下的海尔洗衣机”。通过普通的HTML完成这样一个查询过程是非常复杂的,但有了XML,WEB页面就可以自动完成这一系列的查询过程。元数据带来的另一个好处就是使用软件代理。代理这个词在计算机方面应用得非常广,人们对它的理解也不尽统一。本文我们所讲的代理是指一个能够从网络上的多台机器中根据用户的需要搜集信息的一个有线程的对象工具。代理通常被认为是“智能”的、“可移动的”或者是“个人化的”。 XML元数据允许一个代理变得更加个人化,即它能够访问数据的描述,这些描述将有助于代理找到它所需要的信息。Web内容的个人化并不仅限于XML。AIM(Affinicast Interaction Manager)和Art Technology Group的Dynamo系统就是一个基于Java的Web个人化的非常好的应用,它可以让用户对元数据如何个人化Web有一种感性的认识。一个有趣的基于XML的使用的Java语言的例子是Perspecta Ispace导航器。这个Java软件让用户就好象是在XML信息空间里“飞”,在元数据keys里"pivoting"。如,假设你正在阅读Java新闻组,这时你突然决定需要了解这篇新闻组文章的作者写的所有其它的文章。Perspecta导航器允许你按自己的意愿阅读其它的文章,而不必担心查询和检索的麻烦。这个强大的检索导航软件允许用户访问任何他们喜欢的Web站点,而不是限制在Web页面提供的链接那里。 可扩展性 XML的一个中心的特性就体现在它的名字中:可扩展性,或者称之为可扩展或可定制的能力。可扩展性一直是HTML的弱点,由于HTML被定义成一套固定的标签集,人们不可能增加新的标签而又不破坏HTML标准。由于现在Web页面需要表达的内容越来越丰富、越来越复杂,标准HTML规定的标签远远不能满足页面设计的需要。为了解决标准HTML目前的限制并且考虑到未来Web页面发展的需要,就要求新的页面标签具有可扩展性:能够创建新的标签。在XML中,标签是由DTD定义的,正是它来定义在一个文件的结构中允许有什么样的应用(如风格条、浏览器、检索数据库、打印引擎等)。 Java在帮助创建用于XML的动态可扩展的浏览器方面起了很大的作用。当这样一个浏览器遇到一个新定义的标签,如<3DMOLECULE>时,浏览器可以下载一个可以解释这个新的标签的Java applet。Jumbo是允许使用XML的一个典型的Java浏览器。 浏览器自适应 如果一个 XML文件是结构化的,那么这样的一个文件应该能够适应各种不同的浏览模式。现在出现了用XML开发的能够在窝蜂电话的小显示窗口上使用而设计的Web页面。这种类型的文件允许使用标准的电话接口进行简单的导航(如按1表示FAQ,按2表示计算机信息等),如果有必要的话还可以将其作为一种将文本翻译成可读的语言格式的有效方法。类似的,用户可以使用Web Automation Toolkit(webMethods公司用纯Java开发的一个将基于Web的数据源集成和聚合到各种应用中的产品)来搜索各种新闻站点并且将一切与Java有关的新闻标题通过E-Mail发送到自己的寻呼机上。XML的结构允许将Web页面分割成若干部分以便可以将它们分别被发送到任何一种网络附加设备那里。XML提供的软件功能还能够对用户输入的数据进行动态的计算机和显示。我们可以将股票的价格实时的输入到一个XML格式的表格中,这个表格就能够动态的计算股票的赢亏情况──这一切都不用借助浏览器即可完成。一些XML的专门应用甚至在软件方面增加了更多的功能。如,CDF(信道定义格式)是一个针对内容传送的“推”系统,通过DRP(描述和复制协议),OSD(开放软件描述)可以用于对软件产品的更新。 最后,从 XML的自适应特性中得到最大好处的还是用户和开发人员。目前,要显示来自一个XML文件中的信息,页面设计人员必须编写HTML、HDML或具有CSS(级联风格单)的HTML等格式的文件才能在浏览器中进行显示。将来有了XML,Web页面的制作和显示将更加方便,如不久将推出的CSS 2就是CSS的下一个版本,它可以利用XML的表格功能来进行多栏和多维国际化显示(用于多种不同的语言如需要从上往下阅读或从右向左阅读的日语)。有了更种风格机制,开发人员就可以为同样的数据创建多种浏览形式,以便满足不同地区和爱好的用户需要,使未来的Web更加多姿多采。 |