Bagikan melalui


Menampilkan kumpulan skema XML yang disimpan

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Setelah Anda mengimpor koleksi skema XML dengan menggunakan CREATE XML SCHEMA COLLECTION, komponen skema disimpan dalam metadata. Anda dapat menggunakan fungsi intrinsik xml_schema_namespace untuk membangun kembali koleksi skema XML. Fungsi ini mengembalikan instans jenis data xml .

Misalnya, kueri berikut mengambil koleksi skema XML (ProductDescriptionSchemaCollection) dari skema relasional produksi dalam AdventureWorks2022 database.

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

Jika Anda hanya ingin melihat satu skema dari koleksi skema XML, Anda dapat menentukan XQuery terhadap hasil jenis xml yang dikembalikan oleh xml_schema_namespace.

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

Misalnya, kueri berikut mengambil informasi skema XML garansi dan pemeliharaan produk dari ProductDescriptionSchemaCollection koleksi skema XML.

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

Anda juga dapat meneruskan namespace target opsional sebagai parameter ketiga ke xml_schema_namespace fungsi untuk mengambil skema tertentu dari koleksi, seperti yang diperlihatkan dalam kueri berikut:

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

Saat Anda membuat koleksi skema XML dengan menggunakan CREATE XML SCHEMA COLLECTION dalam database, pernyataan menyimpan komponen skema dalam metadata. Hanya komponen skema yang dipahami SQL Server yang disimpan. Setiap komentar, anotasi, atau atribut non-XSD tidak disimpan. Oleh karena itu, skema yang direkonstruksi oleh xml_schema_namespace secara fungsional setara dengan skema asli, tetapi tidak akan selalu terlihat sama. Misalnya, Anda tidak akan melihat awalan yang sama dengan yang Anda miliki dalam skema asli. Skema yang dikembalikan oleh xml_schema_namespace menggunakan t sebagai awalan untuk namespace target dan ns1, ns2, dan sebagainya, untuk namespace lainnya.

Jika Anda ingin mempertahankan salinan skema XML yang identik, Anda harus menyimpan skema XML Anda dalam file atau dalam tabel database di kolom jenis xml .

Tampilan katalog sys.xml_schema_collections juga mengembalikan informasi tentang koleksi skema XML. Informasi ini mencakup nama koleksi, tanggal pembuatan, dan pemilik koleksi.

Lihat juga