Bagikan melalui


Membuat Elemen Konstanta Menggunakan sql:is-constant (SQLXML 4.0)

Berlaku untuk: SQL ServerAzure SQL Database

Untuk menentukan elemen konstanta-yaitu, elemen dalam skema XSD yang tidak memetakan ke tabel database atau kolom apa pun-Anda dapat menggunakan anotasi sql:is-constant . Anotasi ini mengambil nilai Boolean (0 = false, 1 = true). Nilai yang dapat diterima adalah 0, 1, true, dan false. Anotasi sql:is-constant dapat ditentukan pada elemen yang tidak memiliki atribut apa pun. Jika ditentukan pada elemen dengan nilai true (atau 1), elemen tersebut tidak dipetakan ke database tetapi masih muncul di dokumen XML.

Anotasi sql:is-constant dapat digunakan untuk:

  • Menambahkan elemen tingkat atas ke dokumen XML. XML memerlukan elemen tingkat atas tunggal (elemen akar) untuk dokumen.

  • Membuat elemen kontainer, seperti <elemen Pesanan> yang membungkus semua pesanan.

Anotasi sql:is-constant dapat ditambahkan ke <elemen complexType> .

Contoh

Untuk membuat sampel kerja menggunakan contoh berikut, Anda harus memenuhi persyaratan tertentu. Untuk informasi selengkapnya, lihat Persyaratan untuk Menjalankan Contoh SQLXML.

J. Menentukan sql:is-constant untuk menambahkan elemen kontainer

Dalam skema XSD yang dianotasi ini, <CustomerOrders didefinisikan sebagai elemen konstan> dengan menentukan atribut sql:is-constant dengan nilai 1. Oleh karena itu, <CustomerOrders> tidak dipetakan ke tabel atau kolom database apa pun. Elemen konstanta <ini terdiri dari elemen Anak pesanan> .

Meskipun CustomerOrders> tidak memetakan ke tabel atau kolom database apa pun, itu masih muncul dalam XML yang dihasilkan sebagai elemen kontainer yang berisi< elemen Anak pesanan>.<

<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>  
Untuk menguji sampel kueri XPath terhadap skema
  1. Salin kode skema di atas dan tempelkan ke dalam file teks. Simpan file sebagai isConstant.xml.

  2. Salin templat berikut dan tempelkan ke dalam file teks. Simpan file sebagai isConstantT.xml di direktori yang sama tempat Anda menyimpan isConstant.xml.

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

    Jalur direktori yang ditentukan untuk skema pemetaan (isConstant.xml) relatif terhadap direktori tempat templat disimpan. Jalur absolut juga dapat ditentukan, misalnya:

    mapping-schema="C:\MyDir\isConstant.xml"  
    
  3. Buat dan gunakan Skrip Pengujian SQLXML 4.0 (Sqlxml4test.vbs) untuk menjalankan templat.

    Untuk informasi selengkapnya, lihat Menggunakan ADO untuk Menjalankan Kueri SQLXML.

Ini adalah kumpulan hasil parsial:

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