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