下面是模板的一般形式,显示了指定 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>
模板中的任何元素都是可选的。元素 1aa9e5d373740b65a0cc8f0a02150c53、0c68fef83818661b6da588c77ca3985e、708654619547c0a0fe5e1defc275b0b6、57dbe22da5230054e8cffe8ae1f3024c 和特性映射架构在 sql 命名空间中定义。因此,必须在命名空间中声明 xmlns:sql="urn:schemas-microsoft-com:xml-sql"。可对命名空间任意命名;sql 只是一个别名。
b3e08f117497c93350eaf67fc4b5f7c5
指定此标记以提供所得到的 XML 文档的单个顶层元素(也称为根标记)。b3e08f117497c93350eaf67fc4b5f7c5 标记可以是任何名称。
a7047a4cd2c47b5ef55f8f44976e7bb5
此标记用于保存所有标题值。在目前的实施方案中,只能在此标记中指定 890d0d6974fb473141d6fe1ce33c7b9b 元素。a7047a4cd2c47b5ef55f8f44976e7bb5 用作包含标记,使您得以定义多个参数。所有的参数定义都在一个位置中,这使得处理参数定义更有效。
890d0d6974fb473141d6fe1ce33c7b9b
该元素用于定义在模板内传递到查询的参数。每个 0c68fef83818661b6da588c77ca3985e 元素定义一个参数。可以在 a7047a4cd2c47b5ef55f8f44976e7bb5 标记中定义多个 0c68fef83818661b6da588c77ca3985e 元素。
610cd9e9a8df248833435b157c4f03a6
该元素用于指定 SQL 查询。可以在模板中指定多个 610cd9e9a8df248833435b157c4f03a6 元素。
ce8aaecb80f1b7f3ef757febb0ffa6c4
该元素用于指定 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。
说明 每个 610cd9e9a8df248833435b157c4f03a6 或 ca6c78e2cea03519505bd5cf9d5b0c5e 表示单独的事务。因此,如果在模板中有多个 610cd9e9a8df248833435b157c4f03a6 或 ca6c78e2cea03519505bd5cf9d5b0c5e 标记,当一个标记失败时,其它标记将继续。
如果设置了 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
以上就是使用 XML 模板 (MSSQL手册)的内容,更多相关内容请关注PHP中文网(www.php.cn)!