在 XPath 查询中指定 XPath 变量 (SQLXML 4.0)

适用于:SQL Server Azure SQL 数据库

以下示例说明如何在 XPath 查询中传递 XPath 变量。 这些示例中的 XPath 查询是针对 SampleSchema1.xml 中包含的映射架构指定的。 有关此示例架构的信息,请参阅 XPath 示例的示例带批注的 XSD 架构(SQLXML 4.0)。

示例

A. 使用 XPath 变量

示例模板由两个 XPath 查询构成。 每个 XPath 查询都采用一个参数。 该模板还为这些参数指定默认值。 如果未指定参数值,则使用默认值。 sql:header><指定了两个具有默认值的参数。

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <sql:header>  
     <sql:param name='CustomerID'>1</sql:param>  
     <sql:param name='ContactID'>1</sql:param>   
  </sql:header>  
  <sql:xpath-query mapping-schema="SampleSchema1.xml">  
    Customer[@CustomerID=$CustomerID]   
  </sql:xpath-query >  
  <sql:xpath-query mapping-schema="SampleSchema1.xml">  
   Contact[@ContactID=$ContactID]   
  </sql:xpath-query>  
</ROOT>  
针对映射架构测试 XPath 查询
  1. 复制示例架构代码并将其粘贴到文本文件中。 将该文件另存为 SampleSchema1.xml。

  2. 创建以下模板 (XPathVariables.xml),并将它保存在以下目录中:

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:header>  
         <sql:param name='CustomerID'>1</sql:param>  
         <sql:param name='ContactID'>1</sql:param>   
      </sql:header>  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        Customer[@CustomerID=$CustomerID]   
      </sql:xpath-query >  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
       Contact[@ContactID=$ContactID]   
      </sql:xpath-query>  
    </ROOT>  
    

    为映射架构 (SampleSchema1.xml) 指定的目录路径是相对于模板保存目录的相对路径。 也可以指定绝对路径,例如:

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. 创建并使用 SQLXML 4.0 测试脚本 (Sqlxml4test.vbs) 执行该模板。 有关详细信息,请参阅使用 ADO 执行 SQLXML 4.0 查询

注意

在此示例中,不传递参数。 因此,使用默认参数值。