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.
Chaque élément et attribut du schéma XSD est mappé à une table/vue de base de données et à une colonne en raison du mappage par défaut. Si vous souhaitez créer un élément dans le schéma XSD qui n’est mappé à aucune table de base de données (vue) ou colonne et qui n’apparaît pas dans le code XML, vous pouvez spécifier l’annotation sql:mapped .
L’annotation sql:mapped est particulièrement utile si le schéma ne peut pas être modifié ou si le schéma est utilisé pour valider du code XML à partir d’autres sources et contient encore des données qui ne sont pas stockées dans votre base de données. L’annotation sql:mapped diffère de sql:is-constant celle des éléments et attributs non mappés qui n’apparaissent pas dans le document XML.
L’annotation sql:mapped prend une valeur booléenne (0 = false, 1 = true). Les valeurs acceptables sont 0, 1, true et false.
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 de l’annotation sql :mappée
Supposons que vous disposez d’un schéma XSD à partir d’une autre source. Ce schéma XSD se compose d’un <élément Person.Contact> avec des attributs ContactID, FirstName, LastName et HomeAddress .
Dans le mappage de ce schéma XSD à la table Person.Contact dans la base de données AdventureWorks, sql:mapped est spécifié sur l’attribut HomeAddress , car la table Employees ne stocke pas les adresses d’accueil des employés. Par conséquent, cet attribut n’est pas mappé à la base de données et n’est pas retourné dans le document XML résultant lorsqu’une requête XPath est spécifiée par rapport au schéma de mappage.
Le mappage par défaut a lieu pour le reste du schéma. L’élément <Person.Contact> est mappé à la table Person.Contact et tous les attributs correspondent aux colonnes portant le même nom 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:attribute name="HomeAddress" type="xsd:string"
sql:mapped="false" />
</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 sql-mapped.xml.
Copiez le modèle suivant et collez-le dans un fichier texte. Enregistrez le fichier en tant que sql-mappedT.xml dans le même répertoire que celui où vous avez enregistré sql-mapped.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="sql-mapped.xml"> /Person.Contact[@ContactID < 10] </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:\MyDir\sql-mapped.xml"Créez et utilisez le script de test SQLXML 4.0 (Sqlxml4test.vbs) pour exécuter le modèle.
Pour plus d’informations, consultez Utilisation d’ADO pour exécuter des requêtes SQLXML.
Voici le jeu de résultats :
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Contact ContactID="1" FirstName="Gustavo" LastName="Achong" />
<Person.Contact ContactID="2" FirstName="Catherine" LastName="Abel" />
<Person.Contact ContactID="3" FirstName="Kim" LastName="Abercrombie" />
<Person.Contact ContactID="4" FirstName="Humberto" LastName="Acevedo" />
<Person.Contact ContactID="5" FirstName="Pilar" LastName="Ackerman" />
<Person.Contact ContactID="6" FirstName="Frances" LastName="Adams" />
<Person.Contact ContactID="7" FirstName="Margaret" LastName="Smith" />
<Person.Contact ContactID="8" FirstName="Carla" LastName="Adams" />
<Person.Contact ContactID="9" FirstName="Jay" LastName="Adams" />
</ROOT>
Notez que le ContactID, FirstName et LastName sont présents, mais HomeAddress n’est pas dû au fait que le schéma de mappage spécifié 0 pour l’attribut sql:mapped .
Voir aussi
Mappage par défaut des éléments et attributs XSD aux tables et colonnes (SQLXML 4.0)