Visualizzazione di una raccolta di XML Schema archiviataView a Stored XML Schema Collection

Dopo aver importato una raccolta di XML Schema tramite l'istruzione CREATE XML SCHEMA COLLECTION, i componenti di schema vengono archiviati nei metadati.After you import an XML schema collection by using CREATE XML SCHEMA COLLECTION, the schema components are stored in the metadata. Per ricostruire la raccolta di XML Schema, è possibile usare la funzione intrinseca xml_schema_namespace.You can use the xml_schema_namespaceintrinsic function to reconstruct the XML schema collection. Questa funzione restituisce un'istanza del tipo di dati xml .This function returns an xml data type instance.

Ad esempio, la query seguente restituisce una raccolta di XML Schema (ProductDescriptionSchemaCollection) dallo schema relazionale di produzione nel database AdventureWorks2012AdventureWorks2012 .For example, the following query retrieves an XML schema collection (ProductDescriptionSchemaCollection) from the production relational schema in the AdventureWorks2012AdventureWorks2012 database.

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

Se si desidera visualizzare solo uno schema della raccolta di XML Schema, è possibile specificare una query XQuery sul risultato di tipo xml restituito dalla funzione xml_schema_namespace.If you want to see only one schema from the XML schema collection, you can specify XQuery against the xml type result that is returned by xml_schema_namespace.

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

Ad esempio, la query seguente recupera le informazioni di XML Schema relative alla manutenzione e alla garanzia dei prodotti dalla raccolta di schemi ProductDescriptionSchemaCollection .For example, the following query retrieves product warranty and maintenance XML schema information from the ProductDescriptionSchemaCollection XML schema collection.

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

Per recuperare uno schema specifico dalla raccolta, è inoltre possibile passare lo spazio dei nomi di destinazione facoltativo come terzo parametro della funzione xml_schema_namespace , come illustrato nella query seguente:You can also pass the optional target namespace as the third parameter to the xml_schema_namespace function to retrieve specific schema from the collection, as shown in the following query:

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

Quando si crea una raccolta di XML Schema nel database tramite l'istruzione CREATE XML SCHEMA COLLECTION, i componenti di schema vengono archiviati nei metadati.When you create an XML schema collection by using CREATE XML SCHEMA COLLECTION in the database, the statement stores the schema components in the metadata. Si noti che vengono archiviati solo i componenti di schema riconosciuti da SQL ServerSQL Server .Note that only the schema components that SQL ServerSQL Server understands are stored. Non vengono archiviati commenti, annotazioni o attributi non XSD.Any comments, annotations, or non-XSD attributes are not stored. Dal punto di vista funzionale, pertanto, lo schema ricostruito dalla funzione xml_schema_namespace è equivalente allo schema originale, ma l'aspetto non sarà necessariamente identico.Therefore, the schema reconstructed by xml_schema_namespace is functionally equivalent to the original schema, but it will not necessarily look the same. Ad esempio, non verranno visualizzati gli stessi prefissi dello schema originale.For example, you will not see the same prefixes you had in the original schema. Lo schema restituito dalla funzione xml_schema_namespace usa t come prefisso per lo spazio dei nomi di destinazione e ns1, ns2e così via per gli altri spazi dei nomi.The schema returned by xml_schema_namespace uses t as the prefix for the target namespace and ns1, ns2, and so on, for other namespaces.

Se si desidera mantenere una copia identica di XML Schema, è consigliabile salvarli in un file o in una tabella di database all'interno di una colonna di tipo xml .If you want to retain an identical copy of the XML schemas, you should save your XML schema in a file or in a database table in an xml type column.

La vista del catalogo sys.xml_schema_collections restituisce anche informazioni sulle raccolte di XML Schema,The sys.xml_schema_collections catalog view also returns information about XML schema collections. che includono il nome, la data di creazione e il proprietario della raccolta.This information includes the name of the collection, the creation date, and the owner of the collection.

Vedere ancheSee Also

Raccolte di XML Schema (SQL Server)XML Schema Collections (SQL Server)