Visa en lagrad XML-schemasamling
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
När du har importerat en XML-schemasamling med hjälp av CREATE XML SCHEMA COLLECTIONlagras schemakomponenterna i metadata. Du kan använda den xml_schema_namespace inbyggda funktionen för att rekonstruera XML-schemasamlingen. Den här funktionen returnerar en XML-datatyp instans.
Följande fråga hämtar till exempel en XML-schemasamling (ProductDescriptionSchemaCollection
) från relationsschemat för produktion i AdventureWorks2022
-databasen.
SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection');
GO
Om du bara vill se ett schema från XML-schemasamlingen kan du ange XQuery mot det xml- typresultat som returneras av xml_schema_namespace
.
SELECT xml_schema_namespace(N'RelationalSchemaName',N'XmlSchemaCollectionName').query('
/xs:schema[@targetNamespace="TargetNameSpace"]
');
GO
Följande fråga hämtar till exempel information om XML-schema för produktgaranti och underhåll från den ProductDescriptionSchemaCollection
XML-schemasamlingen.
SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection').query('
/xs:schema[@targetNamespace="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain"]
');
GO
Du kan också skicka det valfria målnamnområdet som den tredje parametern till funktionen xml_schema_namespace
för att hämta ett specifikt schema från samlingen, enligt följande fråga:
SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection', N'https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain');
GO
När du skapar en XML-schemasamling med hjälp av CREATE XML SCHEMA COLLECTION i databasen lagrar -instruktionen schemakomponenterna i metadata. Endast de schemakomponenter som SQL Server förstår lagras. Kommentarer, anteckningar eller icke-XSD-attribut lagras inte. Därför är schemat som rekonstrueras av xml_schema_namespace funktionellt likvärdigt med det ursprungliga schemat, men det ser inte nödvändigtvis likadant ut. Du ser till exempel inte samma prefix som du hade i det ursprungliga schemat. Schemat som returneras av xml_schema_namespace använder t som prefix för målnamnområdet och ns1, ns2osv. för andra namnområden.
Om du vill behålla en identisk kopia av XML-scheman bör du spara XML-schemat i en fil eller i en databastabell i en xml- typkolumn.
Katalogvyn sys.xml_schema_collections returnerar också information om XML-schemasamlingar. Den här informationen innehåller namnet på samlingen, skapandedatumet och samlingens ägare.