Sdílet prostřednictvím


Úvod do anotovaných XSD schémat (SQLXML 4.0)

platí pro:SQL Serverazure SQL Database

Pomocí jazyka XML Schema Definition (XSD) můžete vytvářet XML zobrazení relačních dat. Tyto pohledy lze pak dotazovat pomocí dotazů XML Path Language (XPath). To je podobné jako vytvářet pohledy pomocí příkazů CREATE VIEW a poté zadat SQL dotazy vůči tomuto pohledu.

XML schéma popisuje strukturu XML dokumentu a také různé omezení dat v dokumentu. Když zadáte dotazy XPath vůči tomuto schématu, struktura vráceného XML dokumentu je určena schématem, na kterém je dotaz XPath vykonán.

V XSD schématu element <xsd:schema> zahrnuje celé schéma; všechny deklarace prvků musí být obsaženy v rámci elementu <xsd:schema> . Můžete popsat atributy, které definují jmenný prostor, ve kterém se schéma nachází, a jmenné prostory používané ve schématu jako vlastnosti prvku <xsd:schema> .

Platné schéma XSD musí obsahovat prvek xsd:schema> definovaný< následovně:

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

Prvek <xsd:schema> je odvozen ze specifikace jmenného prostoru XML Schema na .http://www.w3.org/2001/XMLSchema

Poznámky ke schématu XSD

Můžete použít XSD schéma s anotacemi, které popisují mapování do databáze, dotazovat databázi a vracet výsledky ve formě XML dokumentu. Jsou poskytovány anotace pro mapování XSD schématu na databázové tabulky a sloupce. XPath dotazy lze zadat proti XML zobrazení vytvořenému schématem XSD pro dotazování databáze a získání výsledků jako XML.

Poznámka:

V Microsoft SQLXML 4.0 podporuje jazyk XSD schématu anotace zavedené pomocí annotated XML-Data Reduced (XDR) jazyka schémat v SQL Server 2000 (8.x). Annotated XDR je v SQLXML 4.0 již zastaralý.

V kontextu relační databáze je užitečné namapovat libovolné schéma XSD na relační úložiště. Jedním ze způsobů, jak toho dosáhnout, je anotovat schéma XSD. XSD schéma s anotacemi se nazývá mapovací schéma, které poskytuje informace o tom, jak mají být XML data mapována do relačního úložiště. Mapovací schéma je v podstatě XML pohled na relační data. Tato mapování lze použít k získání relačních dat jako XML dokumentu.

Jmenný prostor pro anotace

V XSD schématu jsou anotace specifikovány pomocí jmenného prostoru urn:schemas-microsoft-com:mapping-schema. Jak ukazuje následující příklad, nejjednodušší způsob, jak specifikovat jmenný prostor, je zadat jej v tagu <xsd:schama> .

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

Použitý prefix jmenného prostoru je libovolný. V této dokumentaci se sql prefix používá k označení jmenného prostoru anotací a k rozlišení anotací v tomto jmenném prostoru od těch v jiných jmenných prostorech.

Příklad anotovaného XSD schématu

V následujícím příkladu se schéma XSD skládá z prvku <Person.Contact> . Prvek <Zaměstnanec> má atribut ContactID a <podčlenné prvky Jméno> a <Příjmení> :

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

Do tohoto XSD schématu jsou přidávány anotace, které mapují jeho prvky a atributy na tabulky a sloupce databáze:

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

V mapovacím schématu je kontaktní prvek <> mapován na tabulku Person.Contact v ukázkové databázi AdventureWorks2025 pomocí sql:relation anotace. Atributy ConID, FName a LName jsou mapovány na sloupce ContactID, FirstName a LastName v tabulce Person.Contact pomocí anotací sql:field .

Toto anotované schéma XSD poskytuje XML pohled na relační data. Tento XML pohled lze dotazovat pomocí jazyka XPath. XPath dotaz vrací XML dokument jako výsledek, místo sady řádků, kterou vrací SQL dotazy.

Poznámka:

V mapovacím schématu závisí citlivost na velikost písmen pro specifikované relační hodnoty (například název tabulky a název sloupce) na tom, zda SQL Server používá nastavení třídění citlivého na velká písmena. Další informace naleznete v tématu Kolace a Podpora kódování Unicode.

Další prostředky

Více informací o XML Schema Definition language (XSD), XML Path language (XPath) a Extensible Stylesheet Language Transformations (XSLT) najdete na následujících webových stránkách:

Viz také

Bezpečnostní aspekty anotovaného schématu (SQLXML 4.0)
Anotovaná XDR schémata (zastaralá v SQLXML 4.0)