网络管理员指导:Web中的XML应用
Internet改变了世界。在Internet迅速发展的20年中,人们的生活和工作等各个方面都不知不觉地发生着巨大的变化。如今,Internet已经无处不在了,这其中WWW(World Wide Web)起了决定性的作用。
随着需求的发展,Web的功能不再停留在原有的静态数据获取上,而是朝着更高级、更智能的Web服务发展。简单地说,Web服务能够对数据进行动态搜索、采集和整理,为人们提供真正需要的信息。人们通过它可以得到个性化服务,方便地查找资料、购买产品,公司也可以通过它定购原材料、获取订单、出售商品。
人们渐渐地发现,由于世界上存在着如此多的、完全不同的客户平台,在不同平台间交换数据,同时还要保证数据的完整和服务的高效,这是件令人头痛的事情。在大型Web应用中,工程师们往往被数据格式的转换弄得疲惫不堪,即便是整理完成的数据,如何让各种客户端都能正确获取和理解也是不小的麻烦。最终,这一问题成为制约Web Service发展的瓶颈。因此,人们需要一种平台无关的、能够同时被人类和机器所理解和处理的文本数据格式。于是,XML诞生了。
关注XML
XML(eXtansible Markup Language,可扩展标记语言)是一套用来标记文档的语法,它和现在的Web标记语言HTML相同,都是由SGML发展而来(由于SGML过于求大、求全,未能广泛应用),同样由W3C(World Wide Web Consortium万维网联盟)制定标准。其目标是统一未来跨平台数据交换的格式,并取代现有的HTML成为下一代Web页的标准。
XML和HTML都采用标记来表示数据,但本质上却完全不同。HTML标记由W3C管理,只有W3C能够定义、扩展和管理这些标记,因此,如果自定义的标记不被W3C承认,也就没有任何价值。同时,HTML本身不能帮助理解或管理数据,例如,要从HTML文本中提取有效数据完全凭借人类的思维,我们无法编写这样的程序,让它从关于书本的HTML文本中获取作者的名称。因为有的作者可能用
XML正好相反,它的标记是可自定义的、可扩展的和可识别的。例如,我们可以在关于书籍的XML文本中,定义
另外,XML比HTML更加严格。它不允许出现不配对的标记,如常用的回车符
,在XML中,要么是
,要么是
。也不允许标记的堆叠,如
XML可以应用到Web,但不限于Web,就像我们看到的那样,通过XML最终在前所未有的范围内,实现统一的数据格式规范和完善的处理方法。
由于XML的可扩展标记非常灵活,能够正确解析它的浏览器非常稀少。现有的XHTML做出了尝试,它是一种比XML更加严格的超文本标记语言,但它毕竟还是属于固定标记的文档,在数据交换中还不能和XML相提并论。正是由于目前的浏览器对XML的支持不够,造成XML在Web中的应用受到了严重限制,因此,将XML应用到Web必须采用其它的手段。目前,被广泛应用的主要包括W3C自己制定的XSL和一些服务器端脚本,如PHP、JSP等。下面谈谈这些Web中的XML应用方法,希望能够达到抛砖引玉的目的。
XML与XSLT
首先,我们来看看由W3C制定的XML转换标准—XSL(eXtansible Style Language,扩展样式表语言)。它的作用就是让XML看上去像现有的HTML一样多姿多彩。在此基础上,发展了三种XML应用:XSLT、Xpath和XSL-SOXSLT(XSL Transformation)负责将XML文档动态地转换为HTML格式,并发送给浏览器。后两种也具备类似功能,由于应用不及XSLT广泛,就不再介绍。
要使用XSLT,必须在XML文档中指出。例如,要使一篇XML文档被浏览器请求时呈现类似于HTML的效果,必须在XML文档前面指定相应的XSL文件,如下所示:
<?xml version=“1.0”>
<?xml-stylesheet type=“text/xml” href=“../xslt/normal.xsl”>
在相应路径中,应当有一个合适的normal.xsl文档。
XSLT使用模板完成XML到HTML的转换。例如,想要将文档中的
// 文件名:normal.xsl
<?xml version=“1.0”?>
xmlnsxsl=http://www.w3.org/TR/WD-xsl,注意区分大小写 //-->
0条评论