Mapping predefinito di elementi e attributi XSD a tabelle e colonne (SQLXML 4.0)
Si applica a: SQL Server database SQL di Azure
Per impostazione predefinita, viene eseguito il mapping di un elemento di tipo complesso in uno schema XSD con annotazioni alla tabella (vista) con lo stesso nome nel database specificato e di un elemento o un attributo di tipo semplice alla colonna con lo stesso nome nella tabella.
Esempi
Per creare esempi reali utilizzando gli esempi seguenti, è necessario soddisfare alcuni requisiti. Per altre informazioni, vedere Requisiti per l'esecuzione di esempi SQLXML.
R. Definizione del mapping predefinito
In questo esempio non viene specificata alcuna annotazione nello schema XSD. L'elemento <Person.Contact> è di tipo complesso e, pertanto, esegue il mapping per impostazione predefinita alla tabella Person.Contact nel database AdventureWorks. Tutti gli attributi (ContactID, FirstName, LastName) dell'elemento <Person.Contact> sono di tipo semplice e vengono mappati per impostazione predefinita alle colonne con gli stessi nomi nella tabella 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>
Per testare una query Xpath di esempio sullo schema
Copiare il codice dello schema precedente e incollarlo in un file di testo. Salvare il file con il nome MySchema.xml.
Copiare il modello seguente e incollarlo in un file di testo. Salvare il file con il nome MySchemaT.xml nella stessa directory in cui è stato salvato il file MySchema.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchema.xml"> /Person.Contact </sql:xpath-query> </ROOT>
Il percorso di directory specificato per lo schema di mapping (MySchema.xml) è relativo alla directory in cui è salvato il modello. È possibile specificare anche un percorso assoluto, ad esempio:
mapping-schema="C:\SqlXmlTest\MySchema.xml"
Creare e utilizzare lo script di test SQLXML 4.0 (Sqlxml4test.vbs) per eseguire il modello.
Per altre informazioni, vedere Uso di ADO per eseguire query SQLXML 4.0.
Di seguito è riportato il set di risultati parziale:
<?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. Mapping di un elemento XML a una colonna del database
Anche in questo esempio viene eseguito un mapping predefinito, in quanto non viene utilizzata alcuna annotazione. L'elemento <Person.Contact> è di tipo complesso ed esegue il mapping alla tabella con lo stesso nome nel database. Gli elementi <FirstName> e <LastName> e l'attributo EmployeeID sono di tipo semplice e, pertanto, vengono mappati alle colonne con gli stessi nomi. L'unica differenza tra questo e l'esempio precedente consiste nel fatto che gli elementi vengono utilizzati per eseguire il mapping dei campi FirstName e LastName.
<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>
Per testare una query Xpath di esempio sullo schema
Copiare il codice dello schema precedente e incollarlo in un file di testo. Salvare il file con il nome MySchemaElements.xml.
Creare il modello seguente (MySchemaElementsT.xml) e salvarlo nella stessa directory utilizzata nel passaggio precedente.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchemaElements.xml"> /Person.Contact </sql:xpath-query> </ROOT>
Il percorso di directory specificato per lo schema di mapping è relativo alla directory in cui è salvato il modello. È possibile specificare anche un percorso assoluto, ad esempio:
mapping-schema="C:\SqlXmlTest\MySchemaElements.xml"
Creare e utilizzare lo script di test SQLXML 4.0 (Sqlxml4test.vbs) per eseguire il modello.
Per altre informazioni, vedere Uso di ADO per eseguire query SQLXML 4.0.
Di seguito è riportato il set di risultati parziale:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Contact ContactID="1">
<FirstName>Gustavo</FirstName>
<LastName>Achong</LastName>
</Person.Contact>
...
</ROOT>
C. Mapping di un elemento XML a una colonna con tipo di dati XML
Anche in questo esempio viene eseguito un mapping predefinito, in quanto non viene utilizzata alcuna annotazione. L'elemento <Production.ProductModel> è di tipo complesso ed esegue il mapping alla tabella con lo stesso nome nel database. L'attributo ProductModelID è di tipo semplice e quindi esegue il mapping alle colonne con gli stessi nomi. L'unica differenza tra questo e gli esempi precedenti è che l'elemento Instructions> esegue il <mapping a una colonna che usa il tipo di dati xml usando il tipo 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>
Il tipo di dati xml è stato introdotto in SQL Server 2005 (9.x).
Per testare una query Xpath di esempio sullo schema
Copiare il codice dello schema precedente e incollarlo in un file di testo. Salvare il file con il nome MySchemaXmlAnyElements.xml.
Creare il modello seguente (MySchemaXmlAnyElementsT.xml) e salvarlo nella stessa directory utilizzata nel passaggio precedente.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchemaXmlAnyElements.xml"> /Production.ProductModel[@ProductModelID=7] </sql:xpath-query> </ROOT>
Il percorso di directory specificato per lo schema di mapping è relativo alla directory in cui è salvato il modello. È possibile specificare anche un percorso assoluto, ad esempio:
mapping-schema="C:\SqlXmlTest\MySchemaXmlAnyElements.xml"
Creare e utilizzare lo script di test SQLXML 4.0 (Sqlxml4test.vbs) per eseguire il modello.
Per altre informazioni, vedere Uso di ADO per eseguire query SQLXML 4.0.
Di seguito è riportato il set di risultati parziale:
<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>
Vedi anche
Considerazioni relative alla sicurezza degli schemi con annotazioni (SQLXML 4.0)
Dati XML (SQL Server)
Supporto del tipo di dati xml in SQLXML 4.0