Introduzione agli schemi XSD con annotazioni (SQLXML 4.0)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure

È possibile creare viste XML di dati relazionali mediante il linguaggio di definizione di XML Schema (XSD). In tali viste è possibile eseguire query utilizzando le query XPath (XML Path language). La procedura è simile a quella utilizzata per creare viste mediante le istruzioni CREATE VIEW e quindi specificare query SQL in tali viste.

Un elemento XML Schema descrive la struttura di un documento XML e i vari vincoli presenti sui dati del documento. Quando si specificano query XPath nello schema, la struttura del documento XML restituita è determinata dallo schema nel quale viene eseguita la query XPath.

In uno schema XSD l'elemento racchiude l'intero schema. Tutte le dichiarazioni di elemento <xsd:schema> devono essere contenute all'interno dell'elemento. <xsd:schema> È possibile descrivere gli attributi che definiscono lo spazio dei nomi in cui risiede lo schema e gli spazi dei nomi usati nello schema come proprietà <xsd:schema> dell'elemento.

Uno schema XSD valido deve contenere <xsd:schema> l'elemento definito come segue:

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

<xsd:schema> L'elemento deriva dalla specifica dello spazio dei nomi XML Schema in http://www.w3.org/2001/XMLSchema .

Annotazioni dello schema XSD

È possibile utilizzare uno schema XSD con annotazioni che descrivono il mapping a un database, eseguire query nel database e restituire i risultati nel formato di un documento XML. Le annotazioni vengono fornite per eseguire il mapping di uno schema XSD a colonne e tabelle di database. È possibile specificare le query XPath nella vista XML creata dallo schema XSD per eseguire query nel database e ottenere risultati in formato XML.

Nota

In Microsoft SQLXML 4.0 il linguaggio dello schema XSD supporta le annotazioni introdotte con il linguaggio dello schema XDR (XML-Data Reduced) con annotazioni in SQL Server 2000 (8.x). Lo schema XDR con annotazioni è deprecato in SQLXML 4.0.

Nel contesto del database relazionale risulta utile per eseguire il mapping dello schema XSD arbitrario a un archivio relazionale. Un modo per ottenere questo risultato è annotare lo schema XSD. Uno schema XSD con le annotazioni viene definito schema di mapping, che fornisce informazioni relative alla modalità di mapping dei dati XML all'archivio relazionale. Uno schema di mapping è, di fatto, una vista XML dei dati relazionali. I mapping possono essere utilizzati per recuperare dati relazionali come documento XML.

Spazio dei nomi per le annotazioni

In uno schema XSD le annotazioni vengono specificate usando lo spazio dei nomi urn:schemas-microsoft-com:mapping-schema. Come illustrato nell'esempio seguente, il modo più semplice per specificare lo spazio dei nomi è specificarlo nel <xsd:schema> tag .

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

Il prefisso dello spazio dei nomi utilizzato è arbitrario. In questa documentazione il prefisso sql viene usato per indicare lo spazio dei nomi dell'annotazione e per distinguere le annotazioni in questo spazio dei nomi da quelle in altri spazi dei nomi.

Esempio di schema XSD con annotazioni

Nell'esempio seguente lo schema XSD è costituito da un <Person.Contact> elemento . <Employee> L'elemento ha un attributo ContactID e <FirstName> gli elementi <LastName> figlio:

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

A questo schema XSD vengono aggiunte annotazioni per eseguire il mapping degli elementi e degli attributi alle colonne e alle tabelle di database:

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

Nello schema di mapping l'elemento viene mappato alla tabella Person.Contact nel database AdventureWorks di esempio usando l'annotazione <Contact> sql:relation. Gli attributi ConID, FName e LName vengono mappati alle colonne ContactID, FirstName e LastName della tabella Person.Contact usando le annotazioni sql:field.

Questo schema XSD con annotazioni fornisce la vista XML dei dati relazionali. In questa vista XML possono essere eseguite query mediante il linguaggio XPath. Una query XPath restituisce come risultato un documento XML anziché il set di righe restituito dalle query SQL.

Nota

Nello schema di mapping la distinzione tra maiuscole e minuscole per i valori relazionali specificati (ad esempio il nome di tabella e il nome di colonna) dipende dall'eventuale utilizzo delle impostazioni delle regole di confronto con distinzione tra maiuscole e minuscole da parte di SQL Server. Per altre informazioni, vedere Collation and Unicode Support.

Risorse aggiuntive

Ulteriori informazioni sul linguaggio di definizione di XML Schema (XSD), sul linguaggio XML Path (XPath) e su Extensible Stylesheet Language Transformations (XSLT) sono disponibili nei siti Web seguenti:

Vedere anche

Considerazioni sulla sicurezza degli schemi (sqlxml 4.0)
Gli schemi XDR (deprecati in SQLXML 4.0)