Aracılığıyla paylaş


Sabit öğelerini kullanarak sql oluşturma: is-constant (SQLXML 4.0)

Sabit bir öğe belirlemek için — diğer bir deyişle, herhangi bir veritabanı eşleyen XSD Şemasındaki Öğe tablo veya sütun — kullanabileceğiniz sql:is-constant Ek açıklama. Bu ek bir Boole değeri alır (0 = false, 1 = true).Kabul edilebilir değerler 0, 1, doğru ve yanlış.The sql:is-constant annotation can be specified on an element that does not have any attributes.Değeri true (ya da 1) bir öğeyle belirtilmediği takdirde, bu öğenin veritabanına eşlenen ancak XML belgesindeki görünmeye devam eder.

The sql:is-constant annotation can be used for:

  • Bir üst düzey öğesi, XML belgesine ekleme.XML, belge için bir üst düzey öğeyi (kök öğesi) gerektirir.

  • Kapsayıcı öğe gibi oluşturma bir <Siparişler> Tüm siparişleri kaydırılan öğesi.

The sql:is-constant annotation can be added to a <complexType> element.

Ö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.

C.SQL belirtme: bir kapsayıcı öğe eklemek için is-sabit

Bu, XSD şeması, açıklamalı <CustomerOrders> sabit bir öğesi olarak belirleyerek tanımlanan sql:is-constant 1 değeri olan öznitelik. Bu nedenle, <CustomerOrders> herhangi bir veritabanı tablosu veya sütun eşleştirilmiş değil. Bu sabit öğe oluşan <Sipariş> Alt Öğeler.

Ancak <CustomerOrders> herhangi bir veritabanı tablosu veya sütun içeren bir kapsayıcı öğe olarak ortaya çıkan XML hala görünür eşleşmiyor <Sipariş> Alt Öğeler.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:annotation>
  <xsd:appinfo>
    <sql:relationship name="CustOrders"
        parent="Sales.Customer"
        parent-key="CustomerID"
        child="Sales.SalesOrderHeader"
        child-key="CustomerID" />
  </xsd:appinfo>
</xsd:annotation>

  <xsd:element name="Customer" sql:relation="Sales.Customer" >
   <xsd:complexType>
     <xsd:sequence>
        <xsd:element name="CustomerOrders" sql:is-constant="1" >
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="Order" sql:relation="Sales.SalesOrderHeader"
                           sql:relationship="CustOrders" 
                           maxOccurs="unbounded" >
                <xsd:complexType>
                   <xsd:attribute name="SalesOrderID" type="xsd:integer" />
                   <xsd:attribute name="OrderDate" type="xsd:date" />
                   <xsd:attribute name="CustomerID" type="xsd:string" />
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
           </xsd:complexType>
          </xsd:element>
         </xsd:sequence>
          <xsd:attribute name="CustomerID" type="xsd:string" />
     </xsd:complexType>
  </xsd:element>
</xsd:schema>

Şemaya örnek bir XPath sorgusu sınamak için

  1. Yukarıdaki şema kodunu kopyalayıp, bir metin dosyasına yapıştırın.Dosyayı isConstant.xml kaydedin.

  2. Şu şablonu kopyalayıp, bir metin dosyasına yapıştırın.Dosyayı isConstantT.xml isConstant.xml kaydettiğiniz aynı dizine kaydedin.

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

    Eşleştirme şemasını (isConstant.xml) dizini belirtilen şablon kaydedildiği göreli dizinidir.Mutlak bir yol da, örneğin belirtilebilir:

    mapping-schema="C:\MyDir\isConstant.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 sorgu yürütmek işlemi için kullanma.

Bu, kısmi bir sonuç kümesinden oluşur:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> 
<Customer CustomerID="1"> 
  <CustomerOrders> 
    <Order SalesOrderID="43860" OrderDate="2001-08-01" CustomerID="1" /> 
    <Order SalesOrderID="44501" OrderDate="2001-11-01" CustomerID="1" /> 
    <Order SalesOrderID="45283" OrderDate="2002-02-01" CustomerID="1" /> 
    <Order SalesOrderID="46042" OrderDate="2002-05-01" CustomerID="1" /> 
    ...
  </CustomerOrders> 
</Customer> 
</ROOT>