Depois de você importar uma coleção de esquema XML usando CREATE XML SCHEMA COLLECTION, os componentes do esquema são armazenados nos metadados. É possível usar a função intrínseca xml_schema_namespace para realizar a reconstrução da coleção de esquema XML. Essa função retorna uma instância de tipo de dados xml .
Por exemplo, a consulta a seguir recupera uma coleção de esquema XML (ProductDescriptionSchemaCollection) do esquema relacional de produção no banco de dados AdventureWorks2022 .
SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection');
GO
Se desejar ver apenas um esquema da coleção de esquemas XML, será possível especificar XQuery em relação ao resultado do tipo xml que é retornado pelo xml_schema_namespace.
SELECT xml_schema_namespace(N'RelationalSchemaName',N'XmlSchemaCollectionName').query('
/xs:schema[@targetNamespace="TargetNameSpace"]
');
GO
Por exemplo, a consulta a seguir recupera informações do esquema XML sobre garantia e manutenção do produto da coleção de esquema XML ProductDescriptionSchemaCollection .
SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection').query('
/xs:schema[@targetNamespace="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain"]
');
GO
Também é possível passar o namespace opcional de destino como o terceiro parâmetro para a função xml_schema_namespace para recuperar esquema específico da coleção, conforme mostrado na consulta a seguir:
SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection', N'https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain');
GO
Quando você cria uma coleção de esquema XML usando CREATE XML SCHEMA COLLECTION no banco de dados, a instrução armazena os componentes do esquema nos metadados. Somente os componentes do esquema que o SQL Server reconhece são armazenados. Os comentários, as anotações ou os atributos que não são XSD não são armazenados. Portanto o esquema reconstruído pelo xml_schema_namespace é funcionalmente equivalente ao esquema original, mas não necessariamente terá a mesma aparência. Por exemplo, você não verá os mesmos prefixos que existiam no esquema original. O esquema retornado pelo xml_schema_namespace usa t como o prefixo do namespace de destino e ns1, ns2e assim por diante, para outros namespaces.
Para manter uma cópia idêntica dos esquemas XML, é necessário salvar o esquema XML em um arquivo ou em uma tabela do banco de dados em uma coluna de tipo xml .
A exibição de catálogo sys.xml_schema_collections também retorna informações sobre coleções de esquemas XML. Essas informações incluem o nome da coleção, a data de criação e o proprietário da coleção.
Os bancos de dados relacionais podem armazenar grandes quantidades de dados, mas também precisam conter informações sobre a estrutura desses dados. Para um sistema de gerenciamento de banco de dados operacional (SGBD), são necessárias informações sobre a estrutura de tabelas e todos os outros objetos, segurança e simultaneidade, entre muitas outras configurações e métricas. Essas informações são conhecidas como metadados e são armazenadas em catálogos do sistema no Banco de Dados do Azure para PostgreSQL. A