Menampilkan kumpulan skema XML yang disimpan

Berlaku untuk: SQL Server (semua versi yang didukung) Azure SQL Database

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

Misalnya, kueri berikut mengambil koleksi skema XML (ProductDescriptionSchemaCollection) dari skema relasional produksi dalam AdventureWorks2019 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 SQL Server pahami 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 harus 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 layanan target dan ns1, ns2, dan sebagainya, untuk namespace layanan lain.

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