Aracılığıyla paylaş


XSD Elemanlarının ve Özniteliklerinin Tablolar ve Sütunlara Varsayılan Eşlenmesi (SQLXML 4.0)

Şunlar için geçerlidir:SQL ServerAzure SQL Veritabanı

Varsayılan olarak, XSD açıklamalı şemadaki karmaşık tipte bir eleman, belirtilen veritabanında aynı isimli tabloya (görünüme) eşlenir ve basit tipte bir eleman veya öznitelik, tablodaki aynı isimli sütuna eşlenir.

Örnekler

Aşağıdaki örneklerle çalışma örnekleri oluşturmak için belirli gereksinimleri karşılamanız gerekir. Daha fazla bilgi için Gereksinimler için SQLXML Örnekleri Çalışması için Gereksinimlere bakınız.

A. Varsayılan eşlemenin belirtilmesi

Bu örnekte, XSD şemasında herhangi bir açıklama belirtilmemiştir. <Person.Contact> öğesi karmaşık türdedir ve bu nedenle varsayılan olarak AdventureWorks veritabanındaki Person.Contact tablosuna eşlenir. Kişi.İletişim öğesinin tüm özellikleri (ContactID, İlk İsim, Soyad) <basit türdendir ve varsayılan olarak Kişi.İletişim tablosunda aynı isimlere sahip sütunlara eşlenir.>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  <xsd:element name="Person.Contact" >  
     <xsd:complexType>  
       <xsd:attribute name="ContactID"  type="xsd:string" />   
       <xsd:attribute name="FirstName"   type="xsd:string" />   
       <xsd:attribute name="LastName"    type="xsd:string" />   
     </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  
Örnek XPath sorgusunu şema karşısında test etmek için
  1. Yukarıdaki şema kodunu kopyalayıp metin dosyasına yapıştırın. Dosyayı MySchema.xmlolarak kaydet.

  2. Aşağıdaki şablonu kopyalayın ve bir metin dosyasına yapıştırın. Dosyayı aynı dizinde MySchemaT.xml olarak kaydet MySchema.xml.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
        <sql:xpath-query mapping-schema="MySchema.xml">  
            /Person.Contact  
        </sql:xpath-query>  
    </ROOT>  
    

    Eşleme şeması (MySchema.xml) için belirtilen dizin yolu, şablonun kaydedildiği dizine görecelidir. Mutlak bir yol da belirtilebilir, örneğin:

    mapping-schema="C:\SqlXmlTest\MySchema.xml"  
    
  3. Şablonu çalıştırmak için SQLXML 4.0 Test Script'i (Sqlxml4test.vbs) oluşturun ve kullanın.

    Daha fazla bilgi için bkz. SQLXML 4.0 Sorguları Yürütmek için ADO Kullanma.

Kısmi sonuç kümesi aşağıdadır:

<?xml version="1.0" encoding="UTF-8" ?>  
<ROOT>  
  <Person.Contact ContactID="1" FirstName="Gustavo" LastName="Achong"/>  
  <Person.Contact ContactID="2" FirstName="Catherine" LastName="Abel"/>  
   ...  
</ROOT>  

B. Bir XML elemanını bir veritabanı sütununa eşlemek

Bu örnekte, varsayılan eşleme de yapılır çünkü herhangi bir açıklama kullanılmaz. <Person.Contact> öğesi karmaşık türdedir ve veritabanındaki aynı isimli tabloya eşlenir. Birinci Adı> ve Soyadadı öğeleri< ile Employee ID özdiniteliği basit türdedir ve bu nedenle aynı isimlere sahip sütunlara eşlenir.>< Bu örnekle önceki örnek arasındaki tek fark, öğelerin İlk Adı ve Soyadadı alanlarını eşlemek için kullanılmasıdır.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  <xsd:element name="Person.Contact">  
    <xsd:complexType>  
      <xsd:sequence>  
        <xsd:element name="FirstName" type="xsd:string" />   
        <xsd:element name="LastName" type="xsd:string" />   
      </xsd:sequence>  
      <xsd:attribute name="ContactID" type="xsd:integer" />   
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  
Örnek XPath sorgusunu şema karşısında test etmek için
  1. Yukarıdaki şema kodunu kopyalayıp metin dosyasına yapıştırın. Dosyayı MySchemaElements.xmlolarak kaydet.

  2. Aşağıdaki şablonu (MySchemaElementsT.xml) oluşturun ve önceki adımda kullanılan aynı dizine kaydedin.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
        <sql:xpath-query mapping-schema="MySchemaElements.xml">  
            /Person.Contact  
        </sql:xpath-query>  
    </ROOT>  
    

    Eşleme şeması için belirtilen dizin yolu, şablonun kaydedildiği dizine görecelidir. Mutlak bir yol da belirtilebilir, örneğin:

    mapping-schema="C:\SqlXmlTest\MySchemaElements.xml"  
    
  3. Şablonu çalıştırmak için SQLXML 4.0 Test Script'i (Sqlxml4test.vbs) oluşturun ve kullanın.

    Daha fazla bilgi için bkz. SQLXML 4.0 Sorguları Yürütmek için ADO Kullanma.

Kısmi sonuç kümesi aşağıdadır:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Person.Contact ContactID="1">  
    <FirstName>Gustavo</FirstName>  
    <LastName>Achong</LastName>  
  </Person.Contact>  
   ...  
</ROOT>  

C. Bir XML elemanını bir XML veri tipi sütununa eşlemek

Bu örnekte, varsayılan eşleme de yapılır çünkü herhangi bir açıklama kullanılmaz. <Production.ProductModel> öğesi karmaşık türdedir ve veritabanındaki aynı isimli tabloya eşlenir. ProductModelID özniteliği basit türdendir ve bu nedenle aynı isimlere sahip sütunlara eşlenir. Bu ile önceki örnekler <arasındaki tek fark, Talimatlar> elemanının xsd:anyType tipini kullanarak xml veri tipini kullanan bir sütuna eşlemesi olmasıdır.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  <xsd:element name="Production.ProductModel">  
    <xsd:complexType>  
      <xsd:sequence>  
        <xsd:element name="Instructions" type="xsd:anyType" />   
      </xsd:sequence>  
      <xsd:attribute name="ProductModelID" type="xsd:integer" />   
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  

XML veri tipi, SQL Server 2005 (9.x) ile tanıtıldı.

Örnek XPath sorgusunu şema karşısında test etmek için
  1. Yukarıdaki şema kodunu kopyalayıp metin dosyasına yapıştırın. Dosyayı MySchemaXmlAnyElements.xmlolarak kaydet.

  2. Aşağıdaki şablonu (MySchemaXmlAnyElementsT.xml) oluşturun ve önceki adımda kullanılan aynı dizine kaydedin.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
        <sql:xpath-query mapping-schema="MySchemaXmlAnyElements.xml">  
            /Production.ProductModel[@ProductModelID=7]  
        </sql:xpath-query>  
    </ROOT>  
    

    Eşleme şeması için belirtilen dizin yolu, şablonun kaydedildiği dizine görecelidir. Mutlak bir yol da belirtilebilir, örneğin:

    mapping-schema="C:\SqlXmlTest\MySchemaXmlAnyElements.xml"  
    
  3. Şablonu çalıştırmak için SQLXML 4.0 Test Script'i (Sqlxml4test.vbs) oluşturun ve kullanın.

    Daha fazla bilgi için bkz. SQLXML 4.0 Sorguları Yürütmek için ADO Kullanma.

Kısmi sonuç kümesi aşağıdadır:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Production.ProductModel ProductModelID="7">  
    <Instructions>  
      <root xmlns="http:  
//schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstru  
ctions">  
...  
      </root>  
    <Instructions>  
  </Production.ProductModel>  
</ROOT>  

Ayrıca Bkz.

Annotated Schema Security Considerations (SQLXML 4.0)
XML Verileri (SQL Server)
SQLXML 4.0'da xml Veri Tipi Desteği