Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Dopo aver importato una raccolta di XML Schema tramite l'istruzione CREATE XML SCHEMA COLLECTION, i componenti di schema vengono archiviati nei metadati. È possibile utilizzare la funzione intrinseca xml_schema_namespaceper ricostruire la raccolta di XML Schema. Questa funzione restituisce un'istanza xml del tipo di dati.
Ad esempio, la query seguente recupera una raccolta di XML Schema (ProductDescriptionSchemaCollection) dallo schema relazionale di produzione nel database AdventureWorks2012 .
SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection')
GO
Se si desidera visualizzare un solo schema dalla raccolta di XML Schema, è possibile specificare XQuery sul risultato del xml tipo restituito da 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 .
SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection').query('
/xs:schema[@targetNamespace="https://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:
SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection', N'https://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. Si noti che vengono archiviati solo i componenti dello schema che SQL Server riconosce. Eventuali commenti, annotazioni o attributi non XSD non vengono archiviati. 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. Ad esempio, non verranno visualizzati gli stessi prefissi presenti nello schema originale. 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.
Se si desidera conservare una copia identica degli XML Schema, è necessario salvare l'XML Schema in un file o in una tabella di database in una xml colonna di tipo.
La vista del catalogo sys.xml_schema_collections restituisce anche informazioni sulle raccolte di XML Schema, che includono il nome, la data di creazione e il proprietario della raccolta.