第十章XML数据库技术.ppt
《第十章XML数据库技术.ppt》由会员分享,可在线阅读,更多相关《第十章XML数据库技术.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十第十 章章 XML与数据库的交换与数据库的交换 10.1 概述概述 10.2 数据岛数据岛 10.3 XML数据源对象数据源对象 10.4 数据集操作数据集操作 10.5 XML数据转换为数据库数据转换为数据库 10.6 XML数据库数据库 10.1 概述概述XMLXML的数据交换技术,除了的数据交换技术,除了CSSCSS、XSLTXSLT外,还有数据岛和外,还有数据岛和数据源技术。数据岛和数据源技术是以数据源技术。数据岛和数据源技术是以HTMLHTML作为载体显示作为载体显示XMLXML数据文件的另外一种技术。数据文件的另外一种技术。把把XMLXML数据文件嵌入数据文件嵌入HTMLHTM
2、L文本中,文本中,作为提供数据的模块,借助作为提供数据的模块,借助HTMLHTML可以方便地在浏览器上浏览可以方便地在浏览器上浏览这个这个XMLXML数据文件。数据文件。把把XMLXML转换成传统数据库,或把传统数据库的表转换成转换成传统数据库,或把传统数据库的表转换成XMLXML数据,需要用到数据,需要用到ASPASP (Active Server PagesActive Server Pages)技术和技术和ADOADO(ActiveX Data ObjectActiveX Data Object)技术。技术。10.1 概述概述在在XMLXML技术出现之后,各种传统数据库相继推出了自己的技
3、术出现之后,各种传统数据库相继推出了自己的支持支持XMLXML的解决方案来实现传统数据库与的解决方案来实现传统数据库与XMLXML之间的转换。之间的转换。作为数据存储载体,作为数据存储载体,XMLXML文档也可以作为数据文件使用,文档也可以作为数据文件使用,同样可以完成传统数据库存储数据的任务和功能。因而提出同样可以完成传统数据库存储数据的任务和功能。因而提出了了XMLXML数据库的概念。数据库的概念。本章将分别详细讨论上述问题。本章将分别详细讨论上述问题。10.2 数据岛数据岛10.2.1 基本概念基本概念在在HTMLHTML中通过在元素中通过在元素内包含内包含XMLXML文档。文档。XML
4、XML文档可以是内嵌式文档,也可以是外部文档。使得文档可以是内嵌式文档,也可以是外部文档。使得XMLXML文档像文档像一个用一个用HTMLHTML承载的小船一样,因而叫做数据岛。要在承载的小船一样,因而叫做数据岛。要在HTMLHTML文文档中加载档中加载XMLXML文档,使用文档,使用来实现。来实现。元素的语法格式元素的语法格式为:为:xml id=当当元素中只定义了元素中只定义了idid属性值时,称属性值时,称XMLXML文档为内嵌文档为内嵌式文档。当式文档。当元素中只定义了元素中只定义了idid属性值和属性值和srcsrc属性值,称属性值,称XMLXML文档为外部文档,此时文档为外部文档,
5、此时srcsrc的值一定是外部的值一定是外部XMLXML文档的文档的URLURL。10.2.2 简单简单XML文档的处理文档的处理 根元素下只有二层元素结构,与简单表格对应的根元素下只有二层元素结构,与简单表格对应的XMLXML文文档称为简单档称为简单XMLXML文档。例如下面的文档(文档。例如下面的文档(ch10-1.xmlch10-1.xml)中根元)中根元素素filesfiles下有若干个下有若干个filefile,filefile下有四个子元素,子元素没有下有四个子元素,子元素没有下级子元素:下级子元素:XML Design XML Design Word Document Word
6、Document 2007-11-25 2007-11-25 73kb 73kb 10.2.2 简单简单XML文档的处理文档的处理 ASP Design ASP Design Word Document Word Document 2003-10-15 2003-10-15 680kb 680kb 2005 Test Scores 2005 Test Scores Excel Document Excel Document 2006-1-20 2006-1-20 65kb 65kb 10.2.2 简单简单XML文档的处理文档的处理 此时,使用内嵌式数据岛的形式如下:此时,使用内嵌式数据岛的形式
7、如下:10.2.2 简单简单XML文档的处理文档的处理 这种形式使这种形式使HTMLHTML文档显得十分臃肿,可读性下降。最好文档显得十分臃肿,可读性下降。最好采用调用外部文档的数据岛形式来加载采用调用外部文档的数据岛形式来加载XMLXML文档。文档。xml id=files=ch10-1.xml其中其中srcsrc的值是一个的值是一个XMLXML文档。这种形式的文档。这种形式的叫做外叫做外部文档的数据岛。部文档的数据岛。10.2.2 简单简单XML文档的处理文档的处理 为了把数据岛的为了把数据岛的XMLXML文档显示在浏览器上,需要在文档显示在浏览器上,需要在HTMLHTML文档中设计数据显
8、示的模块。此时可以使用表格(文档中设计数据显示的模块。此时可以使用表格(tabletable)元)元素来显示数据。素来显示数据。table border=1=#files div =name div =type div =date div =size /引用数据岛时,使用了引用数据岛时,使用了tabletable元素的元素的datasrcdatasrc属性绑定数属性绑定数据源,该属性通过据源,该属性通过元素中的元素中的idid属性值来加载数据岛中属性值来加载数据岛中10.2.2 简单简单XML文档的处理文档的处理 的数据。如的数据。如datasrcdatasrc=“#files#files”。
9、然后使用。然后使用divdiv或或spanspan元素元素d d的的dataflddatafld属性用于绑定数据源中的元素,属性用于绑定数据源中的元素,dataflddatafld的值是需的值是需要显示的元素名称,如要显示的元素名称,如dataflddatafld=“typetype”。例例10.1 10.1 用数据岛形式加载例用数据岛形式加载例7.107.10的的XMLXML文档,并显示。文档,并显示。完善上述讨论,增加显示数据的表格,并为美化数据显完善上述讨论,增加显示数据的表格,并为美化数据显示效果设计了简单的示效果设计了简单的CSSCSS,其完整的程序参考,其完整的程序参考P.311P
10、.311。其效果。其效果如下:如下:图图10.1 HTML加载加载XML数据岛的显示结果数据岛的显示结果10.2.3 多级多级XML文档的处理文档的处理 当元素多级嵌套时,如何显示数据?如例当元素多级嵌套时,如何显示数据?如例1.21.2的的XMLXML文档文档(ch10-2.xmlch10-2.xml),在),在studentstudent的子元素的子元素scorescore下还有一级子元下还有一级子元素,此时的文档树结构如图素,此时的文档树结构如图10.210.2所示。所示。图图10.2 例例1.2的的XML文档树型结构图文档树型结构图namesexscoremajormathematic
11、sprogrammingcircuitstudentstudent student id10.2.3 多级多级XML文档的处理文档的处理 因为因为scorescore下嵌套子元素,所以在表示下嵌套子元素,所以在表示studentstudent的子元素的子元素scorescore时,需要在表示时,需要在表示scorescore单元格中嵌套一个表格单元格中嵌套一个表格tabletable来实来实现,并在现,并在tabletable中使用中使用dataflddatafld=score=score引用引用scorescore元素,方法元素,方法如下:如下:table border=1=score di
12、v div div /然后把此表格嵌套在表示然后把此表格嵌套在表示scorescore元素的单元格元素的单元格中。中。10.2.3 多级多级XML文档的处理文档的处理 例例10.2 10.2 用数据岛形式加载例用数据岛形式加载例1.21.2的的XMLXML文档。文档。这是一个根元素下面有三级子元素的多级结构的这是一个根元素下面有三级子元素的多级结构的XMLXML文档,文档,使用上面的讨论,可以实现嵌套元素的显示。程序参考使用上面的讨论,可以实现嵌套元素的显示。程序参考P.314P.314。效果如下图:效果如下图:图图10.3 HTML加载嵌套加载嵌套XML数据岛的显示结果数据岛的显示结果10.
13、3 数据源对象数据源对象10.3.1 基本概念基本概念数据源对象数据源对象(Data Source ObjectData Source Object,DSODSO)是在是在HTMLHTML文件中加文件中加载结构化数据的一种对象。数据源对象必须创建实例方能使载结构化数据的一种对象。数据源对象必须创建实例方能使用。常用的数据源对象有表格式数据控制(用。常用的数据源对象有表格式数据控制(Tabular Data Tabular Data ControlControl),远程数据服务和),远程数据服务和XMLXML数据源。不同类型的数据格数据源。不同类型的数据格式,有不同类型的式,有不同类型的DSOD
14、SO,不同类型的,不同类型的DSODSO有不同的数据处理方有不同的数据处理方式。此处,我们讨论用式。此处,我们讨论用XML DSOXML DSO来处理来处理XMLXML数据的问题。数据的问题。10.3.2 处理数据源对象处理数据源对象建立数据源对象的方法使用建立数据源对象的方法使用HTMLHTML的元素的元素,的形式如下:的形式如下:object data=URL 下面是通过下面是通过元素创建的元素创建的XML DSOXML DSO实例:实例:object width=0 height=0 其中,其中,classidclassid值不能写错,值不能写错,idid值是需要建立实例的值是需要建立实
15、例的DSODSO对象。这个对象。这个元素创建的元素创建的XML DSOXML DSO可以用下列脚本来处可以用下列脚本来处理:理:10.3.2 处理数据源对象处理数据源对象script for=window event=varvar xmlDocxmlDoc=xmldso.XMLDocumentxmldso.XMLDocument;xmlDoc.asyncxmlDoc.async=false;=false;xmlDoc.loadxmlDoc.load(););if(xmlDoc.parseErrorif(xmlDoc.parseError!=0)!=0)/显示错误信息显示错误信息 documen
16、t.write(xmlDom.parseError.reasondocument.write(xmlDom.parseError.reason););else else /显示成功信息显示成功信息 处理语句处理语句 通过通过XML DSOXML DSO对象对象xmldsoxmldso的方法的方法XMLDocumentXMLDocument来创建来创建XML XML DOMDOM对象对象xmlDocxmlDoc。10.3.2 处理数据源对象处理数据源对象例例10.3 10.3 使用使用XML DSOXML DSO处理处理XMLXML文档。文档。程序参考程序参考P316P316。效果如下图:。效果
17、如下图:图图10.4 XML DSO的显示结果的显示结果作为一个文件形式保存在计算机系统中的作为一个文件形式保存在计算机系统中的XMLXML文档,使用文档,使用DSODSO来操作它们时,类似于操作传统关系数据库。统关系数据来操作它们时,类似于操作传统关系数据库。统关系数据库。在一个关系数据库实例中,数据的组织使用若干个表格库。在一个关系数据库实例中,数据的组织使用若干个表格来管理数据。每个表格可以看成是一个二维表,表的每一列来管理数据。每个表格可以看成是一个二维表,表的每一列叫做数据项或字段,表格的一个行称为一条记录,一个表格叫做数据项或字段,表格的一个行称为一条记录,一个表格包含若干字段和若
18、干行。若干行的集合称为记录集包含若干字段和若干行。若干行的集合称为记录集(recordsetrecordset)。结构化结构化XMLXML数据可以与一张表格对应,相应地,每一列是数据可以与一张表格对应,相应地,每一列是一个元素,每一行被认为是一条记录,包含若干个元素。如一个元素,每一行被认为是一条记录,包含若干个元素。如表表1-11-1所示,就是一张普通的表格。这样,处理所示,就是一张普通的表格。这样,处理XMLXML数据的方数据的方法可以使用结构化数据操纵方式处理。法可以使用结构化数据操纵方式处理。10.4 数据集操作数据集操作10.4.1 数据集的概念与操作数据集的概念与操作10.4.1
19、数据集的概念与操作数据集的概念与操作 在操作在操作XMLXML文档数据时,文档数据时,DSODSO允许从一行数据移动到下一允许从一行数据移动到下一行数据,添加、删除、修改数据记录等,这些操作使用行数据,添加、删除、修改数据记录等,这些操作使用recordsetrecordset来实现。表来实现。表10.110.1是是recordsetrecordset对象的属性和方法。对象的属性和方法。为了讨论方便,假定为了讨论方便,假定XMLXML数据源的名称是数据源的名称是mydatasmydatas,下面讨论下面讨论对该对象的操作。对该对象的操作。1 1、移动指针、移动指针 移动记录指针到第移动记录指针
20、到第1818条记录:条记录:mydatas.recordset.move(18)mydatas.recordset.move(18)移动记录指针到第一条记录:移动记录指针到第一条记录:mydatas.recordset.moveFirstmydatas.recordset.moveFirst10.4.1 数据集的概念与操作数据集的概念与操作表表10.1 10.1 recordsetrecordset对象的属性和方法对象的属性和方法属性属性操作操作AddNew在文件尾部加入一条新在文件尾部加入一条新记录记录。bof()记录记录集的集的逻辑顶逻辑顶,当指,当指针针指向指向记录记录集的集的逻辑顶时逻
21、辑顶时,该该属性属性为为真。否真。否则为则为假。假。delete删删除当前除当前记录记录。eof()记录记录集的集的逻辑逻辑底,当指底,当指针针指向指向记录记录集的集的逻辑逻辑底底时时,该该属性属性为为真。否真。否则为则为假。假。Move(n)把把记录记录指指针针移移动动到第到第n条条记录记录。MoveFirst记录记录指指针针指向第一条指向第一条记录记录。MoveLast记录记录指指针针指向最后一条指向最后一条记录记录。MovePrevious记录记录指指针针指向前一条指向前一条记录记录。MoveNext记录记录指指针针指向下一条指向下一条记录记录。Field()表示字段的属性。表示字段的属
22、性。10.4.1 数据集的概念与操作数据集的概念与操作 移动记录指针到最后一条记录:移动记录指针到最后一条记录:mydatas.recordset.moveLastmydatas.recordset.moveLast 移动记录指针到前一条记录:移动记录指针到前一条记录:mydatas.recordset.movePreviousmydatas.recordset.movePrevious 移动记录指针到下一条记录:移动记录指针到下一条记录:mydatas.recordset.moveNextmydatas.recordset.moveNext2 2、添加记录、添加记录 在记录集中增加一条记录:
23、在记录集中增加一条记录:mydatas.recordset.AddNewmydatas.recordset.AddNew10.4.1 数据集的概念与操作数据集的概念与操作4 4、修改记录修改记录 在记录集中修改数据,要使用在记录集中修改数据,要使用field()field()属性指定某个字段。属性指定某个字段。使用下面的语法可以修改一个字段:使用下面的语法可以修改一个字段:mydatas.recordset.field(mydatas.recordset.field(“numnum”)=)=”20040512092004051209”5 5、循环操作循环操作 当需要操作整个记录集时,必须让记录
24、指针遍历所有的当需要操作整个记录集时,必须让记录指针遍历所有的记录,此时使用循环控制,可以方便地解决问题。使用记录,此时使用循环控制,可以方便地解决问题。使用VBScriptVBScript和和JavaScriptJavaScript的语法如下:的语法如下:do while not do while not mydatas.recordset.eofmydatas.recordset.eof mydatas.recordset.moveNextmydatas.recordset.moveNext loop loop10.4.1 数据集的概念与操作数据集的概念与操作使用使用JavaScriptJ
25、avaScript的语法如下:的语法如下:while(!mydatas.recordset.eofwhile(!mydatas.recordset.eof)mydatas.recordset.moveNextmydatas.recordset.moveNext;例例10.4 10.4 以例以例7.17.1的的XMLXML文档为例讨论,使用数据源转换文档为例讨论,使用数据源转换XMLXML文档。用于转换的的文档。用于转换的的HTMLHTML文件参考文件参考P.319P.319。效果如下图。效果如下图。图图10.5 例例10.4的显示效果的显示效果10.4.2 移动指针移动指针 设置四个按钮,分别
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十章 XML数据库技术 第十 XML 数据库技术
限制150内