Database 版 (精华区)

发信人: freely (<% GGStudy %>), 信区: Database
标  题: Microsoft SQL Server数据库的XML支持
发信站: 哈工大紫丁香 (2001年07月31日00:26:32 星期二), 站内信件

                      Microsoft SQL Server数据库的XML支持
 
作者: 王仲 写作日期:00-4-6
文章来源:XML中国论坛
 
一、背景
就在XML技术在全球日益盛行的时候,Microsoft于2000年1月宣布其SQL Server对XML提
供支持,并且发布了一个预览版本,它意味着Microsoft在其战略决策上将XML技术放在
一个何等重要的地位,而这一消息的发布无疑将给广大的XML技术人员和SQL Server用户
带来强劲动力。Microsoft SQL Server的XML支持计划,是其下一步庞大计划的一部分,
即旨在产生一组功能强大的产品和服务来实现所谓的BizTalk 框架。BizTalk 是Micros
oft现有的、帮助商务公司实现应用软件一体化的分布式互连网应用DNA (Windows Dist
ributed interNet Applications )体系结构的延伸和扩展。以后的Microsoft产品和工
具本身都将包含对BizTalk 服务体系结构的支持。Microsoft Commerce Platform、Off
ice, BackOffice 以及Windows 都将利用BizTalk XML Schema来保存文档的额外信息、
并且用它来实现BackOffice 和基于Windows应用软件的一体化集成。Microsoft产品套件
、Microsoft Office 2000 发行的下一个主要版本都打算将HTML 提升成为一种内置支持
的文件格式,并且使用XML来存储额外的文档信息。Microsoft SQL Server正是其实现这
一目的的底层数据的有力工具。

二、技术特点
在此之前,Microsoft就一直致力于将XML技术同其数据库旗舰产品SQL Server相集成,
以帮助建立下一代的高效的基于Web的企业应用。Microsoft宣称,其下一版本SQL Serv
er,即代号为Shiloh,将是一个完全支持XML的产品,利用该产品,用户可以在Web浏览
器下输入一个URL地址,即可访问SQL Server数据库,而返回的结果可以是一个XML文档
。另外,它还允许通过输入样式参数,指定样式信息,以便在浏览器中输出丰富的页面
。一个典型的URL如下所述:href = http: // localhost / Northwind ? sql = selec
t + firstname,lastname + from + employees + for + xml + auto Microsoft宣称,
SQL Server Shiloh将在2000年中期正式发布,现在发布的预览版只是其全部支持中的一
部分,其技术核心是IIS ISAPI的一个扩展,支持环境是Windows NT 4.0 + IIS 4.0,或
者Windows 2000 +IIS 5.0,数据库为SQL Server 7.0 或 SQL Server 6.5 Service Pa
ck 5。一个例外是,安装于Windows 98上的Personal Web Server将不提供对XML支持。

XML SQL 技术预览提供了以下几种XML访问功能:
利用HTTP协议以URL的方式访问SQL Server数据库
这是最基本的访问方式。另外,通过指定样式模板参数,可以返回具有一定样式信息的
数据。该样式模板是一个包含一条或多条SQL 语句的合法的XML文档。返回的XML文档可
以通过指定的XML模式来定义,三种模式为:RAW、AUTO、EXPLICIT。
利用在SELECT语句中附加FOR XML来返回XML格式数据
作为对XML模式的一种补充,通过在FOR XML中指定DTD或XML schema来达到对返回XML文
档的格式化。
利用基于XML的UPDATE语句来更新数据库中的记录
SQL Server支持基于XML的插入、删除、修改等数据库更新操作。通用的更新语法是:
<sql:sync xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:before>
<TABLENAME [sql:id="value"] col="value" col="value"…../>
</sql:before>
<sql:after>
<TABLENAME [sql:id="value"] [sql:at-identity="value"] col="value" col="value
"…../>
</sql:after>
</sql:sync>
插入操作的更新语法是:
<sql:sync xmlns:sql="urn:schemas-microsoft-com:xml-sql">
[…
</sql:before>]
<sql:after>
<TABLENAME [sql:id="value"] [sql:at-identity="value"] col="value" col="value
"…../>
</sql:after>
</sql:sync>
删除操作的更新语法是:
<sql:sync>
<sql:before>
<TABLENAME KeyCol1="PKCol1Value" KeyCol2="PKCol2Value"
..
ColA="Value" ColB="Value"../>
</sql:before>
[<sql:after>
</sql:after>]
</sql:sync>
修改操作的更新语法是:
<sql:sync>
<sql:before>
<TABLENAME [sql:id="value"] KeyCol1="KeyCol1Value" KeyCol2="KeyCol2Value"
..
ColA="OldValue" ColB="OldValue"../>
</sql:before>
<sql:after>
<TABLENAME [sql:id="value"] KeyCol1="KeyCol1Value" KeyCol2="KeyCol2Value"
..
colA="NewValue" colB="NewValue"…../>
</sql:after>
</sql:sync>
利用对象模型在Script脚本程序中实现同样的功能
XML SQL 技术预览提供的osqlxml.dll允许利用对象模型在Script脚本程序中实现基于X
ML的数据库操作。下面是一个ASP示例:
<%@ LANGUAGE = VBScript %>
<% Response.ContentType = "text/xml" %>>
<%
SET oSQLXML = CreateObject("Microsoft.SQLXMLRequest")
oSQLXML.Connection = "Driver=SQL Server;Server=FRANKMAN-CAVE;Database=Northw
ind;uid=sa;pwd="
oSQLXML.ExecuteQuery("Select * from customers for XML AUTO")
Response.BinaryWrite oSQLXML.ResultAsBinary
%>

三、结束语
XML SQL 技术预览为我们展示了Microsoft在XML技术应用上的实力,通过将XML同数据库
相结合实现了强大的功能,但是,由于该技术目前只是一个预览版本,其本身还会不断
发展,相信在正式发布时将会有所改进。
小龙亭工作室 Blueski竭诚制作

--

I know i love you before i met you.
   I've been waiting all my life ... ...
yours,          
  freely


※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 天外飞仙]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.791毫秒