收藏 分销(赏)

第十章XML数据库技术.ppt

上传人:pc****0 文档编号:14029334 上传时间:2026-06-09 格式:PPT 页数:67 大小:752KB 下载积分:10 金币
下载 相关 举报
第十章XML数据库技术.ppt_第1页
第1页 / 共67页
第十章XML数据库技术.ppt_第2页
第2页 / 共67页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第十,章,XML,与数据库的交换,10.1,概述,10.2,数据岛,10.3 XML,数据源对象,10.4,数据集操作,10.5 XML,数据转换为数据库,10.6 XML,数据库,10.1,概述,XML,的数据交换技术,除了,CSS,、,XSLT,外,还有数据岛和数据源技术。数据岛和数据源技术是以,HTML,作为载体显示,XML,数据文件的另外一种技术。,把,XML,数据文件嵌入,HTML,文本中,作为提供数据的模块,借助,HTML,可以方便地在浏览器上浏览这个,XML,数据文件。,把,XML,转换成传统数据库,或把传统数据库的表转换成,XML,数据,需要用到,ASP,(,Active Server Pages,),技术和,ADO,(,ActiveX Data Object,),技术。,10.1,概述,在,XML,技术出现之后,各种传统数据库相继推出了自己的支持,XML,的解决方案来实现传统数据库与,XML,之间的转换。,作为数据存储载体,,XML,文档也可以作为数据文件使用,同样可以完成传统数据库存储数据的任务和功能。因而提出了,XML,数据库的概念。,本章将分别详细讨论上述问题。,10.2,数据岛,10.2.1,基本概念,在,HTML,中通过在元素,内包含,XML,文档。,XML,文档可以是内嵌式文档,也可以是外部文档。使得,XML,文档像一个用,HTML,承载的小船一样,因而叫做数据岛。要在,HTML,文档中加载,XML,文档,使用,来实现。,元素的语法格式为:,当,元素中只定义了,id,属性值时,称,XML,文档为内嵌式文档。当,元素中只定义了,id,属性值和,src,属性值,称,XML,文档为外部文档,此时,src,的值一定是外部,XML,文档的,URL,。,10.2.2,简单,XML,文档的处理,根元素下只有二层元素结构,与简单表格对应的,XML,文档称为简单,XML,文档。例如下面的文档(,ch10-1.xml,)中根元素,files,下有若干个,file,,,file,下有四个子元素,子元素没有下级子元素:,XML Design,Word Document,2007-11-25,73kb,10.2.2,简单,XML,文档的处理,ASP Design,Word Document,2003-10-15,680kb,2005 Test Scores,Excel Document,2006-1-20,65kb,10.2.2,简单,XML,文档的处理,此时,使用内嵌式数据岛的形式如下:,10.2.2,简单,XML,文档的处理,这种形式使,HTML,文档显得十分臃肿,可读性下降。最好采用调用外部文档的数据岛形式来加载,XML,文档。,其中,src,的值是一个,XML,文档。这种形式的,叫做外部文档的数据岛。,10.2.2,简单,XML,文档的处理,为了把数据岛的,XML,文档显示在浏览器上,需要在,HTML,文档中设计数据显示的模块。此时可以使用表格(,table,)元素来显示数据。,引用数据岛时,使用了,table,元素的,datasrc,属性绑定数据源,该属性通过,元素中的,id,属性值来加载数据岛中,10.2.2,简单,XML,文档的处理,的数据。如,datasrc,=,“,#files,”,。然后使用,div,或,span,元素,d,的,datafld,属性用于绑定数据源中的元素,,datafld,的值是需要显示的元素名称,如,datafld,=,“,type,”,。,例,10.1,用数据岛形式加载例,7.10,的,XML,文档,并显示。,完善上述讨论,增加显示数据的表格,并为美化数据显示效果设计了简单的,CSS,,其完整的程序参考,P.311,。其效果如下:,图,10.1 HTML,加载,XML,数据岛的显示结果,10.2.3,多级,XML,文档的处理,当元素多级嵌套时,如何显示数据?如例,1.2,的,XML,文档(,ch10-2.xml,),在,student,的子元素,score,下还有一级子元素,此时的文档树结构如图,10.2,所示。,图,10.2,例,1.2,的,XML,文档树型结构图,name,sex,score,major,mathematics,programming,circuit,student,student,student,id,10.2.3,多级,XML,文档的处理,因为,score,下嵌套子元素,所以在表示,student,的子元素,score,时,需要在表示,score,单元格中嵌套一个表格,table,来实现,并在,table,中使用,datafld,=score,引用,score,元素,方法如下:,然后把此表格嵌套在表示,score,元素的单元格,中。,10.2.3,多级,XML,文档的处理,例,10.2,用数据岛形式加载例,1.2,的,XML,文档。,这是一个根元素下面有三级子元素的多级结构的,XML,文档,使用上面的讨论,可以实现嵌套元素的显示。程序参考,P.314,。效果如下图:,图,10.3 HTML,加载嵌套,XML,数据岛的显示结果,10.3,数据源对象,10.3.1,基本概念,数据源对象,(,Data Source Object,,,DSO,),是在,HTML,文件中加载结构化数据的一种对象。数据源对象必须创建实例方能使用。常用的数据源对象有表格式数据控制(,Tabular Data Control,),远程数据服务和,XML,数据源。不同类型的数据格式,有不同类型的,DSO,,不同类型的,DSO,有不同的数据处理方式。此处,我们讨论用,XML DSO,来处理,XML,数据的问题。,10.3.2,处理数据源对象,建立数据源对象的方法使用,HTML,的元素,,,的形式如下:,下面是通过,元素创建的,XML DSO,实例:,其中,,classid,值不能写错,,id,值是需要建立实例的,DSO,对象。这个,元素创建的,XML DSO,可以用下列脚本来处理:,10.3.2,处理数据源对象,var,xmlDoc,=,xmldso.XMLDocument,;,xmlDoc.async,=false;,xmlDoc.load,(,);,if(xmlDoc.parseError,!=0),/,显示错误信息,document.write(xmlDom.parseError.reason,);,else,/,显示成功信息,处理语句,通过,XML DSO,对象,xmldso,的方法,XMLDocument,来创建,XML DOM,对象,xmlDoc,。,10.3.2,处理数据源对象,例,10.3,使用,XML DSO,处理,XML,文档。,程序参考,P316,。效果如下图:,图,10.4 XML DSO,的显示结果,作为一个文件形式保存在计算机系统中的,XML,文档,使用,DSO,来操作它们时,类似于操作传统关系数据库。统关系数据库。在一个关系数据库实例中,数据的组织使用若干个表格来管理数据。每个表格可以看成是一个二维表,表的每一列叫做数据项或字段,表格的一个行称为一条记录,一个表格包含若干字段和若干行。若干行的集合称为记录集,(,recordset,),。,结构化,XML,数据可以与一张表格对应,相应地,每一列是一个元素,每一行被认为是一条记录,包含若干个元素。如表,1-1,所示,就是一张普通的表格。这样,处理,XML,数据的方法可以使用结构化数据操纵方式处理。,10.4,数据集操作,10.4.1,数据集的概念与操作,10.4.1,数据集的概念与操作,在操作,XML,文档数据时,,DSO,允许从一行数据移动到下一行数据,添加、删除、修改数据记录等,这些操作使用,recordset,来实现。表,10.1,是,recordset,对象的属性和方法。,为了讨论方便,假定,XML,数据源的名称是,mydatas,,,下面讨论对该对象的操作。,1,、移动指针,移动记录指针到第,18,条记录:,mydatas.recordset.move(18),移动记录指针到第一条记录:,mydatas.recordset.moveFirst,10.4.1,数据集的概念与操作,表,10.1,recordset,对象的属性和方法,属性,操作,AddNew,在文件尾部加入一条新记录。,bof,(),记录集的逻辑顶,当指针指向记录集的逻辑顶时,该属性为真。否则为假。,delete,删除当前记录。,eof,(),记录集的逻辑底,当指针指向记录集的逻辑底时,该属性为真。否则为假。,Move(n),把记录指针移动到第,n,条记录。,MoveFirst,记录指针指向第一条记录。,MoveLast,记录指针指向最后一条记录。,MovePrevious,记录指针指向前一条记录。,MoveNext,记录指针指向下一条记录。,Field(),表示字段的属性。,10.4.1,数据集的概念与操作,移动记录指针到最后一条记录:,mydatas.recordset.moveLast,移动记录指针到前一条记录:,mydatas.recordset.movePrevious,移动记录指针到下一条记录:,mydatas.recordset.moveNext,2,、添加记录,在记录集中增加一条记录:,mydatas.recordset.AddNew,10.4.1,数据集的概念与操作,4,、,修改记录,在记录集中修改数据,要使用,field(),属性指定某个字段。使用下面的语法可以修改一个字段:,mydatas.recordset.field(,“,num,”,)=,”,2004051209,”,5,、,循环操作,当需要操作整个记录集时,必须让记录指针遍历所有的记录,此时使用循环控制,可以方便地解决问题。使用,VBScript,和,JavaScript,的语法如下:,do while not,mydatas.recordset.eof,mydatas.recordset.moveNext,loop,10.4.1,数据集的概念与操作,使用,JavaScript,的语法如下:,while(!mydatas.recordset.eof,),mydatas.recordset.moveNext,;,例,10.4,以例,7.1,的,XML,文档为例讨论,使用数据源转换,XML,文档。用于转换的的,HTML,文件参考,P.319,。效果如下图。,图,10.5,例,10.4,的显示效果,10.4.2,移动指针,设置四个按钮,分别是,“,第一条,”,、,“,最后一条,”,、,“,上一条,”,、,“,下一条,”,,并把属性,onclick,设置成相应的移动操作:,例,10.5,在例,10.4,的基础上增加按钮。,程序参考,P.320,效果如下图。,10.4.2,移动指针,图,10.6,例,10.5,的显示效果,10.4.2,移动指针,在例,10.5,的文件中,可以在记录中移动指针。但是当指针到达末尾时,再单击,“,下一条,”,会出现空白。这是因为指针到达尾部时,已经没有记录了,所以会出现空白记录。另外,当指针位于第一行时,单击,“,上一条,”,也会出现空白,是因为第一条记录之前已经没有记录。使用数据集的,eof,和,bof,,可以解决这个问题。,为了把事件与操作联系起来,在例,10.5,的,input,中加入,name,属性定义按钮名称:,10.4.2,移动指针,然后在事件,onclick,中引用这些按钮,并进行简单编程:,sub,pre_onclick,(),if,shirt.recordset.bof,then,shirt.recordset.moveLast,end if,end sub,sub,next_onclick,(),if,shirt.recordset.eof,then,shirt.recordset.moveFirst,end if,end sub,修改后的,HTML,文件参考,P.321,322,。,10.4.3 ASP,对象,1,、简介,ASP(Active,Server Pages),是一套微软开发的服务器端脚本编写环境,包含在基于,Windows NT,(,Windows 2000/2003/2007 Server,)的,IIS(Internet,Information Server),内。通过,ASP,可以结合,HTML,页、脚本语言源程序、,ActiveX,控件建立动态的、交互的、高效的,Web,服务器应用程序。,ASP,应用程序以,.asp,作为文件的扩展名。浏览器从服务器上请求,.asp,文件时,,ASP,脚本开始运行。然后,Web,服务器调用,ASP,,,ASP,读取请求的文件,执行脚本命令,由脚本解释器,10.4.3 ASP,对象,(即脚本引擎)进行翻译并将其转换成服务器能够执行的命令,然后,将执行的结果以标准的,HTML,形式传送给浏览器。,ASP,的特点:,1),、使用脚本语言编程。常用的脚本语言有,VBScript,、,JavaScript,、,Perl,等等。,2),、当使用,Windows NT,作为服务器并在其上运行,IIS,时,就自动拥有了,ASP,的运行环境。对于不具备,Windows NT,环境的一般单机用户,可以在,Windows 98,下安装,PWS,(,Personal,Web Server,),在,PWS,下运行,ASP,。也可以在自己的,XP,环境中加载,IIS,模块。,10.4.3 ASP,对象,3),、使用内置,ADO,(,ActiveX Data Object,)组件,与,SQL Server,、,Microsoft Access,等数据库进行连接。这为,ASP,的数据库应用提供了方便,使得,ASP,成为,Internet,上开发数据库应用的较理想的工具之一。,4),、,ASP,使用内置对象组件,处理来自客户浏览器的,Form,提供的数据。这些对象组件是:,Request,、,Response,、,Application,、,Session,、,Server,、,FileSystemObject,、,TextStream,。,10.4.3 ASP,对象,2,、,ASP,对象,1,),Request,对象,Request,对象用于支持,ASP,收集,Internet,客户的请求信息。,Request,对象用来接收来自,HTML,页面提交的数据,这些数据以表单形式(,form,),向服务器发送,服务器端程序通过该对象来获取这些数据。,下面的,HTML,就是这样的表单。在,form,中使用了,Method=,“,post,”,来发送表单内容到,“,login.asp,”,。,输入姓名:,所在公司:,10.4.3 ASP,对象,用于接收此表单信息的,ASP,代码,(,login.asp,),为:,例,10.6,接收注册信息的,ASP,文档,使用了,request,对象。,login_thanks,Welcome come here,!,How about?,这段,ASP,代码使用,Request,对象的属性,form,来接收来自客户端,HTML,的表单信息,信息的接收通过变量,username,和,usercompany,来传递。,10.4.3 ASP,对象,2,),Response,对象,在,ASP,中如何将服务器端对用户提交的查询,要求提供的服务返回给用户?,Response,对象可以解决这一问题。,Response,将服务器端的数据以,HTML,文本的格式发送到客户的浏览器,客户浏览器可以直接将从服务器端返回的数据以网页的形式显示出来。这样,就使得客户和服务器之间的动态数据交互成为可能,使动态网页的设计成为可能。,Response,与,Request,共同构成了,ASP,中,Client,/,Server,(,客户,/,服务器,),模式的基础,使得在,Internet,环境中进行动态数据交互的设计变得轻松愉快。,10.4.3 ASP,对象,例,10.7,用,Response,对象重写上面的,login.asp,。,login_thanks,Response,对象的,write,方法可以实现把服务器接收到然后通过处理的信息反馈给客户端浏览器。,10.4.3 ASP,对象,3,),Server,对象,Server,是,ASP,中提供服务器端服务功能的内置对象。用来设置,HTML,代码,映射文件,建立对象。,Server,对象的常用方法是,CreateObject,方法。,CreateObject,方法用于创建已注册到服务器上的,ActiveX,的对象。这是一个非常重要的方法,因为通过使用,ActiveX,组件能够扩展,ActiveX,的能力。在,ASP,文件中,用如下的方法把创建的对象赋给一个变量,conn,:,10.4.3 ASP,对象,4,),FileSystemObject,FileSystemObject,对象允许对服务器的文件系统和任何附属于网络的服务器的文件系统进行访问。创建该对象的方法如下:,Set,FileVar,=,Server.CreateObject(,“,scripting.FileSystemObject,”,),这个对象可以在服务器端对文件和文件夹进行创建、打开、复制、移动、删除等操作。具体如下:,CreateTextFile,(),创建文件。,OpenTextFile,(),打开文件。,DeleteFile,(),删除文件。,CopyFile,(),复制文件。,10.4.3 ASP,对象,MoveFile,(),移动文件。,FileExists,(),返回一个布尔值。,其中,,OpenTextFile,(),的格式:,OpenTextFile(filename,mode,create,format,),filename,是需要打开的文件名称。,mode,取值分别是,1,、,2,、,8,,,1,代表只读,,2,表示改写,,8,表示追加。,Create,是一个逻辑参数,它为真时,如果文件不存在,就会创建一个新的文件。,Format,指定使用的格式化信息:,0,表示以,ASCII,码打开文件;,-1,表示以,unicode,格式打开文件,,-2,以默认格式打开文件。,10.4.3 ASP,对象,5,),TextStream,TextStream,对象是,FileSystemObject,对象的对象属性,当使用,CreateTextFile,或,openTextFile,(),方法时,将返回该类型的变量值。例如:,Dim,FileObject,Dim,TxtStream,Set,FileObject,=,server.createObject(,“,scripting,.,FileSystemObject,”,),Set,TxtStream,=FileObject.openTextFile(,“,ch6-21.xml,”,),TxtStream,是一个,TextStream,对象的变量,把,openTextFile(ch6-21.xml),获得的内容赋值给它,.,TextStream,对象有如下的方法进行操作:,10.4.3 ASP,对象,ReadAll,把文件内容全部作为一个字符串读入,.,WriteLine,在文件末尾追加以参数传入的一行字符串,然后加上回车符。,Write,在文件末尾写入参数传入的字符串。,Close,关闭文件,3,、操作文本文件,使用,FileSystemObject,对象和,TextStream,对象,可以实现对文档的操作。下面是一个关于软磁盘的文本文件,文件名为,disk.txt,,内容如下:,3M,diskette,3.5inch,5.00,Maxell,diskette,3.5inch,6.00,10.4.3 ASP,对象,Philips,diskette,3.5inch,5.50,Konica,diskette,3.5inch,5.00,Sony,diskette,3.5inch,5.00,通过,FileSystemObject,对象和,TextStream,对象来访问该文本文件。,首先建立一个,FileSystemObject,对象:,set FSO=,Server.CreateObject(Scripting.FileSystemObject,),用,OpenTextFile,(),方法打开,disk.txt,文件,以只读方式:,set,txtObj,=FSO.OpenTextFile(,“,d:xmldisk.txt,”,1),以写方式打开:,set,txtObj,=FSO.OpenTextFile(,“,d:xmldisk.txt,”,2),10.4.3 ASP,对象,以读写方式:,set,txtObj,=FSO.OpenTextFile(,“,d:xmldisk.txt,”,8),读出该文件流到变量,txtvar,:,set,txtvar,=,txtObj.Readall,对文件写:,txtvar.write,(,“”,),1,)读文件,例,10.8,用,FileSystemObject,对象以只读方式打开文本文件,disk.txt,,然后显示内容。,程序参考,P.326,。,10.4.3 ASP,对象,2,),写文件,写文件有两种方式,当,OpenTextFile,的,mode,参数为,2,时,会以,write,方法的内容覆盖原来的文件内容。当参数为,8,时,将把,write,方法的内容追加到原文件的尾部。,例,10.8,以追加方式打开文件,然后追加,“,TDK,DISKETTE,3.5INCH,5.5YUAN,”,4,、操作,XML,文件,使用与上述类似的方法,可以操作,XML,文档。,例,10.9,在例,1.2,的,XML,文档的根元素前插入一行注释,。,10.4.4 ADO,1.,简介,ActiveX Data Object(ADO),提供了一种简单、有效而又功能强大的数据库编程模式,运用,ADO,,,应用程序能够方便地进行数据库访问。通过,ADO,,,我们可以在脚本中对数据库进行灵活的控制,可以进行复杂的数据库操作,生成的页面具有很强的交互性,可以方便地控制和管理数据。,ADO,是一个运行于服务器端的,ActiveX,组件,它所提供的功能是进行数据库访问。运用,ADO,,我们可以编写简洁、可扩展性强的脚本,脚本既可以与,ODBC,数据源互连,又可以与,OLE DB,数据源互连。,10.4.4 ADO,使用,ADO,,,我们可以对数据提供者所提供的各种数据进行读取和写入操作,其中包括,Microsoft Access,、,Microsoft SQL Serer,和,Oracle,等数据库。除了这些传统数据库之外,使用,ADO,,我们还可以操纵其他数据资源,其中包括普通文本文件、,Microsoft Excel,、,Microsoft Exchange,和,Microsoft Index Serer,等数据资源。,2,、,ADO,操作,详细讨论,ADO,,内容十分丰富,已超出本书的范围,具体的细节,读者可以参考相关文献和书籍。我们这里只对如何具体实现进行简单的讨论。,10.4.4 ADO,1,),ADO,组件,在,ADO,组件中,最主要的是三个对象一一,Connection,、,Command,和,Recordset,。,通过这三个对象,我们在,ASP,脚本中可以与数据库连接,查询数据库中的数据,以及插入、删除和修改数据库中的数据。,10.4.4 ADO,(1)Connection,对象,Connection,对象用于建立应用程序和数据库之间的连接,,Command,对象和,Recordset,对象是在,Connection,对象的基础上完成查询和更新数据库操作的。,(2)Command,对象,Command,对象用于定义数据库的操作,通常情况下数据库操作都是以,SQL,指令的形式表现出来,现在绝大多数数据库都支持,SQL,语言。除了,SQL,指令之外,,Command,对象还允许使用特定数据库自身的指令,例如,当我们访问,SQL Server,数据库的时候,可以使用,SQL Server,中存储过程这样特殊的指令。,10.4.4 ADO,(3)Recordset,对象,Recordset,对象也许是,ADO,对象中最复杂的一个对象,但它的功能十分强大,在,Recordset,对象中包含了从数据库中查询的结果集合。使用,Recordset,对象,我们可以每次取出结果集合中的一条记录,独立地访问记录中的每一个字段。通过服务器端的脚本环境,我们还可以对结果集合中的记录进行分析和统计。,ADO,对数据库和数据源的访问可以使用,ODBC,和,OLEDB,,其模型如图,10.7,所示。,10.4.4 ADO,(,2,)建立,ADODB,对象,ADODB,是(,ADO for database,),的缩写,称为数据库的,ActiveX,数据对象。创建,ADO,对象时,使用下面的语法(,VBScript,):,Dim,DBconn,DBcmd,DBrs,Set,DBconn,=,server.createObject(,“,ADODB.connection,”,),Set,DBcmd,=,server.createObject(,“,ADODB.command,”,),Set,DBrs,=,server.createObject(,“,ADODB.recordset,”,),限于本书的内容,我们重点讨论,recordset,在,XML,数据转换中的使用方法。至于,command,对象,不在讨论之例。,10.4.5,连接数据库,连接数据库可以使用早期的,ODBC,,,也可以使用,OLE DB,。,下面分别讨论这两种方法。,1,、使用,ODBC,使用,ODBC,连接数据库,需要建立数据源名称,DSN,(,Data Source Name,),,通过打开,DSN,,,建立与数据库的连接。方法如下。,1,)建立数据源,假定我们要使用,SQL Server,作为数据库打开,建立数据源的方法为:,10.4.5,连接数据库,点击:控制面板,/,管理工具,/,数据源,(,ODBC,),,出现,“,ODBC,数据源管理器,”,界面。,在该界面中选择,“,系统,DSN,”,标签。在此界面中单击,“,添加,”,按钮。,在,“,创建新数据源,”,对话框中,选择,“,SQL Server,”,,,单击,“,完成,”,。,在,“,建立新的数据源到,SQL Server,”,对话框中输入,“,数据源名称,”,,选择连接的,SQL Server,数据库。,根据后面的提示,输入用户名,用户密码等,然后完成后续工作,即可建立数据源。,10.4.5,连接数据库,2),打开数据源,建立好数据源之后,可以通过此数据源建立,ADO,与数据库的连接工作。,假设数据源名称是,Stuado,,,用户名是,stu,,,用户密码是,stu123,,,要打开的表为,nature,,,则打开数据源的,ASP,代码为:,建立,Connection,对象,Set,DataCon,=,Server.CreateObject(ADODB.Connection,),建立,Recordset,对象,Set,DataRs,=,Server.CreateObject(ADODB.Recordset,),打开,Connection,对象,DataCon.Open,dsn,=Stuado,Stu,stu123,10.4.5,连接数据库,把打开的数据源赋给,Recordse,对象,DataRs.ActiveConnection,=,DataCon,用,SQL,语句打开表,nature,,,获得数据集,DataRs.Open,“,select*from nature,”,2.,使用,OLEDB,使用,OLEDB,建立数据库连接,不需要事先建立数据源,只需要直接使用语句即可。,假设使用的数据库是,SQL Server,中的,employee,,数据库服务器名,wzj,,用户名是,stu,,用户密码是,stu123,,要打开的表为,employee,,则打开数据源的,ASP,代码为:,10.4.5,连接数据库,建立,Connection,对象,Set,adoConn,=,Server.CreateObject(ADODB.Connection,),建立,Connection,对象的连接字符串,adoConn.Connectionstring,=PROVIDER=SQLOLEDB;DATA SOURCE=,wzj;UID,=,stu;PWD,=stu123;DATABASE=employee,打开,Connection,连接,adoConn.open,建立,Recordset,对象,Set,adoRs,=,Server.CreateObject(ADODB.Recordset,),把,Connection,连接赋给,Recordset,对象,adoRs.ActiveConnection,=,adoConn,用,SQL,打开表,employee,,获得数据集,adoRs.Open,select*from employee,10.4.5,连接数据库,如果数据库是,Access,,,可以使用下面的连接字符串代替上面的连接字符串即可。,adoConn.Connectionstring,=Driver=Microsoft Access Driver(*.,mdb);DBQ,=D:asp,student.mdb,注意:,connection,和,recordset,两个对象的,open,方法用法不同,使用时应该注意区别。,10.4.6,通过,ADO,通过前面的讨论,我们已经可以建立,ADO,对象、建立,ADO,与数据库的连接、打开连接等工作。现在来讨论使用,ASP,、,ADO,把数据库的表转换成,XML,文档的问题。,在我们的实际应用中有一个用,Access,建立的学生,student,数据库,表格名称为,nature,,,表结构如图,10.5,所示,其部分数据如图,10.8,所示。,我们根据此表设计,XML,文档的转换程序。,建立连接字符串,因为打开的是,Access,数据库,可以使用下面的连接字符串:,10.4.6,通过,ADO,图,10.8 student,数据库下的,nature,表的结构,10.4.6,通过,ADO,图,10.9 student,数据库下的,nature,表数据,10.4.6,通过,ADO,ConStr,=Driver=Microsoft Access Driver(*.,mdb);DBQ,=D:asp,student.mdb,建立,ADO,对象,set,adoCon,=,server.createObject(ADODB.Connection,),set,adoRs,=,server.createObject(ADODB.Recordset,),adoCon.Open,ConStr,adoRs.Open,Student,ConStr,建立,FileSystemObject,对象,产生字符流,因为数据库表的数据取出后,要使用把表的字段转换为,XML,的文本字符流,所以建立该对象,并使用该对象产生的,TextStream,对象属性来书写文本文件。,10.4.6,通过,ADO,set,oFSO,=,server.CreateObject(Scripting.FileSystemObject,),创建,XML,文档,在,D,盘上,XML,文件夹下建,student.xml,文件。,把字符串写入文件,使用,FileSystemObjec,产生的对象,oXMLfile,的,writeline,方法开始写,XML,文件。,oXMLfile.writeline,转换数据到,XML,元素,把,National,字段及其内容转换成元素,National,,可以如下实现:,&,adoRs(National,)&,10.4.6,通过,ADO,例,10.11,综合起来,把转换文件写成。,程序参考,P.330,。效果如图:,图,10.10 nature,表数据产生的,XML,文档 左图是文档,右图是浏览图,10.5 XML,数据库,上面的讨论总是没有离开传统数据库,如果我们直接用,XML,文档作为数据库系统来使用,情况会怎样?这就引发了关于,XML,数据库的研究工作。目前,,XML,数据库的研究正在成为,XML,应用的重要领域。,10.5.1 XML,数据库概念,基于,XML,的数据库系统分为,NXD(Native,XML Database),和,XEDB(XML Enable Database),两类。,NXD,是以,XML,文档为基础的数据库管理系统,目前是,XML,数据库研究的重要课题。,XEDB,则是在传统的,RDBMS,中增加了支持,XML,技术的功能,使得传统数据库系统能够访问,XML,。,XML,文档是一种简单的文本文件,把,XML,文档作为一种数据存储方式,可以使,XML,文档具有传统数据库存储数据的基本功能,而访问,XML,文档数据要比访问传统数据库更简单、更方便。这就是,NDX,数据库系统。在这个系统中,,XML,文档是数据库的数据区,,DTD,和,XMLSchema,是数据库的数据定义模,10.5.1 XML,数据库概念,型,,XSLT,、,DOM,、,SAX,是数据库数据处理技术,,XPath,、,XLink,、,XPointer,是数据库数据的查询链接工具。,基于,XML,的数据库系统分为,NXD(Native,XML Database),和,XEDB(XML Enable Database),两类。,NXD,是以,XML,文档为基础的数据库管理系统,目前是,XML,数据库研究的重要课题。,XEDB,则是在传统的,RDBMS,中增加了支持,XML,技术的功能,使得传统数据库系统能够访问,XML,。,1,、,XML,文档及其数据类型和有效性定义,作为数据库系统,数据类型定义和数据有效性检验都是必须的。在,XML,技术规范中,通过,DTD,和,XML Schema,来定义数,10.5.1 XML,数据库概念,据类型。,DTD,是,XML,有效性检验的标准,但是其可以使用的数据类型十分有限。,XML Schema,在,2001,年,5,月成了,W3C,的建议规范。在设计中,可以采用了,XML Schema 2.0,对,XML,数据类型和格式的进行定义。,2,、,XML,文档有效性定义验证,如何检验,XML,文档是否符合,XML Schema,的定义,最近出现了,XML,Schma,进行验证的技术,SOM,(,Schema Object Model,),可以对,XML Schema,文档进行加载、分析和检验,以确定,XML,元素定义的有效性。,10.5.2,访问,XML,数据库,把,XML,文档作为数据库使用,需要数据转换、数据查询、链接等访问技术。,1,、,XSLT,可以采用,XSLT,技术、实现,XML,文档数据的查询、读写操作。请参考第,8,章。,2,、,DOM,可以采用,DOM,接口集合操纵,XML,文档。请参考第,9,章。,3,、,SAX,可以使用,SAX,处理,XML,文档。它与,DOM,差异类似于磁带和磁盘,,SAX,只能向前顺序读取,XML,数据,把,XML,文档作为一个,10.5.2,访问,XML,数据库,可读取的字符流,这与磁带的读写类似。而,DOM,可以完整浏览和更新,XML,文档数据,这与磁盘的读写类似。,SAX,是一组程序设计接口。在加载,XML,文档时可以部分调入内存,使得内存使用效率比较高,这样可以提高读取速度,提高处理效率。在顺序读取,XML,文档的场合,,SAX,可以大大提高,XML,文档的
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服