Standardmappning av XSD-element och attribut till tabeller och kolumner (SQLXML 4.0)

gäller för:SQL ServerAzure SQL Database

Som standard mappas ett element av komplex typ i ett XSD-annoterat schema till tabellen (vyn) med samma namn i den angivna databasen, och ett element eller attribut av enkel typ mappas till kolumnen med samma namn i tabellen.

Examples

För att skapa arbetsprover med hjälp av följande exempel måste du uppfylla vissa krav. För mer information, se Krav för att köra SQLXML-exempel.

A. Specificering av standardmappning

I detta exempel anges inga annotationer i XSD-schemat. <Person.Contact-elementet> är av komplex typ och mappas därför som standard till Person.Contact-tabellen i AdventureWorks-databasen. Alla attribut (ContactID, FirstName, LastName) för elementet <Person.Contact> är av enkel typ och mappas som standard till kolumner med samma namn i Person.Contact-tabellen.

<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>  
För att testa en exempel-XPath-fråga mot schemat
  1. Kopiera schemakoden ovan och klistra in den i en textfil. Spara filen som MySchema.xml.

  2. Kopiera följande mall och klistra in den i en textfil. Spara filen som MySchemaT.xml i samma katalog där du sparade MySchema.xml.

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

    Den katalogväg som anges för mappningsschemat (MySchema.xml) är relativ till katalogen där mallen sparas. En absolut väg kan också specificeras, till exempel:

    mapping-schema="C:\SqlXmlTest\MySchema.xml"  
    
  3. Skapa och använd SQLXML 4.0 Test Script (Sqlxml4test.vbs) för att köra mallen.

    Mer information finns i Använda ADO för att köra SQLXML 4.0-frågor.

Här är det delvisa resultatet:

<?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. Mappning av ett XML-element till en databaskolumn

I detta exempel sker också standardmappning eftersom inga anteckningar används. <Person.Contact-elementet> är av komplex typ och mappas till tabellen med samma namn i databasen. Elementen <FirstName> och <Efternamn> samt attributet EmployeeID är av enkel typ och mappas därför till kolumnerna med samma namn. Den enda skillnaden mellan detta och det föregående exemplet är att element används för att mappa fälten FirstName och Efternamn.

<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>  
För att testa en exempel-XPath-fråga mot schemat
  1. Kopiera schemakoden ovan och klistra in den i en textfil. Spara filen som MySchemaElements.xml.

  2. Skapa följande mall (MySchemaElementsT.xml), och spara den i samma katalog som användes i föregående steg.

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

    Katalogvägen som anges för mappningsschemat är relativ till katalogen där mallen sparas. En absolut väg kan också specificeras, till exempel:

    mapping-schema="C:\SqlXmlTest\MySchemaElements.xml"  
    
  3. Skapa och använd SQLXML 4.0 Test Script (Sqlxml4test.vbs) för att köra mallen.

    Mer information finns i Använda ADO för att köra SQLXML 4.0-frågor.

Här är det delvisa resultatet:

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

C. Mappning av ett XML-element till en XML-datatypkolumn

I detta exempel sker också standardmappning eftersom inga anteckningar används. Elementet< Production.ProductModel> är av komplex typ och mappas till tabellen med samma namn i databasen. Attributet ProductModelID är av enkel typ och mappas därför till kolumnerna med samma namn. Den enda skillnaden mellan detta och de tidigare exemplen är att Instructions-elementet<> mappas till en kolumn som använder xml-datatypen genom att använda xsd:anyType-typen.

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

XML-datatypen introducerades i SQL Server 2005 (9.x).

För att testa en exempel-XPath-fråga mot schemat
  1. Kopiera schemakoden ovan och klistra in den i en textfil. Spara filen som MySchemaXmlAnyElements.xml.

  2. Skapa följande mall (MySchemaXmlAnyElementsT.xml), och spara den i samma katalog som användes i föregående steg.

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

    Katalogvägen som anges för mappningsschemat är relativ till katalogen där mallen sparas. En absolut väg kan också specificeras, till exempel:

    mapping-schema="C:\SqlXmlTest\MySchemaXmlAnyElements.xml"  
    
  3. Skapa och använd SQLXML 4.0 Test Script (Sqlxml4test.vbs) för att köra mallen.

    Mer information finns i Använda ADO för att köra SQLXML 4.0-frågor.

Här är det delvisa resultatet:

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

Se även

Annoterade schemasäkerhetsöverväganden (SQLXML 4.0)
XML-data (SQL Server)
xml-stöd för datatyper i SQLXML 4.0