XPath 쿼리에 부울 연산자 지정(SQLXML 4.0)

적용 대상: SQL Server Azure SQL 데이터베이스

다음 예에서는 XPath 쿼리에 부울 연산자를 지정하는 방법을 보여 줍니다. 이 예의 XPath 쿼리는 SampleSchema1.xml에 포함된 매핑 스키마에 대해 지정되었습니다. 이 샘플 스키마에 대한 자세한 내용은 XPath 예제에 대한 샘플 주석 XSD 스키마(SQLXML 4.0)를 참조하세요.

예제

A. OR 부울 연산자 지정

이 XPath 쿼리는 <CustomerID> 특성 값이 13 또는 31인 컨텍스트 노드의 Customer 요소 자식을 반환합니다.

/child::Customer[attribute::CustomerID="13" or attribute::CustomerID="31"]  

특성 축(@)에 대한 바로 가기를 지정할 수 있으며 자식 축이 기본값이므로 생략할 수 있습니다.

/Customer[@CustomerID="13" or @CustomerID="31"]  

조건자 에서 는 attribute 축이고 CustomerID 는 노드 테스트입니다(특성 노드가 특성 축>의 기본 노드이기 때문에 CustomerID가< 특성 노드인 경우 TRUE).<> 조건자는 Customer> 요소를 필터링<하고 조건자에 지정된 조건을 충족하는 요소만 반환합니다.

매핑 스키마에 대해 XPath 쿼리를 테스트하려면
  1. 샘플 스키마 코드를 복사하여 텍스트 파일에 붙여넣습니다. 파일을 SampleSchema1.xml로 저장합니다.

  2. 다음 템플릿(BooleanOperatorsA.xml)을 만들어 SampleSchema1.xml이 저장된 디렉터리에 저장합니다.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        /Customer[@CustomerID="13" or @CustomerID="31"]  
      </sql:xpath-query>  
    </ROOT>  
    

    매핑 스키마(SampleSchema1.xml)에 대해 지정된 디렉터리 경로는 템플릿이 저장된 디렉터리에 상대적입니다. 또한 다음과 같이 절대 경로를 지정할 수 있습니다.

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. SQLXML 4.0 테스트 스크립트(Sqlxml4test.vbs)를 만든 다음 이 스크립트를 사용하여 템플릿을 실행합니다.

    자세한 내용은 ADO를 사용하여 SQLXML 4.0 쿼리 실행을 참조하세요.

다음은 템플릿 실행의 결과 집합입니다.

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Customer CustomerID="13" SalesPersonID="286" TerritoryID="7" AccountNumber="13" CustomerType="S" />   
  <Customer CustomerID="31" SalesPersonID="286" TerritoryID="7" AccountNumber="31" CustomerType="S" Orders="Ord-51803 Ord-69427">  
    <Order SalesOrderID="Ord-51803" SalesPersonID="286" OrderDate="2003-08-01T00:00:00" DueDate="2003-08-13T00:00:00" ShipDate="2003-08-08T00:00:00">  
      <OrderDetail ProductID="Prod-718" UnitPrice="1059.31" OrderQty="1" UnitPriceDiscount="0" />   
      <OrderDetail ProductID="Prod-838" UnitPrice="1059.31" OrderQty="1" UnitPriceDiscount="0" />   
    </Order>  
    <Order SalesOrderID="Ord-69427" SalesPersonID="286" OrderDate="2004-05-01T00:00:00" DueDate="2004-05-13T00:00:00" ShipDate="2004-05-08T00:00:00">  
      <OrderDetail ProductID="Prod-835" UnitPrice="440.1742" OrderQty="1" UnitPriceDiscount="0" />   
    </Order>  
  </Customer>  
</ROOT>