Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Par défaut, un élément de type complexe dans un schéma annoté XSD est mappé à la table (vue) portant le même nom dans la base de données spécifiée, et un élément ou un attribut de type simple est mappé à la colonne portant le même nom dans la table.
Exemples
Pour créer des exemples fonctionnels à l'aide des exemples suivants, vous devez répondre à certaines conditions requises. Pour plus d’informations, consultez Configuration requise pour exécuter des exemples SQLXML.
Un. Spécification du mappage par défaut
Dans cet exemple, aucune annotation n’est spécifiée dans le schéma XSD. L’élément Person.Contact est de type complexe et, par conséquent, mappe par défaut à la table Person.Contact> dans la base de données AdventureWorks.< Tous les attributs (ContactID, FirstName, LastName) de l’élément <Person.Contact> sont de type simple et mappés par défaut aux colonnes portant les mêmes noms dans la table 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>
Pour tester un exemple de requête XPath sur le schéma
Copiez le code de schéma ci-dessus et collez-le dans un fichier texte. Enregistrez le fichier en tant que MySchema.xml.
Copiez le modèle suivant et collez-le dans un fichier texte. Enregistrez le fichier en tant que MySchemaT.xml dans le même répertoire que celui où vous avez enregistré MySchema.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchema.xml"> /Person.Contact </sql:xpath-query> </ROOT>Le chemin d’accès au répertoire spécifié pour le schéma de mappage (MySchema.xml) est relatif au répertoire dans lequel le modèle est enregistré. Vous pouvez également spécifier un chemin d'accès absolu, par exemple :
mapping-schema="C:\SqlXmlTest\MySchema.xml"Créez et utilisez le script de test SQLXML 4.0 (Sqlxml4test.vbs) pour exécuter le modèle.
Pour plus d'informations, voir Utilisation d'ADO pour exécuter des requêtes SQLXML 4.0.
Voici le jeu de résultats partiel :
<?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. Mappage d’un élément XML à une colonne de base de données
Dans cet exemple, le mappage par défaut a également lieu, car aucune annotation n’est utilisée. L’élément <Person.Contact> est de type complexe et mappe à la table portant le même nom dans la base de données. Les éléments <FirstName et LastName>>et< l’attribut EmployeeID sont de type simple et, par conséquent, mappent aux colonnes portant les mêmes noms. La seule différence entre cet exemple et l’exemple précédent est que les éléments sont utilisés pour mapper les champs FirstName et 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>
Pour tester un exemple de requête XPath sur le schéma
Copiez le code de schéma ci-dessus et collez-le dans un fichier texte. Enregistrez le fichier en tant que MySchemaElements.xml.
Créez le modèle suivant (MySchemaElementsT.xml), puis enregistrez-le dans le même répertoire que celui utilisé à l’étape précédente.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchemaElements.xml"> /Person.Contact </sql:xpath-query> </ROOT>Le chemin d’accès au répertoire spécifié pour le schéma de mappage est relatif au répertoire dans lequel le modèle est enregistré. Vous pouvez également spécifier un chemin d'accès absolu, par exemple :
mapping-schema="C:\SqlXmlTest\MySchemaElements.xml"Créez et utilisez le script de test SQLXML 4.0 (Sqlxml4test.vbs) pour exécuter le modèle.
Pour plus d'informations, voir Utilisation d'ADO pour exécuter des requêtes SQLXML 4.0.
Voici le jeu de résultats partiel :
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Contact ContactID="1">
<FirstName>Gustavo</FirstName>
<LastName>Achong</LastName>
</Person.Contact>
...
</ROOT>
Chapitre C. Mappage d’un élément XML à une colonne de type de données XML
Dans cet exemple, le mappage par défaut a également lieu, car aucune annotation n’est utilisée. L’élément <Production.ProductModel> est de type complexe et est mappé à la table portant le même nom dans la base de données. L’attribut ProductModelID est de type simple et, par conséquent, mappé aux colonnes portant les mêmes noms. La seule différence entre cela et les exemples précédents est que l’élément <Instructions> est mappé à une colonne qui utilise le xml type de données à l’aide du xsd:anyType type.
<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>
Le xml type de données a été introduit dans SQL Server 2005.
Pour tester un exemple de requête XPath sur le schéma
Copiez le code de schéma ci-dessus et collez-le dans un fichier texte. Enregistrez le fichier en tant que MySchemaXmlAnyElements.xml.
Créez le modèle suivant (MySchemaXmlAnyElementsT.xml), puis enregistrez-le dans le même répertoire que celui utilisé à l’étape précédente.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchemaXmlAnyElements.xml"> /Production.ProductModel[@ProductModelID=7] </sql:xpath-query> </ROOT>Le chemin d’accès au répertoire spécifié pour le schéma de mappage est relatif au répertoire dans lequel le modèle est enregistré. Vous pouvez également spécifier un chemin d'accès absolu, par exemple :
mapping-schema="C:\SqlXmlTest\MySchemaXmlAnyElements.xml"Créez et utilisez le script de test SQLXML 4.0 (Sqlxml4test.vbs) pour exécuter le modèle.
Pour plus d'informations, voir Utilisation d'ADO pour exécuter des requêtes SQLXML 4.0.
Voici le jeu de résultats partiel :
<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>
Voir aussi
Considérations relatives à la sécurité du schéma annotée (SQLXML 4.0)
Données XML (SQL Server)
Prise en charge des types de données xml dans SQLXML 4.0