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.
Pour spécifier un élément constant, c’est-à-dire un élément du schéma XSD qui n’est mappé à aucune table de base de données ou colonne, vous pouvez utiliser l’annotation sql:is-constant . Cette annotation prend une valeur booléenne (0 = false, 1 = true). Les valeurs acceptables sont 0, 1, true et false. L’annotation sql:is-constant peut être spécifiée sur un élément qui n’a aucun attribut. S’il est spécifié sur un élément avec la valeur true (ou 1), cet élément n’est pas mappé à la base de données, mais apparaît toujours dans le document XML.
L’annotation sql:is-constant peut être utilisée pour :
Ajout d’un élément de niveau supérieur au document XML. XML nécessite un seul élément de niveau supérieur (élément racine) pour le document.
Création d’éléments de conteneur, tels qu’un <élément Orders> qui encapsule toutes les commandes.
L’annotation sql:is-constant peut être ajoutée à un <élément complexType> .
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 sql :is-constant pour ajouter un élément de conteneur
Dans ce schéma XSD annoté, <CustomerOrders> est défini comme un élément constant en spécifiant l’attribut sql:is-constant avec la valeur 1. Par conséquent, <CustomerOrders> n’est mappé à aucune table ou colonne de base de données. Cet élément constant se compose des <éléments enfants Order> .
Bien que <CustomerOrders> ne mappe pas à une table ou une colonne de base de données, il apparaît toujours dans le code XML résultant en tant qu’élément conteneur contenant les <éléments enfants Order> .
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:annotation>
<xsd:appinfo>
<sql:relationship name="CustOrders"
parent="Sales.Customer"
parent-key="CustomerID"
child="Sales.SalesOrderHeader"
child-key="CustomerID" />
</xsd:appinfo>
</xsd:annotation>
<xsd:element name="Customer" sql:relation="Sales.Customer" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CustomerOrders" sql:is-constant="1" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Order" sql:relation="Sales.SalesOrderHeader"
sql:relationship="CustOrders"
maxOccurs="unbounded" >
<xsd:complexType>
<xsd:attribute name="SalesOrderID" type="xsd:integer" />
<xsd:attribute name="OrderDate" type="xsd:date" />
<xsd:attribute name="CustomerID" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="CustomerID" 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 isConstant.xml.
Copiez le modèle suivant et collez-le dans un fichier texte. Enregistrez le fichier en tant que isConstantT.xml dans le même répertoire que celui où vous avez enregistré isConstant.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="isConstant.xml"> Customer[@CustomerID=1] </sql:xpath-query> </ROOT>Le chemin d’accès au répertoire spécifié pour le schéma de mappage (isConstant.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\isConstant.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.
Il s’agit du jeu de résultats partiel :
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Customer CustomerID="1">
<CustomerOrders>
<Order SalesOrderID="43860" OrderDate="2001-08-01" CustomerID="1" />
<Order SalesOrderID="44501" OrderDate="2001-11-01" CustomerID="1" />
<Order SalesOrderID="45283" OrderDate="2002-02-01" CustomerID="1" />
<Order SalesOrderID="46042" OrderDate="2002-05-01" CustomerID="1" />
...
</CustomerOrders>
</Customer>
</ROOT>