Aracılığıyla paylaş


Varsayılan eşleme xsd öğeleri ve öznitelikleri tabloları ve sütunları (sqlxml 4.0)

Varsayılan olarak, unsuru karmaşık tür xsd şeması eşlemeleri aynı adla belirtilen veritabanı tablosuna (Görünüm) açıklamalı ve sütun tabloda aynı adla bir öğe ya da öznitelik basit türü eşleştirir.

Örnekler

Aşağıdaki örnekler kullanarak çalışma örnekleri oluşturmak için bazı gereksinimleri karşılamalıdır. Daha fazla bilgi için, bkz. sqlxml örnekleri çalıştırma gereksinimleri.

A.Varsayılan eşleme belirtme

Bu örnekte, hiçbir ek açıklamalar xsd şema belirtilir. <Person.Contact > öğesi karmaşık tür ve bu nedenle, AdventureWorks veritabanındaki Person.Contact tablosundaki varsayılan eşler. Tüm özniteliklerinin (ContactID, FirstName, LastName) <Person.Contact > öğesi basit türü ve varsayılan sütunlara Person.Contact tablosunda aynı adları göster.

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

<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 sorgusu şema karşı sınamak için

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

  2. Aşağıdaki şablonu kopyalayıp bir metin dosyasına yapıştırın. MySchemaT.xml MySchema.xml kaydettiğiniz aynı dizine kaydedin.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
        <sql:xpath-query mapping-schema="MySchema.xml">
            /Person.Contact
        </sql:xpath-query>
    </ROOT>
    
    <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) belirtilen dizin yolu göreli olarak şablonun kaydedildiği dizindir. Mutlak bir yol da, örneğin belirtilebilir:

    mapping-schema="C:\SqlXmlTest\MySchema.xml"
    
    mapping-schema="C:\SqlXmlTest\MySchema.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.

Kısmi bir 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>

<?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 veritabanı sütununu bir xml öğesi eşleme

Hiçbir ek açıklamaları kullanıldığından bu örnekte varsayılan eşleme de gerçekleşir. <Person.Contact > öğesi karmaşık tür ve aynı adlı veritabanı tablosuna eşler. Öğeleri <ad > ve <Soyadı > ve EmployeeID özniteliği basit türü vardır ve bu nedenle aynı adları taşıyan sütunlar eşleyin. Bu ve önceki örnek arasındaki tek fark olan öğeleri ad ve soyad alanlarını eşlemek için kullanılı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>

<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 sorgusu şema karşı sınamak için

  1. Yukarıdaki şema kodu kopyalayın ve bir metin dosyasına yapıştırın. Dosyayı MySchemaElements.xml kaydedin.

  2. Aşağıdaki şablon (MySchemaElementsT.xml) oluşturmak 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>
    
    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
        <sql:xpath-query mapping-schema="MySchemaElements.xml">
            /Person.Contact
        </sql:xpath-query>
    </ROOT>
    

    Eşleme şema için belirtilen dizin yolu göreli olarak şablonun kaydedildiği dizindir. Mutlak bir yol da, örneğin belirtilebilir:

    mapping-schema="C:\SqlXmlTest\MySchemaElements.xml"
    
    mapping-schema="C:\SqlXmlTest\MySchemaElements.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.

Kısmi bir 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>

<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 öğesi için xml eşlemesi veri sütun türü

Hiçbir ek açıklamaları kullanıldığından bu örnekte varsayılan eşleme de gerçekleşir. <Production.ProductModelWHERE > öğesi karmaşık tür ve aynı adlı veritabanı tablosuna eşler. ProductModelID özniteliği basit tür ve bu nedenle aynı adları taşıyan sütunlar eşleyin. Bu ve önceki örnekler arasındaki tek fark olduğunu <yönergeleri > öğesi kullanan bir sütun eşleme xmlveri türü kullanarak xsd:anyTypetü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>

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

xmlVeri türü tanıtıldı SQL Server 2005.

Ö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. Dosyayı MySchemaXmlAnyElements.xml kaydedin.

  2. Aşağıdaki şablon (MySchemaXmlAnyElementsT.xml) oluşturmak 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>
    
    <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 şema için belirtilen dizin yolu göreli olarak şablonun kaydedildiği dizindir. Mutlak bir yol da, örneğin belirtilebilir:

    mapping-schema="C:\SqlXmlTest\MySchemaXmlAnyElements.xml"
    
    mapping-schema="C:\SqlXmlTest\MySchemaXmlAnyElements.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.

Kısmi bir 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>

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

Başvuru

Açıklama eklediğiniz şema Güvenlik etkenleri (sqlxml 4.0)

XML veri türü desteği sqlxml 4.0

Kavramlar

DEL - Implementing XML in SQL Server