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