以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XML 与 数据库 』  (http://bbs.xml.org.cn/list.asp?boardid=17)
----  [转载]Microsoft SQL Server数据库的XML支持  (http://bbs.xml.org.cn/dispbbs.asp?boardid=17&rootid=&id=5402)


--  作者:admin
--  发布时间:2/17/2004 6:20:00 PM

--  [转载]Microsoft SQL Server数据库的XML支持
转载自:http://xml007.myetang.com/tec/t019.htm

题名: Microsoft SQL Server数据库的XML支持
(作者:王仲 出处:XML中国论坛)

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

二、技术特点

  在此之前,Microsoft就一直致力于将XML技术同其数据库旗舰产品SQL Server相集成,以帮助建立下一代的高效的基于Web的企业应用。Microsoft宣称,其下一版本SQL Server,即代号为Shiloh,将是一个完全支持XML的产品,利用该产品,用户可以在Web浏览器下输入一个URL地址,即可访问SQL Server数据库,而返回的结果可以是一个XML文档。另外,它还允许通过输入样式参数,指定样式信息,以便在浏览器中输出丰富的页面。一个典型的URL如下所述:href = http: // localhost / Northwind ? sql = select + 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 Pack 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脚本程序中实现基于XML的数据库操作。下面是一个ASP示例:
<%@ LANGUAGE = VBScript %>
<% Response.ContentType = "text/xml" %>>
<%
SET oSQLXML = CreateObject("Microsoft.SQLXMLRequest")
oSQLXML.Connection = "Driver=SQL Server;Server=FRANKMAN-CAVE;Database=Northwind;uid=sa;pwd="
oSQLXML.ExecuteQuery("Select * from customers for XML AUTO")
Response.BinaryWrite oSQLXML.ResultAsBinary
%>

三、结束语  

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


--  作者:diegor
--  发布时间:3/11/2004 2:23:00 PM

--  
呵呵,那里可以看到效果?
--  作者:金色约定
--  发布时间:11/18/2004 1:01:00 PM

--  
ding!
--  作者:xmzhy
--  发布时间:11/25/2004 4:41:00 PM

--  
ding
--  作者:zcszhouy
--  发布时间:3/2/2005 4:36:00 PM

--  
支持
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms