Megosztás a következőn keresztül:


Bevezetés az annotált XSD sémákhoz (SQLXML 4.0)

A következőkre vonatkozik:SQL ServerAzure SQL Database

Az XML séma definíció (XSD) nyelv használatával létrehozhat XML nézeteket relációs adatokról. Ezeket a nézeteket XML Path language (XPath) lekérdezésekkel lehet lekérdezni. Ez hasonló ahhoz, amikor CREATE VIEW utasításokat használunk, majd SQL lekérdezéseket megadunk a nézet ellen.

Az XML séma leírja az XML dokumentum szerkezetét, valamint a dokumentumban lévő adatok különböző korlátait is. Amikor az XPath lekérdezéseket a séma ellen megadod, a visszaadott XML dokumentum szerkezetét az a séma határozza meg, amelyen az XPath lekérdezés végrehajtódik.

Egy XSD sémában az <xsd:séma> elem az egész sémát magában foglalja; minden elem kijelentésének az <xsd:séma> elemen belül kell lennie. Leírhatod azokat az attribútumokat, amelyek meghatározzák azt a névteret, amelyben a séma található, valamint a sémában használt névtereket az xsd:schema< elem tulajdonságaiként>.

Egy érvényes XSD sémának tartalmaznia kell az alábbiak szerint definiált< xsd:séma> elemet:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
<!-- additional schema definitions here -->  
</xsd:schema>  

Az <xsd:séma> elem az XML séma névtér specifikációból származik .http://www.w3.org/2001/XMLSchema

Megjegyzések az XSD sémájához

Használhatsz XSD sémát olyan annotációkkal, amelyek leírják az adatbázishoz való leképezést és lekérdezik az adatbázist, és az eredményeket XML dokumentum formájában visszaadják. Annotációk biztosítottak az XSD séma leképezéséhez adatbázis táblákra és oszlopokra. Az XPath lekérdezések megadhatók az XSD séma által létrehozott XML nézet ellen, hogy lekérdezzék az adatbázist és eredményeket kapjanak XML-ként.

Megjegyzés:

A Microsoft SQLXML 4.0-ban az XSD séma nyelv támogatja azokat a megjegyzéseket, amelyeket az SQL Server 2000 (8.x) annotált XML-Data Reduced (XDR) sémanyelv vezetett be. Az annotált XDR az SQLXML 4.0-ban elavult.

A relációs adatbázis kontextusában hasznos az tetszőleges XSD sémát egy relációs tárolóhoz képezni. Ennek egyik módja az XSD séma megjegyzése. Az annotációkkal rendelkező XSD sémát leképezési sémának nevezik, amely információt ad arról, hogyan kell az XML adatokat a relációs tárolóhoz leképezni. A leképezési séma lényegében a relációs adatok XML nézete. Ezek a leképezések relációs adatok XML dokumentumként történő lekérésére is használhatók.

Névtér az annotációkhoz

Egy XSD sémában az annotációkat az urn:schemas-microsoft-com:mapping-schema névtér használatával határozzák meg. Ahogy a következő példa is mutatja, a névtér legegyszerűbb meghatározása, ha megadjuk azt az <xsd:schema> címkében.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
...  
</xsd:schema>  

A használt névtér előtag tetszőleges. Ebben a dokumentációban a sql előtagot az annotációs névtér jelölésére és annak megkülönböztetésére használják az ebben a névtérben lévő annotációkat más névterekben lévőektől.

Példája egy jegyzetelt XSD séma

A következő példában az XSD séma egy <Person.Contact> elemből áll. Az< Alkalmazott> elemnek van egy ContactID attribútumja, valamint <a Keresztnév> és <Vezetéknév> gyermekelemei:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
  <xsd:element name="Contact" >  
   <xsd:complexType>  
     <xsd:sequence>  
        <xsd:element name="FName"    
                     type="xsd:string" />   
        <xsd:element name="LName"  
                     type="xsd:string" />  
     </xsd:sequence>  
        <xsd:attribute name="ConID" type="xsd:integer" />  
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  

Annotációkat adnak hozzá ehhez az XSD sémához, hogy elemeit és attribútumjait az adatbázis tábláihoz és oszlopaihoz képezzék:

<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="ConID"   
                       sql:field="ContactID"   
                       type="xsd:integer" />  
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  

A leképezési sémában a <Contact> elemet a mintaadatbázisban AdventureWorks2025 található Person.Contact táblához a sql:relation annotációval leképezik. A ConID, FName és LName attribútumokat a Person.Contact táblában található ContactID, NameNév és Vezetéknév oszlopokhoz a sql:field annotációk segítségével rendelik le.

Ez az annotált XSD séma biztosítja a relációs adatok XML nézetét. Ez az XML nézet az XPath nyelvvel is lekérdezhető. Az XPath lekérdezés eredményeként XML dokumentumot ad vissza, nem pedig az SQL lekérdezések által visszaadott sorhalmazt.

Megjegyzés:

A leképezési sémában a megadott relációs értékek (például tábla és oszlopnév) kis- és nagybetűérzékenysége attól függ, hogy az SQL Server használ-e kis- és nagybetűérzékeny összeállítási beállításokat. További információ: kolláció és Unicode-támogatás.

Egyéb erőforrások

További információkat az XML sémadefiníciós nyelvről (XSD), XML út nyelvről (XPath) és az Extensible Stylesheet Language Transformations-ról (XSLT) a következő weboldalakon találhat:

Lásd még:

Annotált séma biztonsági szempontok (SQLXML 4.0)
Annotált XDR sémák (az SQLXML 4.0-ban elavult)