共用方式為


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

使用 CREATE XML SCHEMA COLLECTION匯入 XML 結構描述集合之後,即會將結構描述元件儲存在中繼資料中。 您可以使用 xml_schema_namespace內部函數來重新建構 XML 架構集合。 此函式會傳回一個xml數據類型實例。

例如,下列查詢會從 AdventureWorks2012 資料庫中的生產關係架構擷取 XML 架構集合 (ProductDescriptionSchemaCollection)。

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

如果您只想要從 XML 架構集合看到一個架構,您可以針對 xmlxml_schema_namespace傳回的類型結果指定 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)