论文部分内容阅读
1 引言
随着网络技术的普及,越来越多的数字图书馆系统出现在互联网上。而由于经费、收益和网络安全等方面的原因,这些数字图书馆系统都在相对封闭的体制内运行,各种图书元数据库大都以结构化数据的形式存储在各种大型数据库中,不同馆际之间的互操作性很差。各自封闭的数字图书馆系统不适应网络社会知识开放、共享的趋势。虽然很多网络图书馆通过中间件技术或者数据库授权的方式实现这些数据的远程访问,但这种访问需要对双方的底层开发程序进行修改,技术难度大,发量较困难。
基于以上问题,本文提出一种基于XML的图书元数据管理系统。该系统在用户界面上与常用的图书馆相同;在图书元数据的存储方式上,采用了开放式的XML技术。这样,基于广域网的任何图书管理系统,只要能够获取该图书元数据的存储地址,就能够访问该图书馆的资源,实现馆际资源共享。
2 系统概述
从功能上,基于XML的图书元数据管理系统设计与常见的图书管理系统没有本质的区别,包括:图书元的登记、元数据信息存储、图书检索以及系统维护等功能(见图1)。
系统采用常见的B/S体系,用户界面通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,业务数据单独存储,形成典型的三层结构(见图2)。同一般B/S结构不同的是,业务数据采用了XML格式,用XML来表示这些数据。这样,任意用户需要访问这些图书资源时,在已知该图书元数据的存储地址的情况下,可以通过常用的XML访问技术(本文中采用dom数据岛)来查找数据资源。以下重点分析图书元数据的存储和访问功能的实现。
3 基于XML的图书元数据表示方法
3.1 图书元数据设计关于图书元数据,当前采用较多的是Dublin core 元数据,该元数据吸纳了图书所具有的编目、分类、文摘等条件。它是在利用计算机、网络的自动搜索、编目、索引、检索等研究成果的基础上发展起来的;是描述、支持、发现、管理和检索网络资源的信息组织方式,其最大特点是数据结构简单,信息提供者可直接编码。这里,选用表1中的描述型元数据来表示网络图书馆中所存储的图书信息。
3.2 XML语言XML作为数据交换和网络计算的基础,已经成为一种网络通用语言,通过XML来表达知识、传递数据,不仅跨越了平台,还跨越了空间(internet的范围将扩展到无线),更跨越了设备(XML的数据与表现的分离可以成为不同终端间交换信息的载体)。
在语言形式方面,XML与HTML在结构上极为相似,两者的不同点在于XML允许用户自己定义文档中的标记。XML中共有六种标记:元素(elements),属性(attributes),实体引用(entity references),注释(comments),处理指令(processing instructions)和CDATA段(CDATA sections)。其中,元素是标记的最常见的形式,由尖括号分隔,和人们熟悉的HTML中的标记看起来没什么两样。
用XML表示的图书元数据可以存为网页的形式,供其他用户访问,实现图书信息的共享。表1中所示的图书元可以用XML表示如下。
<图书元数据登记规范>
<图书名称> 图书名称>
<作者> 作者>
<主题> 主题>
<关键词> <关键词>
……
图书元数据登记规范>>
4 XML元数据的访问机制
4.1 XML解析技术尽管基于XML的图书元数据完全可以以网页的形式存储和访问,但当存储的数据量过
大时,假如一个页面上有超过100条的图书目录,用户显然无法准确得到所需要的信息。因此,在本文的图书管理系统中,XML只用来做后台的存储数据,相当于图2三层网络结构中的数据存储层,为了正确简洁地显示用户所需要的信息,采用专门的XML解析技术来实现图书信息的登记与检索。
目前,处理XML文档的方式主要有SAX与DOM两种。SAX(Simple API for XML)是一种基于流的、以事件处理方式工作的接口。DOM(Document Object Model)则是在对XML文档进行分析后,在内存中建立起一个完整的树的结构,然后在此基础上进行各种操作。简单地比较来看,SAX对系统资源要求低,速度快,但对文档的操作是只读的;DOM的处理能力强大,但要求大量的系统资源,本文采用DOM对XML文档进行解析,来实现预定的功能。
采用DOM技术对XML文档进行解析时,文档中的元素、实体、属性等所有个体都可以用对象模型表示,整个文档的逻辑结构类似一棵树,生成的对象模型就是树的节点,每个对象同时包含了方法和属性,DOM提供了许多查找节点的方法。利用DOM,开发人员可以动态地创建XML、建立文档、增加(删除/修改)文档内容,DOM提供的API与编程语言无关,所以DOM技术在XML文档的处理过程中得到了广泛的应用。
DOM强制使用树模型来访问XML文档中的信息,由于XML本质上就是一种分层结构,所以这种描述方法是相当有效的。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,控制起来相当灵活。另外,采用XmlHttp对象传送XML数据到服务器,客户端页面无闪烁刷新现象。
4.2基于XML的图书元数据管理系统实现过程采用DOM解析XML文档,实现图书元数据的管理,需要以下步骤:
(1)首先,定义一个用于图书元数据登记的XML文档,登记内容如表1所示。可以将该文档保存为bookfile.xml文件,同时,将上述XML文档中的字段内容置空,做为初始化框架数据,另存为newfile.xml文件。
(2)客户端加载 XML 文档,在放置图书元数据登记内容的表格中通过DATASRC=’#xmldso’将XML文件绑定在表格中,DATASRC属性实际上是通过在要处理的XML元素的ID属性的前面加上#来实现的,所以我们可以在TD元素中间指定具体需要显示的字段。
(3)使用DOM技术对电子文件登记表格进行增加、删除和查询的记录操作;其中客户端dom.htm页面中增加图书元数据记录的代码如下:
<script Language=JavaScript>
newid.async = false;
newid.load(“newfile.xml”);
//增加记录;
function addID(){
var doc=xmldso.XMLDocument
var rootnode=doc.documentElement
var sortNode = rootnode.selectNodes(“//图书名称”)
var currentid = sortNode.length-1
var cc=sortNode.item(currentid).text;
if ((cc==“尚未输入”)||(cc==))
{
alert(“请将最后一行数据填写完毕后再增加新的记录!”);
}
else
{
var node= newid.documentElement.childNodes(0).cloneNode(true);
var contactID=parseInt(sortNode.item(currentid).parentNode.getAttribute(“contactID”)) 1;
node.setAttribute("contactID",contactID);
xmldso.documentElement.appendChild(node);
}
}
(4)服务器端dns2.asp程序比较简单,在接收到XML数据后,创建文件对象,保存到bookfile.xml即可:
(5)实际使用过程中的删除、修改和保存功能与登记功能相类似,均客采用DOM技术实现。
5 结论
采用XML来存储图书元数据,打破了各网络图书馆数据访问之间的壁垒,便于不同系统之间信息的传输。同时,XML与HTML技术的结合,允许用户在客户端访问与操控数据集,不必频繁的与服务器交互,这对于减轻服务器的负荷很有帮助。同时,由于XML本身的特点,使得在客户端的数据操作十分简便,减少了编程量。示例程序在基于Windows2000平台的IIS5.0和IE5.0上运行良好。当然,在实际运用过程中,还可使用DOM结合XSL技术为此管理元数据登记表增加排序、格式转换和数据查找等功能,以构成一个更加完善的图书管理系统。
参考文献:
[1] Brian Randell DevelopMentor,XML DOM 入门指南,http://msdn.microsoft.com/xml/default.asp
[2] World Wide Web Consortium, “Extensible Markup Language (XML) 1.0 W3C
Recommendation 10-February-1998” http://www.w3.org/TR/1998/REC-xml-19980210
[3] 南凯,阎保平.XML与Java在Web上的结合应用,第十三届全国计算机情报管理学术研讨会论文集, 1999.9.
[4] 用XML数据岛结合Dom制作通讯录,http://www.knowsky.com/print.asp id=3047
随着网络技术的普及,越来越多的数字图书馆系统出现在互联网上。而由于经费、收益和网络安全等方面的原因,这些数字图书馆系统都在相对封闭的体制内运行,各种图书元数据库大都以结构化数据的形式存储在各种大型数据库中,不同馆际之间的互操作性很差。各自封闭的数字图书馆系统不适应网络社会知识开放、共享的趋势。虽然很多网络图书馆通过中间件技术或者数据库授权的方式实现这些数据的远程访问,但这种访问需要对双方的底层开发程序进行修改,技术难度大,发量较困难。
基于以上问题,本文提出一种基于XML的图书元数据管理系统。该系统在用户界面上与常用的图书馆相同;在图书元数据的存储方式上,采用了开放式的XML技术。这样,基于广域网的任何图书管理系统,只要能够获取该图书元数据的存储地址,就能够访问该图书馆的资源,实现馆际资源共享。
2 系统概述
从功能上,基于XML的图书元数据管理系统设计与常见的图书管理系统没有本质的区别,包括:图书元的登记、元数据信息存储、图书检索以及系统维护等功能(见图1)。
系统采用常见的B/S体系,用户界面通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,业务数据单独存储,形成典型的三层结构(见图2)。同一般B/S结构不同的是,业务数据采用了XML格式,用XML来表示这些数据。这样,任意用户需要访问这些图书资源时,在已知该图书元数据的存储地址的情况下,可以通过常用的XML访问技术(本文中采用dom数据岛)来查找数据资源。以下重点分析图书元数据的存储和访问功能的实现。
3 基于XML的图书元数据表示方法
3.1 图书元数据设计关于图书元数据,当前采用较多的是Dublin core 元数据,该元数据吸纳了图书所具有的编目、分类、文摘等条件。它是在利用计算机、网络的自动搜索、编目、索引、检索等研究成果的基础上发展起来的;是描述、支持、发现、管理和检索网络资源的信息组织方式,其最大特点是数据结构简单,信息提供者可直接编码。这里,选用表1中的描述型元数据来表示网络图书馆中所存储的图书信息。
3.2 XML语言XML作为数据交换和网络计算的基础,已经成为一种网络通用语言,通过XML来表达知识、传递数据,不仅跨越了平台,还跨越了空间(internet的范围将扩展到无线),更跨越了设备(XML的数据与表现的分离可以成为不同终端间交换信息的载体)。
在语言形式方面,XML与HTML在结构上极为相似,两者的不同点在于XML允许用户自己定义文档中的标记。XML中共有六种标记:元素(elements),属性(attributes),实体引用(entity references),注释(comments),处理指令(processing instructions)和CDATA段(CDATA sections)。其中,元素是标记的最常见的形式,由尖括号分隔,和人们熟悉的HTML中的标记看起来没什么两样。
用XML表示的图书元数据可以存为网页的形式,供其他用户访问,实现图书信息的共享。表1中所示的图书元可以用XML表示如下。
<图书元数据登记规范>
<图书名称> 图书名称>
<作者> 作者>
<主题> 主题>
<关键词> <关键词>
……
图书元数据登记规范>>
4 XML元数据的访问机制
4.1 XML解析技术尽管基于XML的图书元数据完全可以以网页的形式存储和访问,但当存储的数据量过
大时,假如一个页面上有超过100条的图书目录,用户显然无法准确得到所需要的信息。因此,在本文的图书管理系统中,XML只用来做后台的存储数据,相当于图2三层网络结构中的数据存储层,为了正确简洁地显示用户所需要的信息,采用专门的XML解析技术来实现图书信息的登记与检索。
目前,处理XML文档的方式主要有SAX与DOM两种。SAX(Simple API for XML)是一种基于流的、以事件处理方式工作的接口。DOM(Document Object Model)则是在对XML文档进行分析后,在内存中建立起一个完整的树的结构,然后在此基础上进行各种操作。简单地比较来看,SAX对系统资源要求低,速度快,但对文档的操作是只读的;DOM的处理能力强大,但要求大量的系统资源,本文采用DOM对XML文档进行解析,来实现预定的功能。
采用DOM技术对XML文档进行解析时,文档中的元素、实体、属性等所有个体都可以用对象模型表示,整个文档的逻辑结构类似一棵树,生成的对象模型就是树的节点,每个对象同时包含了方法和属性,DOM提供了许多查找节点的方法。利用DOM,开发人员可以动态地创建XML、建立文档、增加(删除/修改)文档内容,DOM提供的API与编程语言无关,所以DOM技术在XML文档的处理过程中得到了广泛的应用。
DOM强制使用树模型来访问XML文档中的信息,由于XML本质上就是一种分层结构,所以这种描述方法是相当有效的。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,控制起来相当灵活。另外,采用XmlHttp对象传送XML数据到服务器,客户端页面无闪烁刷新现象。
4.2基于XML的图书元数据管理系统实现过程采用DOM解析XML文档,实现图书元数据的管理,需要以下步骤:
(1)首先,定义一个用于图书元数据登记的XML文档,登记内容如表1所示。可以将该文档保存为bookfile.xml文件,同时,将上述XML文档中的字段内容置空,做为初始化框架数据,另存为newfile.xml文件。
(2)客户端加载 XML 文档,在放置图书元数据登记内容的表格中通过DATASRC=’#xmldso’将XML文件绑定在表格中,DATASRC属性实际上是通过在要处理的XML元素的ID属性的前面加上#来实现的,所以我们可以在TD元素中间指定具体需要显示的字段。
(3)使用DOM技术对电子文件登记表格进行增加、删除和查询的记录操作;其中客户端dom.htm页面中增加图书元数据记录的代码如下:
<script Language=JavaScript>
newid.async = false;
newid.load(“newfile.xml”);
//增加记录;
function addID(){
var doc=xmldso.XMLDocument
var rootnode=doc.documentElement
var sortNode = rootnode.selectNodes(“//图书名称”)
var currentid = sortNode.length-1
var cc=sortNode.item(currentid).text;
if ((cc==“尚未输入”)||(cc==))
{
alert(“请将最后一行数据填写完毕后再增加新的记录!”);
}
else
{
var node= newid.documentElement.childNodes(0).cloneNode(true);
var contactID=parseInt(sortNode.item(currentid).parentNode.getAttribute(“contactID”)) 1;
node.setAttribute("contactID",contactID);
xmldso.documentElement.appendChild(node);
}
}
(4)服务器端dns2.asp程序比较简单,在接收到XML数据后,创建文件对象,保存到bookfile.xml即可:
(5)实际使用过程中的删除、修改和保存功能与登记功能相类似,均客采用DOM技术实现。
5 结论
采用XML来存储图书元数据,打破了各网络图书馆数据访问之间的壁垒,便于不同系统之间信息的传输。同时,XML与HTML技术的结合,允许用户在客户端访问与操控数据集,不必频繁的与服务器交互,这对于减轻服务器的负荷很有帮助。同时,由于XML本身的特点,使得在客户端的数据操作十分简便,减少了编程量。示例程序在基于Windows2000平台的IIS5.0和IE5.0上运行良好。当然,在实际运用过程中,还可使用DOM结合XSL技术为此管理元数据登记表增加排序、格式转换和数据查找等功能,以构成一个更加完善的图书管理系统。
参考文献:
[1] Brian Randell DevelopMentor,XML DOM 入门指南,http://msdn.microsoft.com/xml/default.asp
[2] World Wide Web Consortium, “Extensible Markup Language (XML) 1.0 W3C
Recommendation 10-February-1998” http://www.w3.org/TR/1998/REC-xml-19980210
[3] 南凯,阎保平.XML与Java在Web上的结合应用,第十三届全国计算机情报管理学术研讨会论文集, 1999.9.
[4] 用XML数据岛结合Dom制作通讯录,http://www.knowsky.com/print.asp id=3047