Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Ha XSD sémát használunk a relációs adatbázis XML nézetének biztosítására, a séma elemeit és attribútumait az adatbázis tábláihoz és oszlopaihoz kell leképezni. Az adatbázis táblázat/nézet sorai az XML dokumentum elemeihez csatlakoznak. Az adatbázis oszlopértékei attribútumokra vagy elemekre egyeznek.
Amikor az XPath lekérdezéseket az annotált XSD sémához jelölik, a séma elemeinek és attribútumainak adatai azokról a táblázatokból és oszlopokból kerülnek vissza, amelyekhez azok leképezik. Egyetlen érték eléréséhez az adatbázisból az XSD sémában megadott leképezésnek mind relációk, mind mezőspecifikációk kell rendelkezniük. Ha egy elem/attribútum neve nem ugyanaz, mint annak a tábla/nézet vagy oszlopnévnek, amelyhez hozzá van leképezve, akkor a sql:relation és sql:field annotációkat használják arra, hogy meghatározzák az XML dokumentum elemének vagy attribútumának és az adatbázis tábla (nézete) vagy oszlopának közötti leképezését.
SQL-reláció
A sql:relation annotációt hozzáadjuk, hogy egy XML csomópontot az XSD sémában egy adatbázis táblához képezzék. Egy tábla (nézet) neve a sql:relation annotáció értékeként van megadva.
Amikor a sql:relation egy elemen van megadva, ennek a megjegyzésnek a hatóköre minden olyan attribútumra és gyermekelemre vonatkozik, amelyeket az adott elem komplex típus definíciójában leírnak, így rövidítést biztosít az annotációk írásában.
A sql:relation annotáció akkor is hasznos, ha a Microsoft SQL Serverben érvényes azonosítók nem érvényesek XML-ben. Például a "Order Details" érvényes táblanév SQL Serverben, de nem XML-ben. Ilyen esetekben a sql:relation annotáció használható a leképezés meghatározására, például:
<xsd:element name="OD" sql:relation="[Order Details]">
SQL-mező
A sql-mező annotáció egy elemet vagy attribútumot térképez egy adatbázis oszlophoz. A sql:field annotációt hozzáadják, hogy egy XML csomópontot a sémában egy adatbázis-oszlophoz képezzenek. Nem lehet sql:field megadni üres tartalomelemen.
Példák
A következő példák alapján működő minták létrehozásához bizonyos követelményeknek kell megfelelned. További információért lásd: Az SQLXML futtatási követelmények példái.
A. A sql:relation és a sql:field annotációk megadása
Ebben a példában az XSD séma egy <komplex típusú Contact> elemből áll, amely <FName> és <LName> gyermekelemekkel és a ContactID attribútummal rendelkezik.
A sql:relation annotáció a <Contact> elemet a Person.Contact táblával térképezi az AdventureWorks adatbázisban. A sql:field annotáció az <FName> elemet a Névoszlophoz, az <LName> elemet pedig a Vezetéknév oszlophoz képezi.
A ContactID attribútumhoz nincs megadva megjegyzés. Ez az attribútumot alapértelmezett leképezést eredményezi az azonos nevű oszlophoz.
<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>
Egy minta-XPath lekérdezés tesztelése a sémához
Másold le a fenti sémakódot, és illesztsd be egy szövegfájlba. Mentse el a fájlt MySchema-annotated.xml.
Másold le az alábbi sablont, és illesztsd be szövegfájlba. Mentsd a fájlt MySchema-annotatedT.xml-ként ugyanabba a könyvtárba, ahol MySchema-annotated.xmlmentetted.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchema-annotated.xml"> /Contact </sql:xpath-query> </ROOT>A leképezési sémához (MySchema-annotated.xml) megadott könyvtári út viszonyítja azt a könyvtárat, ahol a sablon mentő. Abszolút út is meghatározható, például:
mapping-schema="C:\SqlXmlTest\MySchema-annotated.xml"Hozd létre és használd az SQLXML 4.0 Test Scriptet (Sqlxml4test.vbs) a sablon végrehajtásához.
További információért lásd: Using ADO to execute SQLXML Queries.
Íme a részleges eredményhalmaz:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Contact ContactID="1">
<FName>Gustavo</FName>
<LName>Achong</LName>
</Contact>
.....
</ROOT>