Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per impostazione predefinita, un elemento di tipo complesso in uno schema con annotazioni XSD esegue il mapping alla tabella (vista) con lo stesso nome nel database specificato e un elemento o attributo di tipo semplice esegue il mapping 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.
Un. Specifica del mapping predefinito
In questo esempio non vengono specificate annotazioni 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 come MySchema.xml.
Copiare il modello seguente e incollarlo in un file di testo. Salvare il file come MySchemaT.xml nella stessa directory in cui è stato salvato 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 della directory specificato per lo schema di mapping (MySchema.xml) è relativo alla directory in cui viene 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 di database
In questo esempio viene eseguito anche il mapping predefinito perché non vengono usate annotazioni. 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 è che gli elementi vengono usati per 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 come MySchemaElements.xml.
Creare il modello seguente (MySchemaElementsT.xml) e salvarlo nella stessa directory usata 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 della directory specificato per lo schema di mapping è relativo alla directory in cui viene 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 di tipo di dati XML
In questo esempio viene eseguito anche il mapping predefinito perché non vengono usate annotazioni. 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 xml tipo di dati usando il xsd:anyType tipo .
<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 xml tipo di dati è stato introdotto in SQL Server 2005.
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 come MySchemaXmlAnyElements.xml.
Creare il modello seguente (MySchemaXmlAnyElementsT.xml) e salvarlo nella stessa directory usata 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 della directory specificato per lo schema di mapping è relativo alla directory in cui viene 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>
Vedere anche
Considerazioni sulla sicurezza dello schema con annotazioni (SQLXML 4.0)
Dati XML (SQL Server)
Supporto del tipo di dati xml in SQLXML 4.0