《sql xml(个人收藏)》由会员分享,可在线阅读,更多相关《sql xml(个人收藏)(8页珍藏版)》请在金锄头文库上搜索。
1、FOR XML 子句有四种最基本的模式,如上图所示: 1、AUTO 模式:返回数据表为起表名的元素,每一列的值返回为属性; 2、RAW 模式:返回数据行为元素,每一列的值作为元素的属性; 3、PATH 模式:通过简单的 XPath 语法来允许用户自定义嵌套的 XML 结构、元素、属性值 4、EXPLICIT 模式:通过 SELECT 语法定义输出 XML 的结构 具体实例如下: 1、AUTO 模式 (1). SQL 语句:1: SELECT EmployeeID,FirstName,LastName FROM Employees FOR XML AUTO, XMLSCHEMA(2). 所生成的
2、 XML 文件: 返回 XML 文件的 XML Schema xsd:restrictionxsd:simpleTypexsd:attributexsd:restrictionxsd:simpleTypexsd:attributexsd:complexTypexsd:elementxsd:schema2、RAW 模式1: -将元素命名为自定义的名称 Employee2: SELECT EmployeeID,FirstName,LastName FROM Employees FOR XML RAW (Employee) (2). 所生成的 XML 文件: 1: 2: 3: 4: 5: 6: 7:
3、 8: 9: 3、PATH 模式: (1). SQL 语句:SELECT EmployeeID “ID“,FirstName “Name/FirstName“,LastName “Name/LastName“FROM Employees FOR XML PATH (Employee)(2). 所生成的 XML 文件NancyFirstNameDavolioLastNameNameEmployeeAndrewFirstNameFullerLastNameNameEmployeeJanetFirstNameLeverlingLastNameNameEmployeeMargaretFirstName
4、PeacockLastNameNameEmployeeStevenFirstNameBuchananLastNameNameEmployeeMichaelFirstNameSuyamaLastNameNameEmployeeRobertFirstNameKingLastNameNameEmployeeLauraFirstNameCallahanLastNameNameEmployee4、EXPLICIT 模式 问题:加入要生成如下的 XML 文档该如何操作?Nancy Davolio EXPLICIT 模式解决这个问题的应用分为两个主要步骤1.定义要输出的 XML 文档结构;2.传入实际的数据
5、值;(1). SQL 语句:-定义输出 XML 文档的数据结构 SELECT 1 AS Tag,NULL AS Parent,EmployeeID AS Employee!1!EmpID,FirstName AS Employee!1!FirstName!element,LastName AS Employee!1!LastName!elementFROMEmployees UNION ALL-传入实际的数据 SELECT 1, NULL, EmployeeID, FirstName, LastNameFROM EmployeesORDER BY Employee!1!EmpID,Employ
6、ee!1!FirstName!element, Employee!1!LastName!elementFOR XML EXPLICIT语句含义的解释:先看看定义 XML 结构的语句输出结果:Tag 栏用来指定生成元素的嵌套水平;1 表示嵌套水平为 Parent 栏用来指定当前 Tag 的父级层次;Null 值表示该元素为顶级元素; EmployeeID AS Employee!1!EmpID, 说明:当前元素或属性的父级元素的名称!元素的标签号!元素或属性的名称FirstName AS Employee!1!FirstName!element, 说明:当前元素或属性的父级元素的名称!元素的标签号!元素或属性的名称!指定值作为元素输出 5、为输出的 XML 文档添加根元素(Root element) (1). SQL 语句:SELECT EmployeeID,FirstName,LastName FROM Employees FOR XML AUTO, ROOT(MyRoot)(2). 所生成的 XML 文件MyRoot