Introduzione agli schemi XSD con annotazioni (SQLXML 4.0)
Si applica a: SQL Server 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 xsd:schema> racchiude l'intero schema. Tutte le dichiarazioni di elemento 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à dell'elemento <xsd:schema> .
Uno schema XSD valido deve contenere l'elemento <xsd:schema> 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>
L'elemento <xsd:schema> è derivato 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 di schema XML-Data Reduced (XDR) 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 al mapping dei dati XML da mappare 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 consiste nel specificarlo nel <tag xsd:schema> .
<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 delle annotazioni 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 elemento Person.Contact>.< L'elemento <Employee> ha un attributo ContactID e< gli elementi figlio FirstName e <LastName:>>
<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 <Contact> viene mappato alla tabella Person.Contact nel database di esempio AdventureWorks2022
usando l'annotazione sql:relation . Gli attributi ConID, FName e LName vengono mappati alle colonne ContactID, FirstName e LastName nella 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 ulteriori informazioni, vedi Supporto per Unicode e regole di confronto.
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:
XML Schema Part 0: Primer, W3C Recommendation (https://www.w3.org/TR/xmlschema-0/)
XML Schema Part 1: Structures, W3C Recommendation (https://www.w3.org/TR/xmlschema-1/)
XML Schema Part 2:Datatypes, Raccomandazione W3C (https://www.w3.org/TR/xmlschema-2/)
XML Path Language (XPath) (https://www.w3.org/TR/xpath)
Trasformazioni XSL (XSLT) (https://www.w3.org/TR/xslt)
Vedi anche
Considerazioni relative alla sicurezza degli schemi con annotazioni (SQLXML 4.0)
Schemi XDR con annotazioni (deprecati in SQLXML 4.0)