Dela via


Visa en lagrad XML-schemasamling

gäller för:SQL ServerAzure SQL DatabaseAzure 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.

Se även