檢視預存 XML 結構描述集合
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
使用 CREATE XML SCHEMA COLLECTION匯入 XML 結構描述集合之後,即會將結構描述元件儲存在中繼資料中。 您可以使用 xml_schema_namespace 內建函數以重建 XML 結構描述集合。 這個函數會傳回 xml 資料類型執行個體。
例如,下列查詢會從ProductDescriptionSchemaCollection
資料庫的生產關聯式結構描述擷取 XML 結構描述集合 ( AdventureWorks2022
)。
SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection');
GO
如果您只想查看 XML 結構描述集合的一個結構描述,則可以針對 傳回的 xml xml_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 作為目標命名空間以及其他命名空間 ns1、 ns2等的前置詞。
如果您想要保留一份完全相同的 XML 結構描述,您應該將 XML 結構描述儲存在檔案或資料庫資料表的 xml 類型資料行中。
sys.xml_schema_collections 目錄檢視也會傳回 XML 結構描述集合的資訊。 此資訊包含集合的名稱、建立日期以及集合的擁有者。