Aracılığıyla paylaş


SQL:Relation (xdr şeması) kullanma

Önemli notÖnemli

Bu konuda eski uygulamalar için bir referans olarak dahil edilir.Bu özelliği yok ileride geliştirme çalışmaları yapılacaktır.Bu özellik yeni geliştirme çalışması kullanmaktan kaçının.Bunun yerine, açıklama eklenmiş xsd şemaları, xml görünümlerini oluşturmak için kullanın.Daha fazla bilgi için bkz: Açıklama eklenmiş xsd şemaları (SQLxml 4.0) Giriº.xsd şemaları için varolan açıklama eklenmiş xdr şemalarını dönüştürebilirsiniz.Daha fazla bilgi için bkz: Açıklama eklenmiş xdr şemalarını eşdeğer xsd şemaları (SQLxml 4.0) dönüştürme.

The sql:relation annotation is added to map an XML node in the XDR schema to a database table.Değeri olarak belirtilen bir tablo/görünüm adı sql:relation ek açıklama.

The sql:relation annotation can be added to an <ElementType>, <element>, or <attribute> node in the XDR schema.sql:relation specifies the mapping between <ElementType>, <element>, or <attribute> in the schema to a table/view in a database.

Zaman sql:relation belirtilen <ElementType>, bu açıklamanın kapsam uygulandığı tüm öznitelik ve alt öğe belirtimlerinde, <ElementType>.Bu nedenle açıklamaları yazarken kısayolunu sağlar.Zaman sql:relation doğrudan belirtilen <öğesi>, yok da kapsamı içinde belirtilen öznitelikler için sunulan bir <ElementType>.The sql:relation annotation is ignored on <AttributeType>.

The sql:relation annotation is useful in cases in which identifiers that are valid in Microsoft SQL Server are invalid in XML.Örneğin, "Sipariş Ayrıntıları" Geçerli bir tablo adı sql Server ancak XML geçersiz olur.Bu gibi durumlarda sql:relation ek açıklama örneğin eşlemeyi belirtmek için kullanılabilir:

<ElementType name="OD" sql:relation="[Order Details]">

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

A.SQL:Relation belirlemeniz <ElementType> öznitelikleri içeren

Bu örnekte, xdr şeması oluşur bir <Kişiler> öğesi ile BusinessEntityID, ad, ve Soyadı öznitelikleri.The sql:relation annotation is specified on the <ElementType>, mapping the <Contacts> element to the Person.Person table.Bu eşleştirme kapsam içinde tüm öznitelikler uygulanır <ElementType>.Bu nedenle, tüm öznitelikler Person.Person sütunları eşleştirmek tablo.

Varsayılan eşleme öznitelikleri için yer alır; Örneğin, Person.Person aynı adları içeren sütunlar için öznitelikler eşleme tablo.

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <ElementType name="Contacts" sql:relation="Person.Person" >
    <AttributeType name="BusinessEntityID" />
    <AttributeType name="FirstName" />
    <AttributeType name="LastName" />

    <attribute type="BusinessEntityID" />
    <attribute type="FirstName" />
    <attribute type="LastName" />
  </ElementType>
</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ı sqlRelationXdr.xml kaydedin.

  2. Aşağıdaki şablon kopyalama ve bir metin dosyasına yapıştırın.Olarak sqlRelationXdrT.xml ile aynı dizinde sqlRelationXdr.xml kaydettiğiniz dosyayı kaydedin.1 BusinessEntityID bir kişiyle sorgu şablonu seçer.

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

    Dizin yol ilişkili şablon kaydedildiği dizine göreli eşleme şema için belirtilen.Mutlak bir yol da, örneğin belirtilebilir:

    mapping-schema="C:\MyDir\sqlRelationXdr.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üme aşağıdadır:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> 
    <Contacts BusinessEntityID="1" FirstName="Gustavo" 
              LastName="Achong" /> 
</ROOT>

B.SQL:Relation belirlemeniz <ElementType> alt öğeleri ve öznitelikleri içeren

Bu örnekte, xdr şeması oluşur <Kişiler> öğesi ile BusinessEntityID öznitelik ve <ad> ve <Soyadı> alt öğeleri.The sql:relation annotation is specified on the <ElementType>, mapping the <Contacts> element to the Person.Person table.Bu eşleştirme kapsam içinde tüm öznitelikler uygulanır <ElementType>.Bu nedenle, tüm öznitelikler Person.Person sütunları eşleştirmek tablo.

Varsayılan eşleme öznitelikleri için yer alır.Öznitelikler eşleme Person.Person de aynı ada sahip bir sütun için tablo.

Bu örnekte, İçerik öznitelik üzerinde belirtilen <ad> ve <Soyadı> alt öğeleri.Olmadan content=textOnly öznitelik, alt öğeleri değil Eşle ilgili ad ve Soyadı sütunlarına Person.Person tablo çünkü öğeleri varsayılan olarak, tablo ve eşlemekalan.

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">

  <ElementType name="FirstName" content="textOnly"/>
  <ElementType name="LastName" content="textOnly"/>
  <ElementType name="Contacts" sql:relation="Person.Person" >
    <AttributeType name="BusinessEntityID" />

    <attribute type="BusinessEntityID" />
    <element type="FirstName" />
    <element type="LastName"  />
  </ElementType>
</Schema>

Belirtmek yerine bir alternatif olarak content=textOnly öznitelik, sizin belirlediğiniz sql:field Not içinde element için karşılık gelen sütun (FirstName, LastName) alt öğeleri eşlemek için tanım adlarını, aşağıdaki diğer örnekler gibi:

<element type="FirstName" sql:field="FirstName" />
<element type="LastName" sql:field="LastName" />

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

  2. Aşağıdaki şablon kopyalama ve bir metin dosyasına yapıştırın.Dosyayı UsingSqlRelationXdrT.xml UsingSqlRelationXdr.xml kaydettiğiniz aynı dizine kaydedin.1 BusinessEntityID bir kişiyle sorgu şablonu seçer.

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

    Dizin yol (UsingSqlRelationXdr.xml) eşleme şema şablonun kaydedileceği dizini ile ilişkili olduğu için belirtilen.Mutlak bir yol da, örneğin belirtilebilir:

    mapping-schema="C:\MyDir\UsingSqlRelationXdr.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üme aşağıdadır:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> 
  <Contacts BusinessEntityID="1"> 
    <FirstName>Gustavo</FirstName>
    <LastName>Achong</LastName>
  </Contacts>
</ROOT>

Ayrıca bkz.

Başvuru