Aracılığıyla paylaş


XPath Sorgularında Boolean Fonksiyonlarının Belirtilmesi (SQLXML 4.0)

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

Aşağıdaki örnekler, XPath sorgularında Boolean fonksiyonlarının nasıl tanımlandığını 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. not() Boolean fonksiyonunu belirtin

Bu sorgu, Order> child öğeleri< olmayan bağlam düğümünün tüm <Müşteri> çocuk elemanlarını döndürür:

/child::Customer[not(child::Order)]  

Alt eksen varsayılan olarak kullanılır. Bu nedenle, sorgu şu şekilde tanımlanabilir:

/Customer[not(Order)]  

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 (BooleanFunctionsA.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">  
        Customer[not(Order)]  
    </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 işleminin kısmi sonuç kümesi:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Customer CustomerID="13" SalesPersonID="286" TerritoryID="7" AccountNumber="13" CustomerType="S" />   
  <Customer CustomerID="32" SalesPersonID="289" TerritoryID="8" AccountNumber="32" CustomerType="S" />   
  <Customer CustomerID="35" SalesPersonID="275" TerritoryID="2" AccountNumber="35" CustomerType="S" />   
  ...  
</ROOT>  

B. true() ve false() Boolean fonksiyonlarını belirtin

Bu sorgu, Order> child öğesi olmayan bağlam düğümünün< tüm <Müşteri> öğesi çocuklarını döndürür. İlişkisel açıdan, bu sorgu sipariş vermemiş tüm müşterileri geri getirir.

/child::Customer[child::Order=false()]  

Alt eksen varsayılan olarak kullanılır. Bu nedenle, sorgu şu şekilde tanımlanabilir:

/Customer[Order=false()]  

Bu sorgu aşağıdakine eşdeğerdir:

/Customer[not(Order)]  

Aşağıdaki sorgu, en az bir sipariş vermiş tüm müşterileri geri getirir:

/Customer[Order=true()]  

Bu sorgu şu sorguya eşdeğerdir:

/Customer[Order]  

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 (BooleanFunctionsB.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">  
        /Customer[Order=false()]  
      </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 işleminin kısmi sonuç kümesi:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Customer CustomerID="13" SalesPersonID="286" TerritoryID="7" AccountNumber="13" CustomerType="S" />   
  <Customer CustomerID="32" SalesPersonID="289" TerritoryID="8" AccountNumber="32" CustomerType="S" />   
  <Customer CustomerID="35" SalesPersonID="275" TerritoryID="2" AccountNumber="35" CustomerType="S" />   
  ...  
</ROOT>