Aracılığıyla paylaş


Şema öğeleri sonuç xml belgesi kullanma SQL:map ' hariç-alan (xdr şeması)

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

Varsayılan eşleme nedeniyle her öðe ve öznitelik xdr şemasında bir veritabanı tablo ve sütun eşleştirir.Bazen, bir öğe xml içinde görünür ve herhangi bir veritabanı tablo veya sütun eşleme xdr şeması oluşturmak isteyebilirsiniz.Bu belirterek yapılır sql:map-field ek açıklama.

The sql:map-field annotation differs from sql:is-constant in that the unmapped elements and attributes do not appear in the XML document.sql:map-field is especially useful if the schema cannot be modified or is used to validate XML from other sources yet contains data that is not stored in your database.

sql:map-field Boole (0 = false, 1 = true).The sql:map-field annotation is valid only on an <attribute>, <element>, or <ElementTypes> with text-only content (content=textOnly).Ek açıklama geçerli değil bir <öğesi> veya <ElementTypes> , eşler için tablo.

Ö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:map belirtin-alan ek açıklama

Bazı diğer bir xdr şeması sahip varsayalım kaynak.Bu xdr şeması oluşur <Person.Person> öğesi ile BusinessEntityID, ad, Soyadıve öznitelikleri.

Bu xdr şeması veritabanındaki Person.Person Tablo eşleme, sql:map-field EvAdresi üzerinde belirtilen öznitelik Person.Person tablo çalışanlar. ev adreslerini depolamadığındanSonuç olarak, XPath sorgusu eşleme şema karşı belirtildiğinde bu öznitelik xml belgesindeki döndürülmez.

Varsayılan eşleme şema'nin yerini alır.The <Person.Person> element maps to the Person.Person table, and all the attributes map to the columns with the same name in the Person.Person table.Varsayılan eşleme hakkında daha fazla bilgi için bkz: xdr öğeleri ve öznitelikleri tabloları ve sütunları için varsayılan eşleme.

<?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="Person.Person" >
    <AttributeType name="BusinessEntityID" />
    <AttributeType name="FirstName" />
    <AttributeType name="LastName" />
    <AttributeType name="HomeAddress" />

    <attribute type="BusinessEntityID" />
    <attribute type="FirstName" />
    <attribute type="LastName" />
    <attribute type="HomeAddress" sql:map-field="0" />
</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.Dosya mapField-xdr.xml kaydedin.

  2. Aşağıdaki şablon kopyalama ve bir metin dosyasına yapıştırın.Dosya mapField-mapField-xdr.xml kaydettiğiniz aynı dizinde xdrT.xml olarak kaydedin.Person.Person kayıt BusinessEntityID 1'e eşit olan sorgu şablonu seçer.

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

    Dizin yol (mapField-xdr.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\mapField-xdr.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.

Sonuç küme aşağıdadır:

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

ÇalışanNo, ad ve soyad var, ancak EvAdresi eşleme şema için 0 değeri, belirtilen çünkü olduğunu unutmayın, sql:map-field öznitelik.

Ayrıca bkz.

Başvuru