XPath 쿼리에 명시적 변환 함수 지정(SQLXML 4.0)

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

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

예제

A. number() 명시적 변환 함수 사용

number() 함수는 인수를 숫자로 변환합니다.

ContactID 값이 숫자가 아닌 경우 다음 쿼리는 ContactID를 숫자로 변환하고 값 4와 비교합니다. 그런 다음, 쿼리는 숫자 값이 4인 ContactID 특성을 사용하여 컨텍스트 노드의 모든 <Employee> 요소 자식을 반환합니다.

/child::Contact[number(attribute::ContactID)= 4]  

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

/Contact[number(@ContactID) = 4]  

관계형 용어로 쿼리는 ContactID 가 4인 직원을 반환합니다.

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

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

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        /Contact[number(@ContactID)=4]  
      </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">  
  <Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />   
</ROOT>  

B. string() 명시적 변환 함수 사용

string() 함수는 인수를 문자열로 변환합니다.

다음 쿼리는 ContactID 를 문자열로 변환하고 문자열 값 "4"와 비교합니다. 쿼리는 문자열 값이 "4"인 ContactID를 사용하여 컨텍스트 노드의 모든 <Employee> 요소 자식을 반환합니다.

/child::Contact[string(attribute::ContactID)="4"]  

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

/Contact[string(@ContactID)="4"]  

이 쿼리는 숫자 값(즉, 숫자 4)이 아닌 문자열 값에 대해 계산을 수행하지만 기능적으로 앞의 예제 쿼리와 동일한 결과를 반환합니다.

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

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

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        Contact[string(@ContactID)="4"]  
      </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">  
  <Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />   
</ROOT>