Aracılığıyla paylaş


XPath sorguları (SQLxml 4.0) ilişkisel işleçler belirtme

Aşağıdaki örnekler nasıl ilişkisel işleçler XPath sorguları belirtilir.XPath sorguları Bu örneklerde SampleSchema1.xml içinde yer alan eşleme şema karşı belirtilir.Bu örnek şeması hakkında daha fazla bilgi için bkz: Örnek XPath örnekleri (SQLxml 4.0) xsd şema açıklamalı.

Örnekler

A.İlişkisel işleç belirtin

Bu XPath sorgusu alt öğelerinin döndürür <Müşteri> öğesi burada CustomerID öznitelik değeri olan "1" ve burada herhangi bir alt <Sipariş> öğeleri içeren bir <OrderDetail> çocuk bir OrderQty öznitelik ile 3'ten büyük bir değer:

/child::Customer[@CustomerID="1"]/Order/OrderDetail[@OrderQty > 3]

Köşeli ayraçlar filtrelerinde belirtilen yüklemi <Müşteri> öğeleri.Sadece <Müşteri> öğeleri, varsa, en az bir <OrderDetail> enaltöge OrderQty öznitelik değeri 3 döndürülen büyüktür.

The child axis is the default.Bu nedenle, sorgu olarak belirtilebilir:

/Customer[@CustomerID="1"]/Order/OrderDetail[@OrderQty > 3]

XPath sorgusu eşleme şema karşı sınamak için

  1. Copy örnek şema kodu ve bir metin dosyasına yapıştırın.Dosyayı SampleSchema1.xml kaydedin.

  2. Aşağıdaki şablon (SpecifyRelationalA.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[@CustomerID="1"]/Order/OrderDetail[@OrderQty &gt; 3]
      </sql:xpath-query>
    </ROOT>
    

    Dizin yol (SampleSchema1.xml) eşleme şema şablonun kaydedileceği dizini ile ilişkili olduğu için belirtilen.Mutlak bir yol da, örneğin belirtilebilir:

    mapping-schema="C:\MyDir\SampleSchema1.xml"
    
  3. Oluşturun ve sqlxml 4.0 sınama komut dosyası (Sqlxml4test.vbs) şablonu yürütmek için kullanın.

    Daha fazla bilgi için bkz: ado SQLxml yürütme kullanarak 4.0 sorgular.

Şablon yürütme sonuç küme aşağıdadır:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <OrderDetail ProductID="Prod-760" UnitPrice="503.3507" OrderQty="4" UnitPriceDiscount="0" /> 
  <OrderDetail ProductID="Prod-763" UnitPrice="503.3507" OrderQty="4" UnitPriceDiscount="0" /> 
  <OrderDetail ProductID="Prod-766" UnitPrice="503.3507" OrderQty="4" UnitPriceDiscount="0" /> 
  <OrderDetail ProductID="Prod-732" UnitPrice="440.1742" OrderQty="4" UnitPriceDiscount="0" /> 
  <OrderDetail ProductID="Prod-757" UnitPrice="1049.7528" OrderQty="4" UnitPriceDiscount="0" /> 
</ROOT>

B.İlişkisel belirtmek işleç XPath sorgusu ve sonuçları karşılaştırmak için Boole işlev kullanma

Tüm bu sorgu döndürür <Sipariş> sahip alt öğesi içerik düðümünün bir SalesPersonID öznitelik 270'den küçük değer:

/child::Customer/child::Order[(attribute::SalesPersonID < 270)=true()]

Kısayol attribute eksen (@) belirtilebilir ve çünkü child eksen varsayılan değerdir, sorgudan atlanabilir:

/Customer/Order[(@SalesPersonID < 270)=true()]

Not

Bir şablonda bu sorgu belirtildiğinde < karakter varlık nedeni kodlanmış olmalıdır < karakter olan özel anlamı bir xml belgesi.Bir şablon kullanmak &lt; belirtmek için < karakter.

XPath sorgusu eşleme şema karşı sınamak için

  1. Copy örnek şema kodu ve bir metin dosyasına yapıştırın.Dosyayı SampleSchema1.xml kaydedin.

  2. Aşağıdaki şablon (SpecifyRelationalB.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[(@SalesPersonID&lt;270)=true()]
        </sql:xpath-query>
    </ROOT>
    

    Dizin yol (SampleSchema1.xml) eşleme şema şablonun kaydedileceği dizini ile ilişkili olduğu için belirtilen.Mutlak bir yol da, örneğin belirtilebilir:

    mapping-schema="C:\MyDir\SampleSchema1.xml"
    
  3. Oluşturun ve sqlxml 4.0 sınama komut dosyası (Sqlxml4test.vbs) şablonu yürütmek için kullanın.

    Daha fazla bilgi için bkz: ado SQLxml yürütme kullanarak 4.0 sorgular.

Şablon yürütme kısmi bir sonuç küme aşağıdadır:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Order SalesOrderID="Ord-46613" SalesPersonID="268" 
         OrderDate="2006-07-01T00:00:00" 
         DueDate="2006-07-13T00:00:00" 
         ShipDate="2006-07-08T00:00:00">
    <OrderDetail ProductID="Prod-739" UnitPrice="917.9363" 
                 OrderQty="2" UnitPriceDiscount="0" /> 
    <OrderDetail ProductID="Prod-779" UnitPrice="1491.4221" 
                 OrderQty="1" UnitPriceDiscount="0" /> 
    <OrderDetail ProductID="Prod-825" UnitPrice="242.1391" 
                 OrderQty="1" UnitPriceDiscount="0" /> 
  </Order>
  <Order SalesOrderID="Ord-71919" SalesPersonID="268"
         OrderDate="2008-06-01T00:00:00" 
         DueDate="2008-06-13T00:00:00" 
         ShipDate="2008-06-08T00:00:00">
    <OrderDetail ProductID="Prod-961" UnitPrice="534.492" 
                 OrderQty="1" UnitPriceDiscount="0" /> 
    <OrderDetail ProductID="Prod-965" UnitPrice="534.492" 
                 OrderQty="1" UnitPriceDiscount="0" /> 
    <OrderDetail ProductID="Prod-966" UnitPrice="1716.5304" 
                 OrderQty="1" UnitPriceDiscount="0" /> 
  </Order>
  ...
</ROOT>