XPath 쿼리에 부울 연산자 지정(SQLXML 4.0)Specifying Boolean Operators in XPath Queries (SQLXML 4.0)

적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database

다음 예에서는 XPath 쿼리에 부울 연산자를 지정하는 방법을 보여 줍니다.The following example shows how Boolean operators are specified in XPath queries. 이 예의 XPath 쿼리는 SampleSchema1.xml에 포함된 매핑 스키마에 대해 지정되었습니다.The XPath query in this example is specified against the mapping schema contained in SampleSchema1.xml. 이 샘플 스키마에 대 한 자세한 내용은 예제 주석 XSD schema For XPath 예제 (SQLXML 4.0)를 참조 하세요.For information about this sample schema, see Sample Annotated XSD Schema for XPath Examples (SQLXML 4.0).

예제Examples

A.A. OR 부울 연산자 지정Specify the OR Boolean operator

이 XPath 쿼리는 <Customer> CustomerID 특성 값이 13 또는 31 인 컨텍스트 노드의 요소 자식을 반환 합니다.This XPath query returns the <Customer> element children of the context node with the CustomerID attribute value of 13 or 31:

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

특성 축에 대 한 바로 가기 (@)를 지정할 수 있으며, 자식 축이 기본값 이므로 생략할 수 있습니다.A shortcut to the attribute axis (@) can be specified, and because the child axis is the default, it can be omitted:

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

조건자에서 attribute 는 축이 고 CustomerID 는 노드 테스트 ( <attribute> 해당 <attribute> 노드가 특성 축에 대 한 주 노드인지 때문에 CustomerID가 노드인 경우 TRUE)입니다.In the predicate, attribute is the axis and CustomerID is the node test (TRUE if CustomerID is an <attribute> node, because the <attribute> node is the primary node for the attribute axis). 조건자는 요소를 필터링 <Customer> 하 고 조건자에 지정 된 조건을 만족 하는 요소만 반환 합니다.The predicate filters the <Customer> elements and returns only those that satisfy the condition specified in the predicate.

매핑 스키마에 대해 XPath 쿼리를 테스트하려면To test the XPath queries against the mapping schema
  1. 샘플 스키마 코드 를 복사 하 여 텍스트 파일에 붙여 넣습니다.Copy the sample schema code and paste it into a text file. 파일을 SampleSchema1.xml로 저장합니다.Save the file as SampleSchema1.xml.

  2. 다음 템플릿(BooleanOperatorsA.xml)을 만들어 SampleSchema1.xml이 저장된 디렉터리에 저장합니다.Create the following template (BooleanOperatorsA.xml) and save it in the directory where SampleSchema1.xml is saved.

    <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)에 대해 지정된 디렉터리 경로는 템플릿이 저장된 디렉터리에 상대적입니다.The directory path specified for the mapping schema (SampleSchema1.xml) is relative to the directory where the template is saved. 또한 다음과 같이 절대 경로를 지정할 수 있습니다.An absolute path also can be specified, for example:

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

    자세한 내용은 ADO를 사용 하 여 SQLXML 4.0 쿼리 실행을 참조 하세요.For more information, see Using ADO to Execute SQLXML 4.0 Queries.

다음은 템플릿 실행의 결과 집합입니다.Here is the result set of the template execution:

<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>