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


Az XSD elemek és attribútum alapértelmezett leképezése táblákhoz és oszlopokhoz (SQLXML 4.0)

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

Alapértelmezés szerint egy összetett típusú elem egy XSD annotált sémában a megadott adatbázisban azonos nevű táblázathoz (nézethez) fordul, és egy egyszerű típusú elem vagy attribútum a táblázatban azonos nevű oszlophoz fordul.

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. Az alapértelmezett leképezés meghatározása

Ebben a példában az XSD sémában nincsenek megjegyzések. A< Person.Contact> elem összetett típusú, ezért alapértelmezés szerint az AdventureWorks adatbázis Person.Contact táblájához egyezik. A Személy.Kapcsolat elem összes attribútuma (ContactID, Keresztnév, Vezetéknév) <egyszerű típusú, és alapértelmezés szerint ugyanazzal a nevű oszlopokkal egyezik meg a Személy.Kapcsolat táblában.>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  <xsd:element name="Person.Contact" >  
     <xsd:complexType>  
       <xsd:attribute name="ContactID"  type="xsd:string" />   
       <xsd:attribute name="FirstName"   type="xsd:string" />   
       <xsd:attribute name="LastName"    type="xsd:string" />   
     </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  
Egy minta-XPath lekérdezés tesztelése a sémához
  1. Másold le a fenti sémakódot, és illesztsd be egy szövegfájlba. Mentse el a fájlt MySchema.xml.

  2. Másold le a következő sablont, és illesztsd be egy szövegfájlba. Mentsd a fájlt MySchemaT.xml-ként ugyanabba a könyvtárba, ahol MySchema.xmlmentetted.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
        <sql:xpath-query mapping-schema="MySchema.xml">  
            /Person.Contact  
        </sql:xpath-query>  
    </ROOT>  
    

    A leképezési sémához (MySchema.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.xml"  
    
  3. Hozd létre és használd az SQLXML 4.0 Test Scriptet (Sqlxml4test.vbs) a sablon végrehajtásához.

    További információ: SqlXML 4.0-lekérdezések végrehajtása az ADO használatával.

Íme a részleges eredményhalmaz:

<?xml version="1.0" encoding="UTF-8" ?>  
<ROOT>  
  <Person.Contact ContactID="1" FirstName="Gustavo" LastName="Achong"/>  
  <Person.Contact ContactID="2" FirstName="Catherine" LastName="Abel"/>  
   ...  
</ROOT>  

B. XML elem leképezése egy adatbázis-oszlophoz

Ebben a példában az alapértelmezett leképezés azért történik, mert nem használnak annotációkat. A< Person.Contact> elem összetett típusú, és az adatbázisban azonos nevű táblázathoz kapcsolódik. A Keresztnév> és a Vezetéknév elemek<, valamint az Alkalmazotti ID attribútumok egyszerű típusúak, ezért ugyanazzal a nevekkel rendelkező oszlopokhoz egyeznek.>< Az egyetlen különbség az előző példához képest, hogy elemeket használnak a Keresztnév és Vezetéknév mezők leképezéséhez.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  <xsd:element name="Person.Contact">  
    <xsd:complexType>  
      <xsd:sequence>  
        <xsd:element name="FirstName" type="xsd:string" />   
        <xsd:element name="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
  1. Másold le a fenti sémakódot, és illesztsd be egy szövegfájlba. Mentse el a fájlt MySchemaElements.xml.

  2. Hozza létre a következő sablont (MySchemaElementsT.xml), és elmentse ugyanabba a könyvtárba, amit az előző lépésben használtak.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
        <sql:xpath-query mapping-schema="MySchemaElements.xml">  
            /Person.Contact  
        </sql:xpath-query>  
    </ROOT>  
    

    A térképező sémához megadott könyvtárút a sablon mentéséhez viszonyítható. Abszolút út is meghatározható, például:

    mapping-schema="C:\SqlXmlTest\MySchemaElements.xml"  
    
  3. Hozd létre és használd az SQLXML 4.0 Test Scriptet (Sqlxml4test.vbs) a sablon végrehajtásához.

    További információ: SqlXML 4.0-lekérdezések végrehajtása az ADO használatával.

Íme a részleges eredményhalmaz:

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

C. XML elem leképezése XML adattípus oszlophoz

Ebben a példában az alapértelmezett leképezés azért történik, mert nem használnak annotációkat. A< Production.ProductModel> elem összetett típusú, és az adatbázisban azonos nevű táblához hasonlít. A ProductModelID attribútum egyszerű típusú, ezért ugyanazzal a nevű oszlopokkal egyezik le. Az egyetlen különbség az előző példákhoz képest, hogy az< utasítások> elem egy olyan oszlophoz fordul, amely az xml adattípust használja az xsd:anyType típussal.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  <xsd:element name="Production.ProductModel">  
    <xsd:complexType>  
      <xsd:sequence>  
        <xsd:element name="Instructions" type="xsd:anyType" />   
      </xsd:sequence>  
      <xsd:attribute name="ProductModelID" type="xsd:integer" />   
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  

Az xml adattípust az SQL Server 2005 (9.x) verzióban vezették be.

Egy minta-XPath lekérdezés tesztelése a sémához
  1. Másold le a fenti sémakódot, és illesztsd be egy szövegfájlba. Mentse el a fájlt MySchemaXmlAnyElements.xml.

  2. Hozza létre a következő sablont (MySchemaXmlAnyElementsT.xml), és elmentse ugyanabba a könyvtárba, amit az előző lépésben használtak.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
        <sql:xpath-query mapping-schema="MySchemaXmlAnyElements.xml">  
            /Production.ProductModel[@ProductModelID=7]  
        </sql:xpath-query>  
    </ROOT>  
    

    A térképező sémához megadott könyvtárút a sablon mentéséhez viszonyítható. Abszolút út is meghatározható, például:

    mapping-schema="C:\SqlXmlTest\MySchemaXmlAnyElements.xml"  
    
  3. Hozd létre és használd az SQLXML 4.0 Test Scriptet (Sqlxml4test.vbs) a sablon végrehajtásához.

    További információ: SqlXML 4.0-lekérdezések végrehajtása az ADO használatával.

Íme a részleges eredményhalmaz:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Production.ProductModel ProductModelID="7">  
    <Instructions>  
      <root xmlns="http:  
//schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstru  
ctions">  
...  
      </root>  
    <Instructions>  
  </Production.ProductModel>  
</ROOT>  

Lásd még:

Annotált séma biztonsági szempontok (SQLXML 4.0)
XML-adatok (SQL Server)
xml adattípus támogatás az SQLXML 4.0-ban