Partager via


Afficher une collection de schémas XML stockée

Après l’importation d’une collection de schémas XML à l’aide de l’instruction CREATE XML SCHEMA COLLECTION, les composants du schéma sont stockés dans les métadonnées. Vous pouvez utiliser la fonction intrinsèque xml_schema_namespacepour reconstruire la collection de schémas XML. Cette fonction retourne une xml instance de type de données.

Par exemple, la requête suivante récupère une collection de schémas XML (ProductDescriptionSchemaCollection) à partir du schéma relationnel de production dans la base de données AdventureWorks2012 .

SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection')  
GO  

Si vous souhaitez afficher un seul schéma de la collection de schémas XML, vous pouvez spécifier XQuery par rapport au xml résultat de type retourné par xml_schema_namespace.

SELECT xml_schema_namespace(N'RelationalSchemaName',N'XmlSchemaCollectionName').query('  
/xs:schema[@targetNamespace="TargetNameSpace"]  
')  
GO  

Par exemple, la requête suivante extrait les informations du schéma XML traitant des garanties et de l'entretien des produits à partir de la collection de schémas XML nommée ProductDescriptionSchemaCollection .

SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection').query('  
/xs:schema[@targetNamespace="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain"]  
')  
GO  

Vous pouvez également transmettre l'espace de noms cible facultatif en tant que troisième paramètre à la fonction xml_schema_namespace pour extraire un schéma spécifique de la collection, comme illustré dans la requête suivante :

SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection', N'https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain')  
GO  

Lors de la création d'une collection de schémas XML par le biais de l'instruction CREATE XML SCHEMA COLLECTION dans la base de données, l'instruction stocke les composants du schéma dans les métadonnées. Notez que seuls les composants de schéma que SQL Server comprend sont stockés. Les commentaires, annotations ou attributs non XSD ne sont pas stockés. Le schéma ainsi reconstruit par xml_schema_namespace est donc équivalent au schéma d’origine d’un point de vue fonctionnel, mais ne lui ressemble pas nécessairement. Par exemple, vous ne verrez pas les mêmes préfixes que ceux que vous aviez dans le schéma d’origine. Le schéma renvoyé par la fonction xml_schema_namespace utilise t comme préfixe pour l’espace de noms cible et ns1, ns2, etc., pour les autres espaces de noms.

Si vous souhaitez conserver une copie identique des schémas XML, vous devez enregistrer votre schéma XML dans un fichier ou dans une table de base de données dans une xml colonne de type.

La vue de catalogue sys.xml_schema_collections retourne également des informations concernant les collections de schémas XML. Ces informations comprennent le nom de la collection, la date de création et le propriétaire de la collection.

Voir aussi

Collections de schémas XML (SQL Server)