全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQL Server 2008中有关XML的新功能1 导言 Microsoft 在Microsoft SQL Server 2000中推出了与XML相关的功能以及Transact-SQL 关键字FOR XML和OPENXML ,这使得开发人员可以编写Transact-SQL代码来获取XML流形式的查询结果,并将一个XML文档分割成一个rowset。SQL Server 2005显著的扩展了这些XML功能,推出了一个支持XSD schema验证、基于XQuery的操作和XML索引的本地的xml 数据类型。SQL Server 2008建立在之前版本的XML功能基础之上,做了改进来迎接客户在存储和操纵数据库中的XML数据时所面临的挑战。 2 SQL Server XML 功能的发展历程 SQL Server的XML功能随着从SQL Server2000版本以来的每一个版本而不断发展。在我们检查SQL Server 2008中的改进之前,通过之前的版本来总结XML功能的发展历程可能会比较有用。 2.1 SQL Server 2000中的XML功能 在SQL Server 2000中,Microsoft 推出了Transact-SQL 关键字FOR XML和OPENXML。FOR XML 是对SELECT语句的扩展,它返回如下面的示例所示的XML流式的查询结果。 tabletrtdSELECT ProductID, ProductName FROM Products Product FOR XML AUTO/td/tr/table这个查询返回一个如下面示例所示的XML片断: tabletrtd/td/tr/table OPENXML 功能执行与FOR XML 条件子句相反的功能,它创建一个XML文档的rowset ,如下面的示例所示: tabletrtdDECLARE doc nvarchar(1000)SET doc = DECLARE xmlDoc integerEXEC sp_xml_preparedocument xmlDoc OUTPUT, docSELECT * FROMOPENXML (xmlDoc, Order/Item, 1)WITH(OrderID integer ./OrderID,ProductID integer,Quantity integer)EXEC sp_xml_removedocument xmlDoc/td/tr/table注意用sp_xml_preparedocument和sp_xml_removedocument 存储过程来创建XML文档的节点树的一个内存展示的用法。这个Transact-SQL 代码返回下面的rowset。 tabletrtd=1,1,194OrderID/tdtd=1,1,140ProductID/tdtd=1,1,146Quantity/td/trtrtd=1,1,1941011/tdtd=1,1,1401/tdtd=1,1,1462/td/trtrtd=1,1,1941011/tdtd=1,1,1402/tdtd=1,1,1461/td/tr/table2.2 SQL Server 2005中的XML功能 在SQL Server 2005中,FOR XML 功能得到了增强,它有了对根元素和元素名称的新的选项、使用FOR XML 调用以便你可以建立复杂的层次关系的能力、和一个新的使得你可以定义将要使用XPath 语法来提取的XML结构的PATH 模式,如下面的示例所示: tabletrtdSELECT ProductID AS ProductID,ProductName AS ProductNameFROM ProductsFOR XML PATH (Product), ROOT (Products)/td/tr/table这个查询返回下面的XML: tabletrtdWidgetSprocket/td/tr/table除了增强SQL Server 2000已推出的XML功能,SQL Server 2005增加了一个新的、本地的xml 数据类型,使得你可以为XML数据创建变量和列,如下面的示例所示: tabletrtdfont=Arialsize=10ptCREATE XML SCHEMA COLLECTION ProductSchema AS/size/font/td/tr/table你可以使用xml 数据类型来存储数据库中的文档或数据。列和变量可以用于非类型化的XML或类型化的XML,后者是对一个XML Schema 定义(XML Schema Definition ,XSD)的schema有效。如果要为数据验证进行定义,开发人员可以使用CREATE XML SCHEMA COLLECTION 语句,如下面的示例所示: 在创建了一个schema 集合后,你可以通过参照schema集合将一个xml变量或列与它所包含的schema 声明结合起来,如下面的示例所示: tabletrtdfont=Arialsize=10ptCREATE TABLE SalesOrders(OrderID integer PRIMARY KEY,OrderDate datetime,CustomerID integer,OrderNotes xml)/size/font/td/tr/table类型化XML在插入值或更新值时对关联的schema 集合的声明进行验证,这使得可以为了遵从性检查或兼容性原因而加强关于XML数据的结构的业务规则。2007-12-16 20:37 virustXML 数据类型还提供了一些方法,使得你可以使用它们来查询和操纵实例的XML数据。例如,你可以使用query 方法来查询xml 数据类型的一个实例的XML数据,如下面的示例所示: tabletrtddeclare x xmlset x=Kim Abercrombie Margaret Smith SELECT x.query(for $invoice in /Invoices/Invoicereturn $invoice/Customer)/td/tr/table这个例子中的查询使用了一个XQuery 表达式,这个表达式找出文档中的每一个Invoice 元素,并返回一个包含每一个Invoice 元素的Customer元素的XML文档,如下面的示例所示: tabletrtdKim AbercrombieMargaret Smith/td/tr/tableSQL Server 2005中的另外一个显著的与XML相关的特性是对XML索引的支持。你可以为类型化xml的列创建首要和次要的XML索引来增强XML查询性能,一个首要的XML索引是一个XML实例的所有节点的部分表示,查询处理器可以使用它来快速的找到一个XML值中的节点。在你创建了一个首要的XML索引之后,你可以创建次要的XML索引来提高特定的查询类型的性能。下面的示例创建了一个首要的XML索引,和一个PATH类型的次要XML索引,它可以提高使用XPath表达式来标识一个XML实例中的节点的查询的性能。 tabletrtdCREATE PRIMARY XML INDEX idx_xml_Notes ON SalesOrders (Notes) GO CREATE XML INDEX idx_xml_Path_Notes ON SalesOrders (Notes) USING XML INDEX idx_xml_Notes FOR PATH GO/td/tr/table2.3 SQL Server 2008中的XML功能 XML功能是在SQL Server 2000和SQL Server 2005中推出的,在SQL Server 2008中得到了增强。在SQL Server 2008中主要的与XML相关的改进包括: 改进了schema 验证能力 增强了对XQuery 的支持 增强了XML数据操纵语言(DML)的插入功能 本篇白皮书的其余部分描述了这些增强之处,并介绍了你怎样在SQL Server 2008中使用它们来实现更好的XML解决方案。 3 增强了XML Schema验证功能 你可以使用一个或多个XSD schema执行遵从性检查,以此来验证XML数据。一个schema为某个特定的XML数据结构定义被允许的XML元素和属性,并通常用于确保XML文档按正确的结构包含进了所要求的所有数据元素。 SQL Server 2005推出了通过使用XML schema 集合来进行XML数据验证。一般的方法是使用CREATE XML SCHEMA COLLECTION语句创建包含了针对你的XML数据的schema 规则的schema集合,然后当你要定义一个必须符合这个schema 集合中的schema 规则的xml字段或变量时参照这个schema集合名称。然后SQL Server会按照这个schema集合中的schema规则来验证插入或更新进这个字段或变量的所有数据。 在SQL Server 2005中的XML Schema支持实现了一个广泛的纯XML Schema规格的子集,并涵盖了最常见的XML验证场景。SQL Server 2008扩展了这个支持,使得它包含下面新增加的由客户确定的schema 验证要求: 对lax 验证的支持 对dateTime、time和date 验证的完全支持,包括时区信息的保存。 改进了对union和list类型的支持 3.1 支持Lax验证 XML Schema通过使用any、anyAttribute和anyType声明来支持XML文档中的通配符。例如,看看下面的XML schema 声明: tabletrtd /td/tr/t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市建设 公务员考试试题及答案
- 光伏储能系统设计与优化方案
- 垃圾填埋场选址与规划设计方案
- 储能项目投资回报率分析与优化
- 风电场建设项目总体规划与设计方案
- 租赁住房工程商业计划书
- 2026年能源加工公司现金收支内部控制管理制度
- 2026年能源加工公司安全事故报告调查管理制度
- 房建工程模板施工方案
- 城市交通中直流快速充电桩的布局规划
- 2025年黑龙江、吉林、辽宁、内蒙古高考历史真题
- 药厂质量保证QA培训大纲
- 2025年档案培训考试试题库及答案
- 建筑三级安全教育考试卷及答案
- 共享物流配送模式与智慧物流协同发展-洞察及研究
- 龙江森工考试题库及答案
- 2025玉溪新农村数字电影院线有限责任公司工作人员招聘(3人)笔试考试参考题库及答案解析
- 江苏省南通巿2026届化学高一上期中质量跟踪监视试题含解析
- 2025南航招飞英语测试题库及答案
- 2024年湖北省农商行招录考试真题
- 国家义务教育质量监测现场操作手册
评论
0/150
提交评论