Partager via


Affichages catalogue pour XML

Les affichages catalogue servent à fournir des informations de métadonnées sur l'utilisation de XML. Certains sont abordés dans la section qui suit.

Index XML

Les entrées d'index XML apparaissent dans l'affichage catalogue, sys.indexes, avec l'index de « type » 3. La colonne name contient le nom de l'index XML.

Les index XML sont également enregistrés dans l'affichage catalogue, sys.xml_indexes, qui contient toutes les colonnes de sys.indexes, ainsi que d'autres plus spécifiques et utiles aux index XML. La valeur NULL de la colonne, secondary_type, indique qu'il s'agit d'un index XML primaire ; les valeurs « P », « R » et « V » représentent respectivement les index XML secondaires PATH, PROPERTY et VALUE.

L'espace utilisé par les index XML figure dans la fonction table sys.dm_db_index_physical_stats, qui fournit des informations telles que le nombre de pages disque occupées, la taille moyenne des lignes en octets et le nombre d'enregistrements, pour tous les types d'index. Vous y trouvez également les index XML. Ces informations sont disponibles pour chaque partition de la base de données. Les index XML utilisent le même schéma et la même fonction de partitionnement que la table de base.

Extraction des collections de schémas XML

Les collections de schémas XML sont répertoriées dans l'affichage catalogue sys.xml_schema_collections. La collection de schémas XML « sys » est définie par le système. Elle contient les espaces de noms prédéfinis qu'il est possible d'utiliser dans toutes les collections de schémas XML définies par l'utilisateur sans avoir à les charger explicitement. Cette liste contient les espaces de noms pour xml, xs, xsi, fn et xdt. Il existe deux autres affichages catalogue : sys.xml_schema_namespaces, qui répertorie tous les espaces de noms de chaque collection de schémas XML, et sys.xml_components, qui répertorie tous les composants de schéma XML de chaque schéma XML.

La fonction intégrée XML_SCHEMA_NAMESPACE, schemaName, XmlSchemacollectionName, namespace-uri, produit une instance de type xml. Cette instance contient des fragments de schéma XML pour les schémas qui sont contenus dans une collection de schémas XML, à l'exception des schémas XML prédéfinis.

Pour répertorier le contenu d'une collection de schémas XML, vous pouvez au choix :

  • écrire des requêtes Transact-SQL sur les affichages catalogue appropriés pour les collections de schémas XML ;

  • utiliser la fonction intégrée XML_SCHEMA_NAMESPACE(). Vous pouvez appliquer les méthodes du type de données xml sur le résultat de cette fonction. En revanche, vous ne pouvez pas modifier les schémas XML sous-jacents.

Ces méthodes sont illustrées dans les exemples ci-après.

Exemple : énumération des espaces de noms XML dans une collection de schémas XML

Utilisez la requête suivante pour la collection de schémas XML « myCollection » :

SELECT XSN.name
FROM    sys.xml_schema_collections XSC JOIN sys.xml_schema_namespaces XSN
    ON (XSC.xml_collection_id = XSN.xml_collection_id)
WHERE    XSC.name = 'myCollection'   

Exemple : énumération du contenu d'une collection de schémas XML

L'instruction suivante énumère le contenu de la collection de schémas XML « myCollection » dans le schéma relationnel, dbo.

SELECT XML_SCHEMA_NAMESPACE (N'dbo', N'myCollection')

Les schémas XML individuels de la collection peuvent être obtenus sous forme d'instances de type xml en spécifiant l'espace de noms cible comme troisième argument de XML_SCHEMA_NAMESPACE(). Cela est illustré par l'exemple suivant.

Exemple : extraction d'un schéma spécifique d'une collection de schémas XML

L'instruction suivante extrait le schéma XML dont l'espace de noms cible est « https://www.microsoft.com/books » de la collection de schémas XML « myCollection » dans le schéma relationnel, dbo.

SELECT XML_SCHEMA_NAMESPACE (N'dbo', N'myCollection', 
N'https://www.microsoft.com/books')

Interrogation des schémas XML

Vous pouvez interroger les schémas XML que vous avez chargés dans les collections de schémas XML en procédant ainsi :

  • Écrivez des requêtes Transact-SQL sur les affichages catalogue appropriés pour les espaces de noms de schémas XML.

  • Créez une table qui contient une colonne de type xml pour stocker vos schémas XML et aussi les charger dans le système de type XML. Vous pouvez interroger la colonne XML à l'aide des méthodes de type de données xml. Vous pouvez aussi placer un index XML sur cette colonne. Toutefois, dans ce cas, l'application doit assurer la cohérence entre les schémas XML stockés dans la colonne XML et le système de type XML. Par exemple, si vous supprimez l'espace de noms du schéma XML du système de type XML, vous devez aussi le supprimer de la table pour garantir la cohérence.

Voir aussi

Autres ressources