Aracılığıyla paylaş


Geçerli bir KIMLIĞI IDREF ve IDREFS öznitelik türü kullanarak sql:prefix (SQLXML 4.0) oluşturma

Öznitelik KIMLIĞI bir type özniteliği için belirtilebilir.Daha sonra IDREF veya IDREFS olarak belirtilen öznitelikleri belgeler arasında bağlantılar etkinleştirme KIMLIK türü öznitelikleri belirtmek için kullanılabilir.

KIMLIK ve IDREF IDREFS veritabanıyla, birkaç fark ilişkilerde BA/YA (birincil anahtara yabancı anahtar) karşılık gelir.Bir XML belgesinde KIMLIĞI türü öznitelik değerleri farklı olmalı.If MüşteriNo and Sipariş Kimliği öznitelik KIMLIĞI türü bir XML belgesindeki bu değerleri farklı olmalı belirtilmedi.Ancak, bir veritabanında, MüşteriNo SiparişNo sütunlar aynı değerlere sahip olabilir.(Örneğin, MüşteriKimliği = 1 ve SiparişNo veritabanında geçerli öğeler 1 =).

Geçerli KIMLIK ve IDREF IDREFS öznitelikleri için:

  • ID değeri, XML belgesinin içinde benzersiz olmalıdır.

  • Belirtilen KIMLIK değerleri, her IDREF ve IDREFS, XML belgesinde olması gerekir.

  • Bir KIMLIK IDREF ve IDREFS değeri, adlandırılmış bir simge olmalıdır.(Örneğin, 101 tamsayı değeri bir KIMLIK değeri olamaz.)

  • Öznitelik KIMLIĞI ve IDREF IDREFS türü tipindeki sütunların eşleştirilemez. text, ntext, veya image veya diğer ikili veriler (örneğin, yazın timestamp).

Birden çok kimlik bir XML belgesi içeren kullanın sql:prefix Ek açıklama değerlerin benzersiz olduğundan emin olun.

Dikkat sql:prefix Açıklama özniteliği sabit XSD ile kullanılamaz.

Ö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.KIMLIĞI'ni ve IDREFS türlerini belirtme

Aşağıdaki şemada, <Müşteri> öğe oluşan <Sipariş> alt öğe. The <Order> element also has a alt element, the <OrderDetail> element.

The OrderIDList öznitelik of <Customer> is an IDREFS type öznitelik that refers to the OrderID öznitelik of the <Order> element.

<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" />
    <sql:relationship name="OrderOrderDetail"
                 parent="Sales.SalesOrderHeader"
                 parent-key="SalesOrderID"
                 child="Sales.SalesOrderDetail"
                 child-key="SalesOrderID" />
  </xsd:appinfo>
</xsd:annotation>
  <xsd:element name="Customer" sql:relation="Sales.Customer" >
   <xsd:complexType>
     <xsd:sequence>
        <xsd:element name="Order" sql:relation="Sales.SalesOrderHeader"  
               sql:relationship="CustOrders" maxOccurs="unbounded" >
          <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="OrderDetail" 
                             sql:relation="Sales.SalesOrderDetail" 
                   sql:relationship="OrderOrderDetail" 
                   maxOccurs="unbounded" >
                  <xsd:complexType>
                   <xsd:attribute name="SalesOrderID" type="xsd:integer" />
                   <xsd:attribute name="ProductID" type="xsd:string" />
                   <xsd:attribute name="OrderQty" type="xsd:integer" />
                  </xsd:complexType>
               </xsd:element>
             </xsd:sequence>
             <xsd:attribute name="SalesOrderID" 
                            type="xsd:ID" sql:prefix="ord-" />
             <xsd:attribute name="OrderDate" type="xsd:date" />
             <xsd:attribute name="CustomerID" type="xsd:string" />
          </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="CustomerID" type="xsd:string" />
    <xsd:attribute name="OrderIDList" type="xsd:IDREFS" 
                   sql:relation="Sales.SalesOrderHeader" sql:field="SalesOrderID"
                   sql:relationship="CustOrders" sql:prefix="ord-">
    </xsd:attribute>
  </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ı sqlPrefix.xml kaydedin.

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

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

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

    mapping-schema="C:\SqlXmlTest\sqlPrefix.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 kaynaklanır:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Customer CustomerID="1" OrderIDList="ord-43860 ord-44501 ord-45283 ord-46042">
    <Order SalesOrderID="ord-43860" OrderDate="2001-08-01" CustomerID="1">
      <OrderDetail SalesOrderID="43860" ProductID="729" OrderQty="1" /> 
      <OrderDetail SalesOrderID="43860" ProductID="732" OrderQty="1" /> 
      <OrderDetail SalesOrderID="43860" ProductID="738" OrderQty="1" /> 
      <OrderDetail SalesOrderID="43860" ProductID="753" OrderQty="2" /> 
      ...
    </Order>
    ...
 </Customer>
</ROOT>