[摘要]论文以作者多年维护B/S结构的应用系统的经验为基础,介绍了XML语言的基础知识及相关技术。论文按照从数据库服务器中生成XML格式的数据,到XML数据的检索、转换,最终生成可以在IE浏览器中友好显示的文件的顺序介绍XML的应用,调理清晰,提纲挈领,能够引发读者继续探究的兴趣。
[关键词]XML语言,XPath,XSLT
我从事联通河北省分公司的系统维护工作已有十多年的时间,参与了97系统、综服系统、BSS系统、ESS系统、cBSS系统等诸多系统的建设和维护工作。经历了系统架构从C/S到B/S的升级。对B/S结构系统的认识也由浅入深,从后台ORACLE数据库到TUXEDO中间件,再到前台JS技术和HEML的展现都有涉猎,在了解这些技术的同时,我逐渐体会到一项技术的重要,它专注于数据传输和数据存储,许多其它的技术如XQuery、XPath、XSLT、XML Schema都是为它服务的,有了它互联网技术的发展才会方兴未艾,这项技术就是XML。在这里我希望能够和大家分享我在应用XML技术方面的心得。
一、XML语言简介
XML全称是eXtensible Markup Language,即可扩展标记语言,它是在Internet 上随处可见的流行术语,也是一项日趋成熟的技术。在现实生活中,它的应用也很多,特别用于数据管理、显示和组织方面,我们熟悉的EXCEL表,实际上就是用XML格式存储的。
大多数人对HTML比较熟悉,可能也设计过一些HTML的文档用于数据展示,其实XML的语法和HTML相似,但是它们是为了不同的目的而设计,XML用来传输和存储数据,而HTML用来显示数据。以往我们可能设计不同的应用,数据存取方法和存储格式的差异使得数据无法通用,而XML提供了一种标准化的数据存储方式,这种方式脱离于具体的应用,进而使得数据的读取方式得以标准化,这也是XML语言的主要优点,是它得以迅速推广和普及的原因。
二、XML在数据库中的应用
虽然XML文档也可以用于数据存储,但是由于XML文档是存储在计算机的文件系统里的,文件系统对于XML文档数据的共享、更新、索引存在天然的不足,所以大型的企业级应用,我们常常把数据存储在数据库中。在也就遇到一个问题,如何将数据库中的表生成XML格式数据,用于数据的前后台传输?下面我们就来解决这个问题。
由于XML的广泛应用,现在大多数关系型数据库管理系统都支持XML功能,例如IBM的DB2、Oracle,微软公司的SQL Server。可以通过SELECT语句把查询结果生成XML格式的数据。我们现在以传输局使用的SQL Server 2005说明如何实现表格式到XML格式的转换。
在SQL Server数据库中建立一个departs表,含depart、name、title三个字段。我们要的格式是depart、name、title作为元素出现,而不是作为属性出现。所以要对for xml子句进行修改。在for xml子句里有四个可选项,分别是RAW、AUTO、EXPLICIT、PATH,实际上我们需要使用PATH选项。在使用PATH选项时,要用到XPath的一些语法。
期刊文章分类查询,尽在期刊图书馆
selectdepart [@name],name [person/name],title [person/title]
from departs where depart in ("运维部","网信部")
for xml path('depart'),root('departs');
至此我们已经完美的解决了由数据表格式生成指定样式的XML数据的问题。
三、在XML中检索数据
XML用于数据的传输和存储,在XML中的数据最终要通过某种方式显示在用户面前,但是需要显示的数据可能只是XML文档的一部分数据,如某个页面只需要显示部门主任的信息,那么我们就要在XML文档里检索出title='主任'的人员信息。
在XML文档中检索信息时,用到了XPath技术,但是这项技术一般不会单独使用,它配合XQuery或XSLT技术一起使用,如我们要检索title='主任'的人员信息,可以用以下XSLT技术结合XPath技术的方式。由于XML文档格式存在层级结构,所以在XPath中为检索XML文档数据定义了不同的轴。如下面XPath表达式:/departs/depart@name='运维部'
这个XPath表达式的含义是:从根结点出发,沿着子轴,找一个名为departs的元素节点,对于找到的departs结点,在沿着子轴找名为depart元素节点,然后从众多的depart节点中选取一个name属性为‘运维部’的元素节点。
四、XML格式转换
为了将XML格式的数据在IE里显示,直接用IE打开XML模式的文档是不行的,只能将XML轮换成HTML格式,IE才能根据HTML格式中预定义的标签解析出我们想要的格式。在这里需要用XSLT技术将XML文件进行转换。
XSLT(eXtensible Stylesheet Language Transformations),可扩展样式表语言转换,是XML在许多XML工作流中一个非常重要的应用。不管数据来源如何,XML数据最终要以一种便于用户理解和使用的方式提供给他们。在应用XML数据之前,都要把XML格式转换成显示格式,这就体现了XSLT的重要性。
在第一节XML文档的例子中,要想以友好的方式将部门人员信息显示在IE里,就需要用XSLT对XML数据进行转换。在这里用到了<xsl:apply-templates>的嵌套定义,因为当输出“运维部”时,需要在其下面输出运维部的人员信息,而不需要输出网信部的人员信息,下面是生成的HTML文件,格式正是我们需要的。
到这里,我们已经成功的将XML格式转换成需要的HTML格式,可以将此文件在IE里显示,方便终端用户了解部门人员信息。
结束语
XML语言是B/S系统的重要基础,它提供了标准化的数据格式,为数据的存储、转换、传输提供了标准化的方法。掌握XML语言的用法是编写大型、通用的B/S结构应用的基础。由于篇幅的限制,本论文只是提纲挈领的介绍了XML的基础及相关技术,技术细节还需要我们去不断的学习、领会、实践,这样才能在B/S的开发领域游刃有余。
参考文献
[1]David Hunter,Jeff Rafter,Joe Fawcett 著,吴文国 译,XML入门经典(第4版),清华大学出版社,2009年
[2]孙鑫,JAVA Web 开发详解,电子工业出版社,2006年
论文作者:管斌 刘玉磊
论文发表刊物:《科技中国》2017年11期
论文发表时间:2018/5/2
标签:数据论文; 格式论文; 技术论文; 文档论文; 语言论文; 系统论文; 方式论文; 《科技中国》2017年11期论文;