Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
İlişkisel veritabanının XML görünümünü sağlamak için XSD şeması kullanılırken, şemanın öğeleri ve nitelikleri veritabanının tabloları ve sütunlarına eşlenmelidir. Veritabanı tablosundaki satırlar, XML belgesindeki öğelerle eşleşir. Veritabanındaki sütun değerleri özniteliklere veya öğelere eşlenir.
XPath sorguları annotasyonlu XSD şemasına göre belirtildiğinde, şemadaki elemanlar ve öznitelikler için veriler, eşledikleri tablo ve sütunlardan alınır. Veritabanından tek bir değer elde etmek için, XSD şemasında belirtilen eşlemenin hem ilişki hem de alan spesifikasyonu olması gerekir. Bir elemanın/özniteliğin adı, eşlediği tablo/görünüm veya sütun adıyla aynı isim değilse, sql:relation ve sql:field açıklamaları, bir XML belgesindeki bir öğe veya öznitelik ile veritabanındaki tablo (görünüm) veya sütun arasındaki eşlemeyi belirtmek için kullanılır.
SQL-ilişkisi
sql:ilişki açıklaması, XSD şemasındaki bir XML düğümünü veritabanı tablosuna eşlemek için eklenir. Bir tablonun (görünüm) adı, sql:ilişki açıklamasının değeri olarak belirtilir.
sql:relation bir eleman üzerinde belirtildiğinde, bu açıklamanın kapsamı, o elemanın karmaşık tür tanımında tanımlanan tüm öznitelikler ve alt elemanlar için geçerlidir; böylece açıklama yazmada bir kısayol sağlar.
sql:relation annotasyonu, Microsoft SQL Server'da geçerli olan tanımlayıcılar XML'de geçerli olmadığında da faydalıdır. Örneğin, "Order Details" SQL Server'da geçerli bir tablo adıdır ancak XML'de değildir. Bu tür durumlarda, sql:ilişki açıklaması eşlemeyi belirtmek için kullanılabilir, örneğin:
<xsd:element name="OD" sql:relation="[Order Details]">
SQL alanı
SQL alanı açıklaması, bir elemanı veya özniteliği bir veritabanı sütununa eşler. sql:alan açıklaması, şemadaki bir XML düğümünü bir veritabanı sütununa eşlemek için eklenir. Boş bir içerik öğesinde sql:field belirtemezsiniz.
Ö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. sql:ilişki ve sql:alan açıklamalarının belirtilmesi
Bu örnekte, XSD şeması <karmaşık tipte bir Contact> elemanından oluşur; FName<> ve <LName> alt elemanları ile ContactID özniteliğinden oluşur.
sql:relation açıklaması, Contact> öğesini< AdventureWorks veritabanındaki Person.Contact tablosuna eşler. sql:field açıklaması, FName> elemanını< FirstName sütununa, <LName> öğesini ise Soyadı sütununa eşler.
ContactID özniteliği için herhangi bir açıklama belirtilmemiştir. Bu, özniteliğin aynı isimli sütuna varsayılan bir eşlenmesiyle sonuçlanır.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Contact" sql:relation="Person.Contact" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FName"
sql:field="FirstName"
type="xsd:string" />
<xsd:element name="LName"
sql:field="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
Yukarıdaki şema kodunu kopyalayıp metin dosyasına yapıştırın. Dosyayı MySchema-annotated.xmlolarak kaydet.
Aşağıdaki şablonu kopyalayıp metin dosyasına yapıştırın. Dosyayı aynı dizinde MySchema-annotatedT.xml olarak kaydet MySchema-annotated.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchema-annotated.xml"> /Contact </sql:xpath-query> </ROOT>Eşleme şeması (MySchema-annotated.xml) için belirtilen dizin yolu, şablonun kaydedildiği dizine görecelidir. Mutlak bir yol da belirtilebilir, örneğin:
mapping-schema="C:\SqlXmlTest\MySchema-annotated.xml"Ş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. Using ADO to execute SQLXML Queries.
Kısmi sonuç kümesi aşağıdadır:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Contact ContactID="1">
<FName>Gustavo</FName>
<LName>Achong</LName>
</Contact>
.....
</ROOT>