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.
Vous pouvez créer des vues XML de données relationnelles à l’aide du langage XSD (XML Schema Definition). Ces vues peuvent ensuite être interrogées à l’aide de requêtes XPath (XML Path Language). Cela est similaire à la création de vues à l’aide d’instructions CREATE VIEW, puis en spécifiant des requêtes SQL sur la vue.
Un schéma XML décrit la structure d’un document XML et décrit également les différentes contraintes sur les données du document. Lorsque vous spécifiez des requêtes XPath sur le schéma, la structure du document XML retourné est déterminée par le schéma sur lequel la requête XPath est exécutée.
Dans un schéma XSD, l’élément <xsd :schema> place l’intégralité du schéma ; toutes les déclarations d’élément doivent être contenues dans l’élément <xsd :schema> . Vous pouvez décrire les attributs qui définissent l’espace de noms dans lequel réside le schéma et les espaces de noms utilisés dans le schéma comme propriétés de l’élément <xsd :schema> .
Un schéma XSD valide doit contenir l’élément <xsd :schema> défini comme suit :
<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’élément <xsd :schema est dérivé de la spécification de l’espace de noms de schéma> XML à l’adresse http://www.w3.org/2001/XMLSchema.
Annotations dans le schéma XSD
Vous pouvez utiliser un schéma XSD avec des annotations qui décrivent le mappage à une base de données, interroger la base de données et retourner les résultats sous la forme d’un document XML. Les annotations sont fournies pour mapper un schéma XSD aux tables et colonnes de base de données. Les requêtes XPath peuvent être spécifiées par rapport à la vue XML créée par le schéma XSD pour interroger la base de données et obtenir des résultats en tant que code XML.
Remarque
Dans Microsoft SQLXML 4.0, le langage de schéma XSD prend en charge les annotations introduites avec un langage de schéma XML-Data réduit (XDR) dans SQL Server 2000. Le XDR annoté est déconseillé dans SQLXML 4.0.
Dans le contexte de la base de données relationnelle, il est utile de mapper le schéma XSD arbitraire à un magasin relationnel. Une façon d’y parvenir consiste à annoter le schéma XSD. Un schéma XSD avec les annotations est appelé schéma de mappage, qui fournit des informations sur la façon dont les données XML doivent être mappées au magasin relationnel. Un schéma de mappage est, en effet, une vue XML des données relationnelles. Ces mappages peuvent être utilisés pour récupérer des données relationnelles en tant que document XML.
Espace de noms pour les annotations
Dans un schéma XSD, les annotations sont spécifiées à l’aide de l’espace de noms urn :schemas-microsoft-com :mapping-schema. Comme illustré dans l’exemple suivant, le moyen le plus simple de spécifier l’espace de noms consiste à le spécifier dans la <balise xsd :schema> .
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
...
</xsd:schema>
Le préfixe d’espace de noms utilisé est arbitraire. Dans cette documentation, le préfixe sql est utilisé pour désigner l’espace de noms d’annotation et distinguer les annotations de cet espace de noms des autres espaces de noms.
Exemple de schéma XSD annoté
Dans l’exemple suivant, le schéma XSD se compose d’un <élément Person.Contact> . L’élément <Employee> a un attribut ContactID et <des éléments enfants FirstName et 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>
Les annotations sont ajoutées à ce schéma XSD pour mapper ses éléments et attributs aux tables et colonnes de base de données :
<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>
Dans le schéma de mappage, l’élément <Contact> est mappé à la table Person.Contact dans l’exemple de base de données AdventureWorks à l’aide de l’annotation sql:relation . Les attributs ConID, FName et LName sont mappés aux colonnes ContactID, FirstName et LastName de la table Person.Contact à l’aide sql:field des annotations.
Ce schéma XSD annoté fournit la vue XML des données relationnelles. Cette vue XML peut être interrogée à l’aide du langage XPath. Une requête XPath retourne un document XML en conséquence, au lieu de l’ensemble de lignes retourné par les requêtes SQL.
Remarque
Dans le schéma de mappage, la sensibilité de la casse pour les valeurs relationnelles spécifiées (telles que le nom de table et le nom de colonne) dépend si SQL Server utilise des paramètres de classement respectant la casse. Pour plus d’informations, consultez Prise en charge d’Unicode et du classement.
Autres ressources
Vous trouverez plus d’informations sur le langage XSD (XML Schema Definition Language), le langage de chemin XML (XPath) et les transformations XSLT (Extensible Stylesheet Language Transformations) sur les sites web suivants :
Xml Schema Part 0 : Primer, recommandation W3C (http://www.w3.org/TR/xmlschema-0/)
Partie 1 du schéma XML : Structures, recommandation W3C (http://www.w3.org/TR/xmlschema-1/)
Xml Schema Part 2 :Datatypes, recommandation W3C (http://www.w3.org/TR/xmlschema-2/)
Xml Path Language (XPath) (http://www.w3.org/TR/xpath)
Transformations XSL (XSLT) (http://www.w3.org/TR/xslt)
Voir aussi
Considérations relatives à la sécurité du schéma annotée (SQLXML 4.0)
Schémas XDR annotés (déconseillés dans SQLXML 4.0)