Aracılığıyla paylaş


Sabit öğeleri kullanma SQL oluşturma: is-constant (xdr şeması)

Önemli notÖnemli

Bu konuda eski uygulamalar için bir referans olarak dahil edilir.Bu özelliği yok ileride geliştirme çalışmaları yapılacaktır.Bu özellik yeni geliştirme çalışması kullanmaktan kaçının.Bunun yerine, açıklama eklenmiş xsd şemaları, xml görünümlerini oluşturmak için kullanın.Daha fazla bilgi için bkz: Açıklama eklenmiş xsd şemaları (SQLxml 4.0) Giriº.xsd şemaları için varolan açıklama eklenmiş xdr şemalarını dönüştürebilirsiniz.Daha fazla bilgi için bkz: Açıklama eklenmiş xdr şemalarını eşdeğer xsd şemaları (SQLxml 4.0) dönüştürme.

Varsayılan eşleme nedeniyle her öðe ve öznitelik xdr şemasında bir veritabanı tablo ve sütun eşleştirir.Bazen, bir öğe xml belgesinde görünmeye devam eder ancak herhangi bir veritabanı tablo veya sütun eşleme xdr şeması oluşturmak isteyebilirsiniz.Bunlara, sabit öğeler denir.To create a constant element, specify the sql:is-constant annotation.sql:is-constant takes a Boolean value (0 = FALSE, 1 = TRUE).

Bu ek açıklama, belirtilen <ElementType>, hangi değil eşlemek için herhangi bir veritabanı tablo, böylece sabit bir öðe. durumaThe sql:is-constant annotation can be used for:

  • xml belgesinin en üst düzey öğe ekleme.Tek bir üst düzey öğenin XML'si gerektiriyor (<kök> öğesi) için belge.

  • Oluşturma kapsayıcı öğeler, örneğin, bir <siparişleri> öğesi, sarar tüm siparişleri.

Örnekler

Aşağıdaki örnekler kullanarak çalışma örnekleri oluşturmak için belirli gereksinimleri karşılaması gerekir.Daha fazla bilgi için bkz: SQLxml örnekleri çalıştırma gereksinimleri.

A.SQL belirtin: kapsayıcı öğe eklemek için is-sabit

In this annotated XDR schema, <OrderList> is defined as a constant element containing all the <Orders> subelements.The sql:is-constant annotation is specified on the OrderList<ElementType>, making it a constant, and therefore not mapping to any database table.Ancak <OrderList> öğesi değil eşlemek için tüm veritabanı tablo/sütun, hala görünür sonuç XML öğesi içeren bir kapsayıcı olarak <siparişleri> alt öğeleri.

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes"
xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<ElementType name="Sales.SalesOrderHeader" >
   <AttributeType name="SalesOrderID" />
   <attribute type="SalesOrderID" />
</ElementType>
<ElementType name="OrderList" sql:is-constant="1">
   <element type="Orders">
      <sql:relationship 
                   key-relation="Sales.Customer" 
                   foreign-relation="Sales.SalesOrderHeader" 
                   key="CustomerID" 
                   foreign-key="CustomerID" />
   </element>
</ElementType>
<ElementType name="Sales.Customer" >
   <AttributeType name="CustomerID" />
   <attribute type="CustomerID" />
   <element type="OrderList" />
</ElementType>
</Schema>

Örnek XPath sorgusu şema karşı sınamak için

  1. Yukarıdaki şema kodu kopyalayın ve bir metin dosyasına yapıştırın.Dosya isConstant-xdr.xml kaydedin.

  2. Aşağıdaki şablon kopyalama ve bir metin dosyasına yapıştırın.Dosya isConstant-isConstant-xdr.xml kaydettiğiniz aynı dizinde xdrT.xml olarak kaydedin.Tüm şablon içindeki XPath sorgusu seçer <Sales.Customer> a CustomerID öğelerle öznitelik değeri 1.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql" >
    <sql:xpath-query mapping-schema="isConstant-xdr.xml" >
       /Sales.Customer[@CustomerID=1]
    </sql:xpath-query>
    </ROOT>
    

    Dizin yol (isConstant-xdr.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\isConstant-xdr.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.

Sonuç küme aşağıdadır:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Sales.Customer CustomerID="1">
    <OrderList>
      <Sales.SalesOrderHeader SalesOrderID="43860" /> 
      <Sales.SalesOrderHeader SalesOrderID="44501" /> 
      <Sales.SalesOrderHeader SalesOrderID="45283" /> 
      <Sales.SalesOrderHeader SalesOrderID="46042" /> 
    </OrderList>
  </Sales.Customer>
</ROOT>

Ayrıca bkz.

Başvuru