当前位置: 首页 > 图文教程 > XML家族 > XML > 使用 XML 模板 (MSSQL手册)

XML
XML简易教程之四
XML与HTML的结合(上)
XML与HTML的结合(下)
XML入门的常见问题(一)
XML入门的常见问题(二)
XMLHTTP资料
什么是XML
什么是 XML Web Service
XML正在接管Web服务 成为SOA的基础
怎么样在网页上读取远程xml的数据
XML教程—编写结构完整的XML文档
读写xml文件的2个小函数
XML文档的基本操作
初学者如何开发出一个高质量的J2EE系统
优化 JavaScript 代码
自动更新程序的设计框架
使Firefox对XML的处理兼容IE的节点处理方法
WML学习之四 锚和任务
WML学习之五 显示表单
WML学习之六 事件

使用 XML 模板 (MSSQL手册)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 66 ::
收藏到网摘: n/a

下面是模板的一般形式,显示了指定 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