Aracılığıyla paylaş


XPath Sorgularında Açık Dönüşüm Fonksiyonlarının Belirtilmesi (SQLXML 4.0)

Şunlar için geçerlidir:SQL ServerAzure SQL Veritabanı

Aşağıdaki örnekler, XPath sorgularında açık dönüşüm fonksiyonlarının nasıl belirlendiğini göstermektedir. Bu örneklerdeki XPath sorguları, SampleSchema1.xmliçinde bulunan eşleme şemasına göre tanımlanmıştır. Bu örnek şema hakkında bilgi için Örnek Açıklamalı XSD Şeması (XPath Örnekleri için Örnek Açıklamalı XSD Şeması'na (SQLXML 4.0) bakınız.

Örnekler

A. Number() açık dönüşüm fonksiyonunu kullanın

Number() fonksiyonu, bir argümanı bir sayıya dönüştürür.

ContactID'nin değeri sayısal değilse, aşağıdaki sorgu ContactID'yi bir sayıya dönüştürür ve bunu 4 değeriyle karşılaştırır. Sorgu, 4 sayısal değere sahip ContactID özniteliğine sahip bağlam düğümünün tüm <Employee> öğe çocuklarını döndürür:

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

Öznitelik eksenine (@) bir kısayol belirtilebilir ve övlak ekseni varsayılan olduğu için sorgudan çıkarılabilir:

/Contact[number(@ContactID) = 4]  

İlişkisel açıdan, sorgu 4 ContactID olan bir çalışanı döndürür.

XPath sorgusunu eşleme şemasıyla test etmek için
  1. Örnek şema kodunu kopyalayın ve bir metin dosyasına yapıştırın. Dosyayı SampleSchema1.xmlolarak kaydet.

  2. Aşağıdaki şablonu (ExplicitConversionA.xml) oluşturun ve SampleSchema1.xml kaydedildiği dizine kaydedin.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        /Contact[number(@ContactID)=4]  
      </sql:xpath-query>  
    </ROOT>  
    

    Eşleme şeması (SampleSchema1.xml) için belirtilen dizin yolu, şablonun kaydedildiği dizine görecelidir. Mutlak bir yol da belirtilebilir, örneğin:

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. Şablonu çalıştırmak için SQLXML 4.0 Test Script'i (Sqlxml4test.vbs) oluşturun ve kullanın.

    Daha fazla bilgi için bkz. SQLXML 4.0 Sorguları Yürütmek için ADO Kullanma.

Bu şablon yürütme için sonuç seti şudur:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />   
</ROOT>  

B. String() açık dönüşüm fonksiyonunu kullanın

String() fonksiyonu, bir argümanı bir diziye dönüştürür.

Aşağıdaki sorgu, ContactID'yi bir diziye dönüştürür ve bunu "4" dize değeriyle karşılaştırır. Sorgu, bağlam düğümünün tüm <Çalışan> öğesi çocuklarını "4" dizi değerine sahip bir ContactID ile döndürür:

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

Öznitelik eksenine (@) bir kısayol belirtilebilir ve övlak ekseni varsayılan olduğu için sorgudan çıkarılabilir:

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

İşsel olarak, bu sorgu önceki örnek sorguyla aynı sonuçları verir, ancak değerlendirme sayısal değere (yani 4 sayısına) değil, bir dizi değerine karşı yapılır.

XPath sorgusunu eşleme şemasıyla test etmek için
  1. Örnek şema kodunu kopyalayın ve bir metin dosyasına yapıştırın. Dosyayı SampleSchema1.xmlolarak kaydet.

  2. Aşağıdaki şablonu (ExplicitConversionB.xml) oluşturun ve SampleSchema1.xml kaydedildiği dizine kaydedin.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        Contact[string(@ContactID)="4"]  
      </sql:xpath-query>  
    </ROOT>  
    

    Eşleme şeması (SampleSchema1.xml) için belirtilen dizin yolu, şablonun kaydedildiği dizine görecelidir. Mutlak bir yol da belirtilebilir, örneğin:

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. Şablonu çalıştırmak için SQLXML 4.0 Test Script'i (Sqlxml4test.vbs) oluşturun ve kullanın.

    Daha fazla bilgi için bkz. SQLXML 4.0 Sorguları Yürütmek için ADO Kullanma.

İşte şablon yürütme sonuç kümesi:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />   
</ROOT>