XML实用教程 第18讲 2006.3 计算机与电子系—顾兵
上一讲主要内容 XSLT介绍 XSLT转换机制 样式表主要元素 模式 2006.3 计算机与电子系—计算机技术教研室
第9章:XML数据交换 本章主要介绍以下内容: 数据交换技术 数据存取机制 XML与SQL Server 2000间数据交换技术 2006.3 计算机与电子系—计算机技术教研室
数据交换技术 从应用角度看,XML信息交换分为几种类型: 数据发布 数据集成 交易自动化 2006.3 计算机与电子系—计算机技术教研室
数据存取机制 过去,文件系统作为数据存储与交换的模式在很长时期内起着重要作用; 现在,大多数关键数据都由数据库进行管理; XML非常适合于不同应用间的数据交换 2006.3 计算机与电子系—计算机技术教研室
XML数据源 XML纯文本文档 关系型数据库 源于其他各种应用数据 2006.3 计算机与电子系—计算机技术教研室
数据存取机制示意图 应用程序/浏览器 HTTP+SQL DOM DSO CSS XSL XML SQL 数据 XML文档 ADO SQL Server ORACLE 其它 XML文档 <?xml version =“1.0”?> ADO 2006.3 计算机与电子系—计算机技术教研室
XML数据存取方法 通过DOM读取XML文档中节点,是最基本XML存取技术; 应用DSO对XML数据绑定,以实现从XML文档中读取或写入数据; CSS和XSL技术给XML数据赋以一定样式信息使其能在浏览器中显示; 利用ASP在页面文档中嵌入ADO对象从数据库中提取XML数据; HTTP+SQL是Microsoft新近提出的XML数据库解决方案的核心 2006.3 计算机与电子系—计算机技术教研室
XML与数据库 XML信息交换,和数据库息息相关; 现实情况是大量信息不可能都以XML文件形式存在; 2006.3 计算机与电子系—计算机技术教研室
XML与关系数据库 数据库对于大批量数据能有效存储管理和快速检索、查询; 目前各个领域使用最多的是关系数据库; 将其按结构层次拆分开分别存于不同字段 将XML文档原封不动地存入数据库 2006.3 计算机与电子系—计算机技术教研室
XML与面向对象数据库 面向对象数据库源于面向对象技术; 面向对象数据库可以在数据库中存储文本、图像、视频和空间数据; 但面向对象技术复杂、目前面向对象数据库技术的工业化成熟程度高; XML为面向对象数据库注入新的活力; 已有针对XML的面向对象数据库推出。 2006.3 计算机与电子系—计算机技术教研室
著名数据库产品对XML的支持 Oracle做为全球第一大数据库及数据库应用解决方案提供厂商,1999年率先推出支持XML的数据库产品—Oracle 8i。 Microsoft于2000年宣布其SQL Server对XML提供支持; SQL Server的XML支持计划,旨在产生一组功能强大的产品和服务来实现分布式互连网应用框架。 2006.3 计算机与电子系—计算机技术教研室
SQL Server 2000对XML的支持 允许用户通过网络查询SQL Server,并以XML格式获得返回结果; 允许查询和写入XML数据,用SELECT语句和FOR XML子句检索XML数据,使用OPENXML提供程序XML数据; 使用XPATH查询语言检索XML数据; 使用XML文档作为命令文本并以流的形式返回结果集。 2006.3 计算机与电子系—计算机技术教研室
配置IIS服务器 即在IIS服务器上建立代表SQL Server的虚拟目录。 配置IIS服务器要经过三个步骤: 建立用于映射虚拟目录的文件夹 配置虚拟目录 2006.3 计算机与电子系—计算机技术教研室
配置虚拟目录 应用SQL Server工具,可在IIS中配置SQLXML支持: 2006.3 计算机与电子系—计算机技术教研室
使用HTTP查询SQL Server 即直接在浏览器地址输入带有查询语句的URL,以对SQL Server数据库执行查询操作,并将查询结果返回到浏览器中。 2006.3 计算机与电子系—计算机技术教研室
HTTP查询的模型 客户端 IIS服务器 SQL Server服务器 xmldata 数据库 xsl 模板 带批注 的架构 IE5 查询 FOR XML OPENXML SQL Server IIS ISAPI SQL OLEDB sqlxml.dll xmldata 数据库 xsl 模板 带批注 的架构 IE5 客户端 IIS服务器 SQL Server服务器 SQL 查询 插入 更新 2006.3 计算机与电子系—计算机技术教研室
以XML格式返回查询操作 查询SQL Server 2000 pubs数据库中的Astock_cus表内容,并以XML格式返回: http://localhost/sqliis?sql=select * from Astock_cus for xml auto&root=A_H_stockinfo 2006.3 计算机与电子系—计算机技术教研室
操作执行结果 2006.3 计算机与电子系—计算机技术教研室
SQL字段以子元素的形式出现 http://localhost/sqliis?sql=select * from Astock_cus for xml auto,elements&root=A_H_stockinfo 2006.3 计算机与电子系—计算机技术教研室
XMLDATA参数 返回结果还可包括schema内容: http://localhost/sqliis?sql=select * from Astock_cus for xml auto,xmldata,elements &root=A_H_stockinfo&outputencoding=gb2312 2006.3 计算机与电子系—计算机技术教研室
使用ADO对象读取数据 ADO作为一个ActiveX数据对象接口,是微软OLEDB技术的一个主要接口,用于与数据库建立联接. 可联接的数据库包括:Oracle、Sql Server、Access等数据库。 通过ADO接口联接数据库有多种方法。 2006.3 计算机与电子系—计算机技术教研室
XML与ADO查询应用示例 本示例首先建立一个数据查询界面,它由HTML网页实现; 当点击查询界面中的执行按钮时,查询语句作为参数被传送至服务器端调用一个ASP程序来处理 该程序通过ADO接口与指定数据库联接,执行查询语句,并按XML格式将查询结果返回到客户端浏览器中 2006.3 计算机与电子系—计算机技术教研室
HTML文档代码 <html> <body> <h2>ADO查询系统示例</h2> <form action="http://localhost/myiis/ado_sql03.asp“ method="get"> <p> sql查询命令:<input type="text" size="100" name="editbox"> </p> <input type="submit" value="执行"> </form> </body> </html> 2006.3 计算机与电子系—计算机技术教研室
Asp程序清单 <%Response.contentType="text/xml"%> <客户> <客户姓名><%=objRs("name")%></客户姓名> <股东代码><%=objRs("stockholder")%></股东代码> <浦发银行><%=objRs("A600000")%></浦发银行> <大连热电><%=objRs("A600739")%></大连热电> <华工科技><%=objRs("A000988")%></华工科技> <兴和基金><%=objRs("A500018")%></兴和基金> </客户> <% objRs.movenext Loop objRs.Close cn.Close set cn=nothing %> </客户持股信息> <%Response.contentType="text/xml"%> <?xml version="1.0" encoding="gb2312"?> <客户持股信息> <% set cn=Server.CreateObject("adodb.connection") cn.Open "Driver={SQL Server};Server=GU-01;Uid=gu02;Pwd=gu02;Database=pubs;" strSQL=request("editbox") set objRs=cn.Execute(strSQL) do while not objRs.Eof %> 2006.3 计算机与电子系—计算机技术教研室
查询操作及客户端得到返回结果 2006.3 计算机与电子系—计算机技术教研室