xml 資料類型在 SQLXML 4.0 中的支援
從 SQL Server 2005 開始,SQL Server 支援使用 xml 資料類型的 XML 類型資料。 本主題提供有關 SQLXML 4.0 如何識別 xml 資料類型之執行個體與實作其支援的資訊。
使用 xml 資料類型
為了解如何使用實作 xml 資料類型資料行之 SQL 資料表的詳細資訊,提供下列範例:
工作 |
範例 |
主題 |
---|---|---|
如何在 XML 檢視中對應與包含 xml 資料行 |
「將 XML 元素對應至 XML 資料類型資料行」 |
|
如何使用 Updategrams 將資料插入 xml 資料行 |
「將資料插入至 XML 資料類型資料行」 |
|
將 XML 資料大量載入到 xml 資料行中 |
「大量載入到 xml 資料類型資料行」 |
指導方針與限制
<xsd:any> 無法對應到包含 xml 資料類型的資料行。 在 SQLXML 中針對此案例的支援會透過 sql:overflow-field 註解提供。 另一個因應措施為,對應 xml 資料類型欄位做為 xsd:anyType 的元素。 此因應措施會在上述資料表中參考之「將 XML 元素對應至 XML 資料類型資料行」範例中示範。
不支援 xml 資料類型資料行內容中的 XPath 查詢。
在不支援 (例如 sql:relationship 和 sql:key-fields) 或允許的註解中使用 xml 資料類型資料行將會導致 SQL Server 錯誤,實作 SQLXML 4.0 的中間層元件將不會捕捉到這個錯誤。 發生這個錯誤是因為 SQLXML 不需要 SQL 類型資訊。 這類似於其他資料類型的 SQLXML 行為,例如 BLOB 和二進位類型。
只有 XSD 結構描述支援對應 xml 資料行。 XDR 結構描述不支援對應 xml 資料行。
SQLXML 4.0 會依賴 SQL Server 中提供的 XML 剖析支援。 xml 資料行可以當做具類型的 XML 或不具類型的 XML 進行對應。 在任一種情況下,SQLXML 4.0 都不會驗證輸入 XML。 如果輸入 XML 無效或格式不正確,SQL Server 會將其回報給 SQLXML,並將使用者傳回的任何相關錯誤資訊傳播給使用者。
SQLXML 4.0 會依賴 SQL Server 中提供的 DTD 有限支援。 SQL Server 允許在 xml 資料類型資料中使用內部 DTD,這可用於提供預設值,並將實體參考取代為其展開的內容。 SQLXML 會將 XML 資料以「現況」傳遞 (包括內部 DTD) 到伺服器。 您可以使用協力廠商工具將 DTD 轉換成 XML 結構描述 (XSD) 文件,並將包含內嵌 XML 結構描述的資料載入到資料庫中。
根據 SQL Server 的行為,SQLXML 4.0 不會保留 XML 宣告處理指示 (例如,<?xml version='1.0'?>)。 但是,系統會將 XML 宣告視為 SQL Server XML 剖析器的指示詞,而且在資料轉換為 xml 資料類型之後,會遺失其屬性 (version、encoding 和 standalone)。 XML 資料會當做 UCS-2 儲存在內部。 系統會保留 XML 執行個體中的其他所有處理指示;這些指示可用於 xml 資料行,而且可由 SQLXML 支援。