Partager via


Spécification de valeurs par défaut pour des attributs dans le schéma XDR (schéma XDR)

Important

Cette rubrique est fournie à titre de référence pour les applications héritées. Cette fonctionnalité ne fera plus l'objet d'aucun travail de développement. Évitez de l'utiliser dans vos nouveaux travaux de développement. Utilisez à la place des schémas XSD annotés pour créer des vues XML. Pour plus d'informations, consultez Introduction aux schémas XSD annotés (SQLXML 4.0). Vous pouvez convertir des schémas XDR annotés existants en schémas XSD. Pour plus d'informations, consultez Conversion de schémas XDR annotés en schémas XSD équivalents (SQLXML 4.0).

Dans une base de données, des valeurs par défaut peuvent être attribuées aux colonnes. De la même façon, dans un schéma XDR, des valeurs par défaut peuvent être définies pour des attributs (ce qui n'est pas le cas pour des éléments dans ce schéma). Le schéma XDR autorise la spécification de l'attribut default sur <AttributeType>.

Si une valeur de colonne associée à un attribut est NULL, cet attribut n'est pas retourné pour cette instance de l'élément. Mais si l'attribut default est spécifié sur <AttributeType>, l'attribut est retourné avec la valeur par défaut spécifiée.

Par exemple, dans le cadre de l'extraction de données de la base de données dans un document XML, si l'une des valeurs d'attribut est manquante, une valeur par défaut de cet attribut dans le schéma XDR est utilisée.

Notes

Les valeurs par défaut peuvent ne pas apparaître dans le document retourné. Plus exactement, cette valeur est utilisée par l'analyseur de validation chaque fois que l'attribut n'est pas présent.

Notes

La valeur par défaut est utilisée si l'analyseur employé prend en charge les schémas. Autrement dit, pour l'analyseur MSXML, vous devez vous assurer que l'indicateur resolveExternals a la valeur TRUE (valeur par défaut). L'analyseur extrait ensuite les schémas. Une fois analysées, les instances individuelles possèdent les attributs (pour lesquels la valeur par défaut est spécifiée), que l'attribut ait été inclus dans le document XML ou non. DOM fournit la valeur par défaut.

Exemples

Pour créer des exemples fonctionnels à l'aide des exemples suivants, un certain nombre de conditions doivent être réunies. Pour plus d'informations, consultez Configuration requise pour l'exécution des exemples SQLXML.

A. Spécifier la valeur par défaut pour un attribut dans le schéma XDR

Dans cet exemple, l'attribut Title reçoit la valeur par défaut « XYZ ». Lorsque les enregistrements de contact sont récupérés, une valeur par défaut est attribuée pour les contacts qui n'ont pas de titre.

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">

<ElementType name="Person.Person" >
    <AttributeType name="CID" />
    <AttributeType name="FirstName" />
    <AttributeType name="LastName" />
    <AttributeType name="Title" default="XYZ"/>

    <attribute type="CID" sql:field="BusinessEntityID" />
    <attribute type="FirstName" />
    <attribute type="LastName" />
    <attribute type="Title"  />
</ElementType>
</Schema>

Pour tester un exemple de requête XPath sur le schéma

  1. Copiez le code de schéma ci-dessus et collez-le dans un fichier texte. Enregistrez le fichier sous le nom DefaultValueXdr.xml.

  2. Copiez le modèle suivant et collez-le dans un fichier texte. Enregistrez le fichier sous le nom DefaultValueXdrT.xml dans le répertoire où vous avez enregistré le fichier DefaultValueXdr.xml.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="DefaultValueXdr.xml">
        /Person.Person[@CID &gt; 1000 and @CID &lt; 1006]
      </sql:xpath-query>
    </ROOT>
    

    Le chemin d'accès au répertoire spécifié pour le schéma de mappage (DefaultValueXdr.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\DefaultValueXdr.xml"
    
  3. 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 4.0.

Le jeu de résultats obtenu est le suivant :

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Person.Person CID="1001" FirstName="Terri" LastName="Duffy" /> 
  <Person.Person CID="1002" FirstName="Roberto" LastName="Tamburello" /> 
  <Person.Person CID="1003" FirstName="Michael" LastName="Sullivan" /> 
  <Person.Person CID="1004" FirstName="Sharon" LastName="Salavaria" /> 
  <Person.Person CID="1005" FirstName="Gail" LastName="Erickson" Title="Ms." /> 
</ROOT>