Megosztás a következőn keresztül:


Tárolt XML-sémagyűjtemény megtekintése

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Miután importált egy XML-sémagyűjteményt CREATE XML SCHEMA COLLECTIONhasználatával, a sémaösszetevők a metaadatokban lesznek tárolva. A xml_schema_namespace belső függvény használatával rekonstruálhatja az XML-sémagyűjteményt. Ez a függvény egy xml- adattípus-példányt ad vissza.

Az alábbi lekérdezés például egy XML-sémagyűjteményt (ProductDescriptionSchemaCollection) kér le a AdventureWorks2025 adatbázis éles relációs sémájából.

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

Ha csak egy sémát szeretne látni az XML-sémagyűjteményből, megadhatja az XQueryt a által visszaadott xml_schema_namespace típusú eredmény alapján.

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

Az alábbi lekérdezés például lekéri a termékszavatossági és karbantartási XML-sémaadatokat a ProductDescriptionSchemaCollection XML-sémagyűjteményből.

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

Az opcionális célnévteret harmadik paraméterként is átadhatja a xml_schema_namespace függvénynek, hogy lekérje az adott sémát a gyűjteményből, ahogyan az az alábbi lekérdezésben látható:

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

Ha XML-sémagyűjteményt hoz létre a CREATE XML SCHEMA COLLECTION használatával az adatbázisban, az utasítás a sémaösszetevőket a metaadatokban tárolja. Csak az SQL Server által megismert sémaösszetevők vannak tárolva. A megjegyzések, széljegyzetek és nem XSD-attribútumok nincsenek tárolva. Ezért a xml_schema_namespace által rekonstruált séma funkcionálisan egyenértékű az eredeti sémával, de nem feltétlenül ugyanúgy fog kinézni. Például nem fogja látni ugyanazokat az előtagokat, mint az eredeti sémában. A xml_schema_namespace által visszaadott séma a célnévtér előtagjaként a t használja, és a többi névtér esetében a ns1, ns2stb.

Ha meg szeretné őrizni az XML-sémák azonos másolatát, mentse az XML-sémát egy fájlba vagy egy adatbázistáblába egy xml típusú oszlopba.

A sys.xml_schema_collections katalógusnézet az XML-sémagyűjteményekkel kapcsolatos információkat is visszaadja. Ezek az információk tartalmazzák a gyűjtemény nevét, a létrehozás dátumát és a gyűjtemény tulajdonosát.

Lásd még: