WEB开发网
开发学院数据库MSSQL Server SQLServer和XML的集成 阅读

SQLServer和XML的集成

 2007-11-11 11:08:37 来源:WEB开发网   
核心提示:xml(标准化越来越近了)可谓最新的数据存储解决方案了,xml(标准化越来越近了)相比HTML给予了Web开发人员更大的编程灵活性,SQLServer和XML的集成,这种新技术驱动开发机构尝试把xml(标准化越来越近了)同自己的产品集成起来,微软就是采取如此举措的先驱者,其他方面的问题还包括IIS的OPENxml(标准

  xml(标准化越来越近了)可谓最新的数据存储解决方案了。xml(标准化越来越近了)相比HTML给予了Web开发人员更大的编程灵活性。这种新技术驱动开发机构尝试把xml(标准化越来越近了)同自己的产品集成起来。微软就是采取如此举措的先驱者。微软公司在开发Internet产品的时候一度慢慢腾腾,现在可就不同了。最近一位微软公司的高级职员就这样说:“你要给我们一刀,伤口里出来的尽是xml(标准化越来越近了)。”也许形容得有点过分,但事实确实是这样的:微软的几乎所有产品中都能看到xml(标准化越来越近了)的身影。举个例子:微软是如何在其sql server(WINDOWS平台上强大的数据库平台)产品线中集成xml(标准化越来越近了)的呢?下面咱们就来看看关键的FOR xml(标准化越来越近了)子句。
  以xml(标准化越来越近了)的名义获取信息
  
  sql server(WINDOWS平台上强大的数据库平台)和xml(标准化越来越近了)之间的集成首要一点就是根据SQL数据创建xml(标准化越来越近了)文件。xml(标准化越来越近了)文件的构造并不复杂,用简单的脚本和ADO记录集就可以轻松产生。这个任务虽然不算麻烦,但开发人员却需要针对他们从服务器获取的结果集合产生不同的脚本,或者编写更为复杂的通用脚本。SELECT 语句则由此而配备了新的FOR xml(标准化越来越近了)子句。
  
  该子句的语法如下所示:
  [ FOR { xml(标准化越来越近了) { RAW | AUTO | EXPLICIT }
  [ , xml(标准化越来越近了)DATA ]
  [ , ELEMENTS ]
  [ , BINARY BASE64 ] } ]
  
  FOR xml(标准化越来越近了)子句的xml(标准化越来越近了)模式由三种参数值表示:RAW、AUTO或者EXPLICIT。模式决定了结果xml(标准化越来越近了)的形式和组成。下面我们就更深入些地通过以下示例了解以上各个xml(标准化越来越近了)选项。
  
  RAW示例
  我们执行以下的SQL语句:
  SET ROWCOUNT 3
  SELECT Orders.OrderID, Orders.OrderDate, ProductID
  FROM Orders, [Order Details]
  WHERE Orders.OrderID = [Order Details].OrderID
  ORDER BY Orders.OrderID
  FOR xml(标准化越来越近了) RAW
  
  执行后产生的结果如下:
  
  
  
  
  AUTO示例
  我们执行以下的SQL语句:
  ‘结果限制为3条记录。
  SET ROWCOUNT 3
  SELECT Orders.OrderID, Orders.OrderDate, ProductID
  FROM Orders, [Order Details]
  WHERE Orders.OrderID = [Order Details].OrderID
  ORDER BY Orders.OrderID
  FOR xml(标准化越来越近了) AUTO
  
  产生的结果如下所示:
  
  
  
  
  

  
  EXPLICIT示例
  Explicit模式给予查询编程人员对产生xml(标准化越来越近了)的完全控制能力。然而这种控制力度却要价不菲:你得编写每一查询以便SQL语句能包含xml(标准化越来越近了)信息。
  
  有关的语法很复杂,而且超出了本文的讨论范围。[ , xml(标准化越来越近了)DATA ] [ , ELEMENTS ] [ , BINARY BASE64 ] 是相应的可选参数。
  
  可选元素
  
  示例可以让我们对各种设置的内部工作机理有更多的了解,下面我们就进一步研究下FOR xml(标准化越来越近了)语句的可选元素xml(标准化越来越近了)DATA。
  
  如果你设置该选项,那么xml(标准化越来越近了)-Data schema就会包含在结果集合里。以下是SQL语句:
  SET ROWCOUNT 3
  SELECT Orders.OrderID, Orders.OrderDate, ProductID
  FROM Orders, [Order Details]
  WHERE Orders.OrderID = [Order Details].OrderID
  ORDER BY Orders.OrderID
  FOR xml(标准化越来越近了) AUTO, xml(标准化越来越近了)DATA
  
  以上的SQL语句产生以下结果:
  (标准化越来越近了)ns="urn:schemas-microsoft-com:xml(标准化越来越近了)-data" xml(标准化越来越近了)ns:dt="urn:schemas-microsoft-com:datatypes">
  
  
  ELEMENTS
  ELEMENTS选项指示各数据列作为子元素而非属性返回。假如你采用AUTO模式就可以只采用该选项。
  
  BINARY BASE64
  使用该选项表示你希望采用base64编码格式表示二进制数据。
  
  采用xml(标准化越来越近了)子句的说法可就多了,你最好参考下SQL在线图书。
  
  在线指南
  sql server(WINDOWS平台上强大的数据库平台)在线图书 对FOR xml(标准化越来越近了)子句的用法进行了阐述。而且还提到了在使用这一子句时要注意的多项限制。比方说,FOR xml(标准化越来越近了)字句不能同视图定义或者COMPUTE BY子句合用。你不妨参考有关文档了解更多细节。
  
  本文只是对FOR xml(标准化越来越近了)子句的简单说明,这里要提醒你的是这一部分不过是xml(标准化越来越近了)同sql server(WINDOWS平台上强大的数据库平台)集成需要注意的一点,其他方面的问题还包括IIS的OPENxml(标准化越来越近了) 函数和模版文件等。看来真是这样,sql server(WINDOWS平台上强大的数据库平台)的每个毛孔都滴着xml(标准化越来越近了)这种东西。

Tags:SQLServer XML 集成

编辑录入:coldstar [复制链接] [打 印]
赞助商链接