使用 XML 模板 (MSSQL手册)

来源:互联网 时间:2008-09-04 14:25:00 

下面是模板的一般形式,显示了指定 SQL 查询和 XPath 查询的方式: 



<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"
       sql:xsl='XSL FileName' >
  <sql:header>
    <sql:param>..</sql:param>
    <sql:param>..</sql:param>...n
  </sql:header>
  <sql:query>
    sql statement(s)
  </sql:query>
  <sql:xpath-query mapping-schema="SchemaFileName.xml">
    XPath query
  </sql:xpath-query>
</ROOT>


 

模板中的任何元素都是可选的。元素 <header>、<param>、<query>、<XPath-query> 和特性映射架构在 sql 命名空间中定义。因此,必须在命名空间中声明 xmlns:sql="urn:schemas-microsoft-com:xml-sql"。可对命名空间任意命名;sql 只是一个别名。


<ROOT>

指定此标记以提供所得到的 XML 文档的单个顶层元素(也称为根标记)。<ROOT> 标记可以是任何名称。


<sql:header>

此标记用于保存所有标题值。在目前的实施方案中,只能在此标记中指定 <sql:param> 元素。<sql:header> 用作包含标记,使您得以定义多个参数。所有的参数定义都在一个位置中,这使得处理参数定义更有效。


<sql:param>

该元素用于定义在模板内传递到查询的参数。每个 <param> 元素定义一个参数。可以在 <sql:header> 标记中定义多个 <param> 元素。


<sql:query>

该元素用于指定 SQL 查询。可以在模板中指定多个 <sql:query> 元素。


<sql:xpath-query>

该元素用于指定 XPath 查询。因为 XPath 查询是在带批注的 XML 数据简化 (XDR) 架构上执行,所以必须使用 mapping-schema 特性指定架构文件名。



sql:xsl


该特性用于指定将应用于所得到的 XML 文档的可扩展样式表语言 (XSL) 样式表。在指定映射架构文件时,可以指定相对或绝对路径。指定的相对路径是相对于与 template 类型的虚拟名称关联的目录。例如,如果与 template 类型的虚拟名称相关联的目录是 C:\Template,那么为 sql:xsl 指定的相对路径 Xyz/MyXSL.xml 将映射到 C:\Template\Xyz\MyXSL.xml。


mapping-schema

该特性用于标识带批注的 XDR 架构。仅当在模板中执行 XPath 查询时才指定该特性。XPath 查询在带批注的 XDR 架构上执行。在指定映射架构文件时,可以指定相对或绝对路径。指定的相对路径是相对于与 template 类型的虚拟名称关联的目录。例如,如果与 template 类型的虚拟名称关联的目录是 C:\Template,则相对路径(为 mapping-schema 指定的 schema/MSchema.xml)映射到 C:\Template\Schema\MSchema.xml。

说明  每个 <sql:query> 或 <sql:XPath-query> 表示单独的事务。因此,如果在模板中有多个 <sql:query> 或 <sql:XPath-query> 标记,当一个标记失败时,其它标记将继续。

如果设置了 contenttype,则 Sqlisapi.dll 将标题信息返回给浏览器。如果没有设置 contenttype,则 urlmon 使用模板文件中的第一个字符确定内容类型。如果模板中的第一个字符是 < 字符或 Unicode 字节顺序标志 (0xFFFE),则将 text/xml 作为内容类型返回给浏览器,且浏览器显示结果。否则,Sqlisapi.dll 不发送用以指导浏览器如何显示结果的内容类型标题信息;因此,在浏览器中将看不到结果。

可以在 URL 模板中指定模板之前,必须使用用于 SQL Server 的 IIS 虚拟目录管理实用工具创建 template 类型的虚拟名称。有关更多信息,请参见使用用于 SQL Server 的 IIS 虚拟目录管理实用工具。

存储模板

模板存储在与 template 类型的虚拟名称关联的目录或它的一个子目录中: 

如果模板存储在与 template 类型的虚拟名称关联的目录中,则 URL 查询的形式如下: 
http://IISServer/nwind/TemplateVirtualName/TemplateFile.xml

如果模板存储在与 template 类型 (xyz) 的虚拟名称关联的子目录中,则 URL 查询的形式如下: 
http://IISServer/nwind/TemplateVirtualName/xyz/TemplateFile.xml 

 对于在 URL 中直接指定的 XPath 查询,不支持命名空间。如果希望在 XPath 查询中使用命名空间,则应使用 template 

标签:
0
投稿

猜你喜欢

  • python编写图书管理系统

    2022-04-12 11:07:21
  • 如何用python反转图片,视频

    2023-08-27 08:18:21
  • 基于python分布式爬虫并解决假死的问题

    2021-06-28 03:38:28
  • js模拟实现Array的sort方法

    2024-04-10 11:03:22
  • 电子商务网站评论设计探讨

    2009-12-21 16:28:00
  • 浅谈Selenium+Webdriver 常用的元素定位方式

    2022-04-17 23:14:43
  • MySQL安装与创建用户操作(新手入门指南)

    2024-01-28 05:35:19
  • Python+OpenCV数字图像处理之ROI区域的提取

    2021-01-17 18:54:43
  • python使用scapy模块实现ARP扫描的过程

    2023-07-16 11:55:26
  • Python实现深度遍历和广度遍历的方法

    2023-10-13 20:41:13
  • Python中的sort()方法使用基础教程

    2022-03-07 21:44:09
  • python列表与列表算法详解(2)

    2023-06-10 21:11:10
  • javascript事件冒泡,事件捕获和事件委托详解

    2024-04-10 14:02:47
  • msxml3.dll 错误解决办法

    2009-05-25 18:02:00
  • Python基于stuck实现scoket文件传输

    2023-06-06 22:59:50
  • 教你用Python matplotlib库制作简单的动画

    2021-08-20 02:58:49
  • Dephi逆向工具Dede导出函数名MAP导入到IDA中的实现方法

    2023-04-09 06:31:40
  • python中urlparse模块介绍与使用示例

    2021-08-08 10:13:18
  • 使用Python处理json字符串中的非法双引号问题

    2021-01-19 19:26:13
  • TensorFlow 滑动平均的示例代码

    2023-10-25 15:41:28
  • asp之家 网络编程 m.aspxhome.com