Sdílet prostřednictvím


Výchozí mapování prvků a atributů XSD na tabulky a sloupce (SQLXML 4.0)

platí pro:SQL Serverazure SQL Database

Ve výchozím nastavení se prvek komplexního typu v XSD anotovaném schématu mapuje na tabulku (pohled) se stejným názvem ve specifikované databázi a prvek nebo atribut jednoduchého typu se mapuje na sloupec se stejným názvem v tabulce.

Examples

Pro vytvoření pracovních vzorků podle následujících příkladů musíte splnit určité požadavky. Pro více informací viz Požadavky na spouštění SQLXML Examples.

A. Specifikace výchozího mapování

V tomto příkladu nejsou v XSD schématu specifikovány žádné anotace. Prvek <Osoba.Kontakt> je složitého typu, a proto se ve výchozím nastavení mapuje na tabulku Osoba.Kontakt v databázi AdventureWorks. Všechny atributy (ContactID, FirstName, LastName) prvku <Person.Contact> jsou jednoduchého typu a ve výchozím nastavení se zobrazují na sloupce se stejnými jmény v tabulce Person.Contact.

<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>  
Pro testování vzorku dotazu XPath proti schématu
  1. Zkopírujte výše uvedený kód schématu a vložte ho do textového souboru. Uložte soubor jako MySchema.xml.

  2. Zkopírujte následující šablonu a vložte ji do textového souboru. Ulož soubor jako MySchemaT.xml do stejného adresáře, kde jsi uložil MySchema.xml.

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

    Adresářová cesta určená pro mapovací schéma (MySchema.xml) je relativní k adresáři, ve kterém je šablona uložena. Absolutní cestu lze také specifikovat, například:

    mapping-schema="C:\SqlXmlTest\MySchema.xml"  
    
  3. Vytvořte a použijte testovací skript SQLXML 4.0 (Sqlxml4test.vbs) k provedení šablony.

    Další informace naleznete v tématu Použití ADO ke spouštění dotazů SQLXML 4.0.

Tady je částečná sada výsledků:

<?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. Mapování XML prvku na sloupec databáze

V tomto příkladu probíhá výchozí mapování také proto, že nejsou použity žádné anotace. Prvek <Person.Contact> je komplexního typu a mapuje se na tabulku se stejným názvem v databázi. Prvky <FirstName> a <LastName> a atribut EmployeeID jsou jednoduchého typu a proto se mapují na sloupce se stejnými názvy. Jediný rozdíl mezi tímto a předchozím příkladem je, že prvky se používají pro mapování polí Jméno a Příjmení.

<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>  
Pro testování vzorku dotazu XPath proti schématu
  1. Zkopírujte výše uvedený kód schématu a vložte ho do textového souboru. Uložte soubor jako MySchemaElements.xml.

  2. Vytvořte následující šablonu (MySchemaElementsT.xml) a uložite ji do stejného adresáře použitého v předchozím kroku.

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

    Adresářová cesta určená pro mapovací schéma je relativní adresáři, ve které je šablona uložena. Absolutní cestu lze také specifikovat, například:

    mapping-schema="C:\SqlXmlTest\MySchemaElements.xml"  
    
  3. Vytvořte a použijte testovací skript SQLXML 4.0 (Sqlxml4test.vbs) k provedení šablony.

    Další informace naleznete v tématu Použití ADO ke spouštění dotazů SQLXML 4.0.

Tady je částečná sada výsledků:

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

C. Mapování XML prvku na sloupec XML datového typu

V tomto příkladu probíhá výchozí mapování také proto, že nejsou použity žádné anotace. Prvek <Production.ProductModel> je složitého typu a mapuje se na tabulku se stejným názvem v databázi. Atribut ProductModelID je jednoduchého typu a proto se mapuje na sloupce se stejnými názvy. Jediný rozdíl mezi tímto a předchozími příklady je, že prvek <Instructions> mapuje na sloupec, který používá xml datový typ pomocí typu xsd:anyType.

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

Typ dat xml byl zaveden v SQL Server 2005 (9.x).

Pro testování vzorku dotazu XPath proti schématu
  1. Zkopírujte výše uvedený kód schématu a vložte ho do textového souboru. Uložte soubor jako MySchemaXmlAnyElements.xml.

  2. Vytvořte následující šablonu (MySchemaXmlAnyElementsT.xml) a uložite ji do stejného adresáře použitého v předchozím kroku.

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

    Adresářová cesta určená pro mapovací schéma je relativní adresáři, ve které je šablona uložena. Absolutní cestu lze také specifikovat, například:

    mapping-schema="C:\SqlXmlTest\MySchemaXmlAnyElements.xml"  
    
  3. Vytvořte a použijte testovací skript SQLXML 4.0 (Sqlxml4test.vbs) k provedení šablony.

    Další informace naleznete v tématu Použití ADO ke spouštění dotazů SQLXML 4.0.

Tady je částečná sada výsledků:

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

Viz také

Bezpečnostní aspekty anotovaného schématu (SQLXML 4.0)
Data XML (SQL Server)
Podpora xml datových typů v SQLXML 4.0