论文部分内容阅读
[摘要]以数字化校园建设作为背景,基于XML在集成异构数据源、数据的多种显示等方面的重要应用,探讨数字化校园建设中的不同平台/系统之间的数据交换及信息的处理和发布等方面的重要技术及解决方法。
[关键词]校园网 XML 数据交换
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0420052-01
数据处理是数字化校园网建设的核心部分。在数字化校园网的建设中,可以用XML统一表示来自不同数据源的数据,来实现学校各部门之间以及部门内部各系统间的数据共享、数据交互。但是XML文档本身只是一个文本文件,它需要能识别XML格式化信息的解析器来解析并提取其中的内容。
在J2EE架构中,有两种基本方式对XML数据进行解析并读入到某个对象模型中,它们是DOM方式和SAX方式。DOM和SAX是两种最流行的应用于XML的编程API,这两种技术的根本差别在于客户应用程序得到XML文档数据的方式不同。SAX是事件驱动模型,这就意味着解析器识别出文档特性时,客户应用程序不断接到通知。相反地,DOM模型是基于对象的,整篇XML文档作为分层次排列的对象来解析和存储,客户应用程序可以随机访问这些对象。
在应用程序的开发过程中,应用程序不是直接对XML文档进行操作的,而是首先由XML解析器对XML文档进行解析,然后,应用程序通过XML解析器所提供的DOM接口或SAX接口对解析结果进行操作,从而间接地实现了对XML文档的访问。
我们在进行数字化校园的系统开发时,根据具体的情况分别用到这两种解析器,下面对这两种解析器的解析步骤和相应的操作进行介绍。
一、基于DOM API的数据处理
(一)使用DOM解析XML文件
为了使用XML文件中的信息,必须解析文件以创建一个Document对象。在javax.xml.parsers中,jdkl.4提供的DoumentBuilder和DocumentBu
-ilderFactory组合可以对XML文件进行解析,转换成DOM文档。Document对象是一个接口,因而不能直接将它实例化;一般情况下,应用程序会相应使用一个工厂。
具体的解析步骤如下:
1.创建一个解析器工厂,以利用这个工厂来获得一个具体的解析器对象。
2.创建DocumentBuilder对象,这个对象代表了具体的DOM解析器。
3.解析XML文件以创建Document对象。
这样就创建了一个XML的DOM文档树,然后可以开始构建应用程序来对DOM的文档树进行访问了。利用DOM,开发人员可以进行动态地创建 XML文档、遍历结构、添加、修改、删除内容等操作。DOM面向对象的特性,使人们在处理和XML解析相关的事务时节省大量精力,是一种符合代码重用思想的强有力的编程工具。
(二)基于DOM API的节点编辑
在对XML文档进行解析并获得XML文档的Document对象后,就可以开始构建应用程序来对DOM的文档树进行访问了。目前Sun公司推出的jdkl. 4测试版中的java API遵循了DOM level 2 Core推荐接口的语义说明,提供了相应的Java语言的实现。在rg. xml. dom中,jdkl. 4提供了Document,DocumentType,Node,NodeList,Element,Text等接口,这些接口均是访问DOM文档所必须的。我们可以利用这些接口创建、遍历、修改DOM文档。
二、基于事件的数据处理
(一)SAX解析步骤
SAX在读取XML流的同时处理它们,而分析这个代码片断的SAX处理器一般情况下将产生以下事件:startDocument、endDocument、startElement、endElement和characters。SAX API允许开发人员捕捉这些事件并对它们做出反应。
SAX处理涉及以下几步:
1.创建事件处理程序。
2.创建SAX解析器。
3.将事件处理程序分配给解析器。
4.解析文档,同时向事件处理程序发送每个事件。
(二)事件驱动的文档解析实例
SAX解析器对XML文档进行解析,将要使用的部分数据提取到应用程序,为了保存数据以便其他程序能够调用数据,我们可以采用Java提供的散列表类Hashtable来保存解析XML文件后的所有节点名字以及节点的数据值。哈希表HashTable是从Dictionary派生出来的,它具有一系列的关键字和数值,一个关键字对应一个数值,识别主要是通过对象的哈希代码hashCode识别。
程序中使用Hashtable类存储数据时,首先要用Hashtable()创建一个散列表对象,然后使用put()方法将数据填入该对象中,查询数据可以使用get方法。
三、数据交换流程的设计
XML为在不同的数据库之间传递信息提供了理想的机制。从本质上讲,数据库是专有的,即每个数据库有不同的元素命名结构,不同的规格化级别,甚至描述枚举信息的方法也不尽相同。利用DOM/SAX能够简化各种数据库之间信息传递的方式。通过将DOM/SAX作为公共的传输机制,每个数据库只需要以XML作为中介导入和导出即可。
用XML作为数据交换的中介,系统可以屏蔽掉后台的多种数据源,用统一的XML文档呈现给用户。接收数据方根据数据XML文档的类型可以对数据XML文档进行任意的业务处理。在数字化校园建设中,为了使基于XML的业务数据交换成为可能,就必须实现数据库的XML数据存取,并且将XML数据同应用程序集成,进而使之同现有的业务规则相结合,并且加以利用,从而完成学校各部门之间以及学校与教育主管部门之间的交换数据,实现教务数据的上传下发,真正使教育信息化成为一体化应用,不再是信息孤岛。
开发基于XML的动态应用(如动态数据交换、动态信息发布),就是要能从数据库中取出需要交换的数据,并动态产生XML文档在各个应用程序之间传递,不同应用系统中不同语言编写的应用程序就可正确识别和解析文档中的数据,实现数据的动态交换。
以上是在基于XML的数据交换技术在校园网中进行共享数据的一种解决思路,希望能够抛砖引玉,寻求一种更好的解决方案。
参考文献:
[1](美)Natanya Pitts,徐晓梅、龚志翔、王晓云等译,XML技术内幕,北京:机械工业出版社,2002.
[2]章明、许青松、沈锡臣,基于XML的数据交换共享平台模型,清华大学学报(自然科学版),2003.01.
[关键词]校园网 XML 数据交换
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0420052-01
数据处理是数字化校园网建设的核心部分。在数字化校园网的建设中,可以用XML统一表示来自不同数据源的数据,来实现学校各部门之间以及部门内部各系统间的数据共享、数据交互。但是XML文档本身只是一个文本文件,它需要能识别XML格式化信息的解析器来解析并提取其中的内容。
在J2EE架构中,有两种基本方式对XML数据进行解析并读入到某个对象模型中,它们是DOM方式和SAX方式。DOM和SAX是两种最流行的应用于XML的编程API,这两种技术的根本差别在于客户应用程序得到XML文档数据的方式不同。SAX是事件驱动模型,这就意味着解析器识别出文档特性时,客户应用程序不断接到通知。相反地,DOM模型是基于对象的,整篇XML文档作为分层次排列的对象来解析和存储,客户应用程序可以随机访问这些对象。
在应用程序的开发过程中,应用程序不是直接对XML文档进行操作的,而是首先由XML解析器对XML文档进行解析,然后,应用程序通过XML解析器所提供的DOM接口或SAX接口对解析结果进行操作,从而间接地实现了对XML文档的访问。
我们在进行数字化校园的系统开发时,根据具体的情况分别用到这两种解析器,下面对这两种解析器的解析步骤和相应的操作进行介绍。
一、基于DOM API的数据处理
(一)使用DOM解析XML文件
为了使用XML文件中的信息,必须解析文件以创建一个Document对象。在javax.xml.parsers中,jdkl.4提供的DoumentBuilder和DocumentBu
-ilderFactory组合可以对XML文件进行解析,转换成DOM文档。Document对象是一个接口,因而不能直接将它实例化;一般情况下,应用程序会相应使用一个工厂。
具体的解析步骤如下:
1.创建一个解析器工厂,以利用这个工厂来获得一个具体的解析器对象。
2.创建DocumentBuilder对象,这个对象代表了具体的DOM解析器。
3.解析XML文件以创建Document对象。
这样就创建了一个XML的DOM文档树,然后可以开始构建应用程序来对DOM的文档树进行访问了。利用DOM,开发人员可以进行动态地创建 XML文档、遍历结构、添加、修改、删除内容等操作。DOM面向对象的特性,使人们在处理和XML解析相关的事务时节省大量精力,是一种符合代码重用思想的强有力的编程工具。
(二)基于DOM API的节点编辑
在对XML文档进行解析并获得XML文档的Document对象后,就可以开始构建应用程序来对DOM的文档树进行访问了。目前Sun公司推出的jdkl. 4测试版中的java API遵循了DOM level 2 Core推荐接口的语义说明,提供了相应的Java语言的实现。在rg. xml. dom中,jdkl. 4提供了Document,DocumentType,Node,NodeList,Element,Text等接口,这些接口均是访问DOM文档所必须的。我们可以利用这些接口创建、遍历、修改DOM文档。
二、基于事件的数据处理
(一)SAX解析步骤
SAX在读取XML流的同时处理它们,而分析这个代码片断的SAX处理器一般情况下将产生以下事件:startDocument、endDocument、startElement、endElement和characters。SAX API允许开发人员捕捉这些事件并对它们做出反应。
SAX处理涉及以下几步:
1.创建事件处理程序。
2.创建SAX解析器。
3.将事件处理程序分配给解析器。
4.解析文档,同时向事件处理程序发送每个事件。
(二)事件驱动的文档解析实例
SAX解析器对XML文档进行解析,将要使用的部分数据提取到应用程序,为了保存数据以便其他程序能够调用数据,我们可以采用Java提供的散列表类Hashtable来保存解析XML文件后的所有节点名字以及节点的数据值。哈希表HashTable是从Dictionary派生出来的,它具有一系列的关键字和数值,一个关键字对应一个数值,识别主要是通过对象的哈希代码hashCode识别。
程序中使用Hashtable类存储数据时,首先要用Hashtable()创建一个散列表对象,然后使用put()方法将数据填入该对象中,查询数据可以使用get方法。
三、数据交换流程的设计
XML为在不同的数据库之间传递信息提供了理想的机制。从本质上讲,数据库是专有的,即每个数据库有不同的元素命名结构,不同的规格化级别,甚至描述枚举信息的方法也不尽相同。利用DOM/SAX能够简化各种数据库之间信息传递的方式。通过将DOM/SAX作为公共的传输机制,每个数据库只需要以XML作为中介导入和导出即可。
用XML作为数据交换的中介,系统可以屏蔽掉后台的多种数据源,用统一的XML文档呈现给用户。接收数据方根据数据XML文档的类型可以对数据XML文档进行任意的业务处理。在数字化校园建设中,为了使基于XML的业务数据交换成为可能,就必须实现数据库的XML数据存取,并且将XML数据同应用程序集成,进而使之同现有的业务规则相结合,并且加以利用,从而完成学校各部门之间以及学校与教育主管部门之间的交换数据,实现教务数据的上传下发,真正使教育信息化成为一体化应用,不再是信息孤岛。
开发基于XML的动态应用(如动态数据交换、动态信息发布),就是要能从数据库中取出需要交换的数据,并动态产生XML文档在各个应用程序之间传递,不同应用系统中不同语言编写的应用程序就可正确识别和解析文档中的数据,实现数据的动态交换。
以上是在基于XML的数据交换技术在校园网中进行共享数据的一种解决思路,希望能够抛砖引玉,寻求一种更好的解决方案。
参考文献:
[1](美)Natanya Pitts,徐晓梅、龚志翔、王晓云等译,XML技术内幕,北京:机械工业出版社,2002.
[2]章明、许青松、沈锡臣,基于XML的数据交换共享平台模型,清华大学学报(自然科学版),2003.01.