문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

XPath 쿼리에 부울 반환 조건자 지정(SQLXML 4.0)

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

1.여러 조건자 지정

다음 XPath 쿼리에서는 여러 조건자를 사용하여 지정된 주문 ID 및 고객 ID에 대한 주문 정보를 찾습니다.

/child::Customer[attribute::CustomerID="1"]/child::Order[attribute::OrderID="Ord-43860"]

attribute 축에 대한 바로 가기(@)를 지정할 수 있으며 child 축은 기본값이므로 쿼리에서 생략할 수 있습니다.

/Customer[@CustomerID="1"]/Order[@SalesOrderID="Ord-43860"]

매핑 스키마에 대해 XPath 쿼리를 테스트하려면

  1. 예제 스키마 코드를 복사한 후 텍스트 파일에 붙여 넣습니다. 파일을 SampleSchema1.xml로 저장합니다.

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

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="SampleSchema1.xml">
        /Customer[@CustomerID="1"]/Order[@SalesOrderID="Ord-43860"]
      </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">
      <Order SalesOrderID="Ord-43860" SalesPersonID="280" OrderDate="2001-08-01T00:00:00" DueDate="2001-08-13T00:00:00" ShipDate="2001-08-08T00:00:00">
        <OrderDetail ProductID="Prod-729" UnitPrice="226.8571" OrderQty="1" UnitPriceDiscount="0" /> 
        <OrderDetail ProductID="Prod-732" UnitPrice="440.1742" OrderQty="1" UnitPriceDiscount="0" /> 
        <OrderDetail ProductID="Prod-738" UnitPrice="220.2496" OrderQty="1" UnitPriceDiscount="0" /> 
        <OrderDetail ProductID="Prod-753" UnitPrice="2576.3544" OrderQty="2" UnitPriceDiscount="0" /> 
        <OrderDetail ProductID="Prod-756" UnitPrice="1049.7528" OrderQty="1" UnitPriceDiscount="0" /> 
        <OrderDetail ProductID="Prod-758" UnitPrice="1049.7528" OrderQty="2" UnitPriceDiscount="0" /> 
        <OrderDetail ProductID="Prod-761" UnitPrice="503.3507" OrderQty="2" UnitPriceDiscount="0" /> 
        <OrderDetail ProductID="Prod-762" UnitPrice="503.3507" OrderQty="1" UnitPriceDiscount="0" /> 
        <OrderDetail ProductID="Prod-763" UnitPrice="503.3507" OrderQty="1" UnitPriceDiscount="0" /> 
        <OrderDetail ProductID="Prod-765" UnitPrice="503.3507" OrderQty="2" UnitPriceDiscount="0" /> 
        <OrderDetail ProductID="Prod-768" UnitPrice="503.3507" OrderQty="1" UnitPriceDiscount="0" /> 
        <OrderDetail ProductID="Prod-770" UnitPrice="503.3507" OrderQty="1" UnitPriceDiscount="0" /> 
      </Order>
    </ROOT>
    

2.연속 및 중첩된 조건자 지정

다음 쿼리에서는 연속 조건자를 사용하는 방법을 보여 줍니다. 이 쿼리는 값이 277인 SalesPersonID 특성과 값이 3인 TerritoryID 특성이 둘 다 포함된 컨텍스트 노드의 모든 <Customer> 자식 요소를 반환합니다.

/child::Customer[attribute::SalesPersonID="277"][attribute::TerritoryID="3"]

이 쿼리는 조건자에 지정된 조건을 모두 충족하는 <Customer> 요소를 반환합니다.

attribute 축에 대한 바로 가기(@)를 지정할 수 있으며 child 축은 기본값이므로 쿼리에서 생략할 수 있습니다.

/Customer[@SalesPersonID="277"][@TerritoryID="3"]

다음 XPath 쿼리에서는 중첩된 조건자를 사용하는 방법을 보여 줍니다. 이 쿼리는 SalesPersonID 특성 값이 2인 <Order> 요소가 하나 이상 있는 <Order> 자식 요소가 포함된 컨텍스트 노드의 모든 <Customer> 자식 요소를 반환합니다.

/Customer[Order[@SalesPersonID=2]]

매핑 스키마에 대해 XPath 쿼리를 테스트하려면

  1. 예제 스키마 코드를 복사한 후 텍스트 파일에 붙여 넣습니다. 파일을 SampleSchema1.xml로 저장합니다.

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

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="SampleSchema1.xml">
             /Customer[@SalesPersonID="277"][@TerritoryID="3"]
      </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="22" SalesPersonID="277" TerritoryID="3" 
            AccountNumber="22" CustomerType="S" 
            Orders="Ord-43874 Ord-44519 Ord-46989 Ord-48013 Ord-49130 Ord-50274 Ord-51807 Ord-57113 Ord-63162 Ord-69495">
    <Order SalesOrderID="Ord-43874" SalesPersonID="277" 
           OrderDate="2001-08-01T00:00:00" 
           DueDate="2001-08-13T00:00:00" 
           ShipDate="2001-08-08T00:00:00">
      <OrderDetail ProductID="Prod-763" UnitPrice="503.3507" 
                   OrderQty="1" UnitPriceDiscount="0" /> 
    </Order>
    ...
  </Customer>
  <Customer CustomerID="39" SalesPersonID="277" TerritoryID="3" 
            AccountNumber="39" CustomerType="S" 
            Orders="Ord-47428 Ord-48367 Ord-49529 Ord-50742 Ord-53591 Ord-59051 Ord-65301 Ord-71912">    <Order SalesOrderID="Ord-47428" SalesPersonID="277" 
           OrderDate="2002-09-01T00:00:00" 
           DueDate="2002-09-13T00:00:00" 
           ShipDate="2002-09-08T00:00:00">
      <OrderDetail ProductID="Prod-759" UnitPrice="563.7528" OrderQty="2" UnitPriceDiscount="0" /> 
      <OrderDetail ProductID="Prod-769" UnitPrice="563.7528" OrderQty="1" UnitPriceDiscount="0" /> 
      ...
    </Order>
    ...
  </Customer>
  ...
</ROOT>

3.최상위 조건자 지정

다음 쿼리에서는 <Order> 요소 자식이 있는 컨텍스트 노드의 <Customer> 자식 요소 노드를 반환합니다. 이 쿼리에서는 위치 경로를 최상위 조건자로 테스트합니다.

/child::Customer[child::Order]

기본값은 child 축입니다. 따라서 다음과 같이 쿼리를 지정할 수 있습니다.

/Customer[Order]

매핑 스키마에 대해 XPath 쿼리를 테스트하려면

  1. 예제 스키마 코드를 복사한 후 텍스트 파일에 붙여 넣습니다. 파일을 SampleSchema1.xml로 저장합니다.

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

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="SampleSchema1.xml">
        /Customer[Order]
      </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="1" SalesPersonID="280" TerritoryID="1" AccountNumber="1" CustomerType="S" Orders="Ord-43860 Ord-44501 Ord-45283 Ord-46042">
    <Order SalesOrderID="Ord-43860" SalesPersonID="280" OrderDate="2001-08-01T00:00:00" DueDate="2001-08-13T00:00:00" ShipDate="2001-08-08T00:00:00">
      <OrderDetail ProductID="Prod-729" UnitPrice="226.8571" OrderQty="1" UnitPriceDiscount="0" /> 
      <OrderDetail ProductID="Prod-732" UnitPrice="440.1742" OrderQty="1" UnitPriceDiscount="0" /> 
      <OrderDetail ProductID="Prod-738" UnitPrice="220.2496" OrderQty="1" UnitPriceDiscount="0" /> 
      ...
    </Order>
    <Order SalesOrderID="Ord-44501" SalesPersonID="280" OrderDate="2001-11-01T00:00:00" DueDate="2001-11-13T00:00:00" ShipDate="2001-11-08T00:00:00">
      <OrderDetail ProductID="Prod-725" UnitPrice="226.8571" OrderQty="3" UnitPriceDiscount="0" /> 
      <OrderDetail ProductID="Prod-726" UnitPrice="226.8571" OrderQty="2" UnitPriceDiscount="0" /> 
      ...
    </Order>    ...
  </Customer>
  ...
</ROOT>

커뮤니티 추가 항목

추가
표시: