檢視儲存的 XML 結構描述集合

使用 CREATE XML SCHEMA COLLECTION 匯入 XML 結構描述集合之後,即會將結構描述元件儲存在中繼資料中。 您可以使用 xml_schema_namespace 內建函數以重建 XML 結構描述集合。 這個函數會傳回 xml 資料類型執行個體。

例如,下列查詢會從 AdventureWorks2012 資料庫的生產關聯式結構描述擷取 XML 結構描述集合 (ProductDescriptionSchemaCollection)。

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

如果您只想查看 XML 結構描述集合的一個結構描述,您可以針對 xml_schema_namespace 傳回的 xml 類型結果指定 XQuery。

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

例如,下列查詢可從 ProductDescriptionSchemaCollection XML 結構描述集合擷取產品保證和維護 XML 結構描述資訊。

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

您也可以將選擇性的目標命名空間當做第三個參數傳遞至 xml_schema_namespace 函數,以擷取集合中的特定結構描述,如下列查詢所示:

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

當使用資料庫中的 CREATE XML SCHEMA COLLECTION 來建立 XML 結構描述集合時,陳述式會在中繼資料內儲存結構描述元件。 請注意只會儲存 SQL Server 可辨識的結構描述元件。 不會儲存任何註解或非 XSD 屬性。 因此,xml_schema_namespace 重新建構的結構描述在功能上等於原始結構描述,但是它看起來不一定相同。 例如,您將看不到與原始結構描述中相同的前置詞。 xml_schema_namespace 傳回的結構描述使用 t 做為目標命名空間以及其他命名空間 ns1ns2 等的前置詞。

如果您想要保留一份完全相同的 XML 結構描述,您應該將 XML 結構描述儲存在檔案或資料庫資料表的 xml 類型資料行中。

sys.xml_schema_collections 目錄檢視也會傳回 XML 結構描述集合的資訊。 此資訊包含集合的名稱、建立日期以及集合的擁有者。

請參閱

參考

XML 結構描述集合 (SQL Server)