以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (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=6887)


--  作者:admin
--  发布时间:4/20/2004 2:10:00 PM

--  Microsoft SQL Server数据库的XML支持
发信人: cloudLo (呵呵), 信区: XML       
标  题: Microsoft SQL Server数据库的XML支持
发信站: BBS 水木清华站 (Wed Jun 21 07:53:57 2000)


Microsoft SQL Server数据库的XML支持
作者: 王仲 写作日期:00-4-6
一、背景
    就在XML技术在全球日益盛行的时候,Microsoft于2000年1月宣布其SQL Server对X
ML提供支持,并且发布了一个预览版本,它意味着Microsoft在其战略决策上将XML技术
放在一个何等重要的地位,而这一消息的发布无疑将给广大的XML技术人员和SQL Serve
r用户带来强劲动力。Microsoft SQL Server的XML支持计划,是其下一步庞大计划的一
部分,即旨在产生一组功能强大的产品和服务来实现所谓的BizTalk 框架。BizTalk 是
Microsoft现有的、帮助商务公司实现应用软件一体化的分布式互连网应用DNA (Window
s Distributed interNet Applications )体系结构的延伸和扩展。以后的Microsoft产
品和工具本身都将包含对BizTalk 服务体系结构的支持。Microsoft Commerce Platfor
m、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 = s
elect + 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 Servi
ce 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脚本程序中实现基于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同数
据库相结合实现了强大的功能,但是,由于该技术目前只是一个预览版本,其本身还会
不断发展,相信在正式发布时将会有所改进。

--
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.118.81.11]


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