荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Jobs (温少), 信区: Visual
标  题: Microsoft SQL Server数据库的XML支持
发信站: BBS 荔园晨风站 (Sun Oct 29 19:29:49 2000), 转信


Microsoft SQL Server数据库的XML支持

作者: 王仲 写作日期:2000-4-6



一、背景
    就在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同数据库相结合实现了强大的功能,但是,由于该技术目前只是一个预览版本
,其本身还会不断发展,相信在正式发布时将会有所改进。


--


   我想超越这平凡的生活,注定我暂时漂泊!

   我无法停止我内心的狂热,对未来的执着!

※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.18.222]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店