從 SQL Server 2005 開始,SQL Server 支援使用 xml 資料類型的 XML 類型數據。 本主題提供 SQLXML 4.0 如何辨識數據類型實例, xml 並實作它們支持的資訊。
使用 xml 資料類型
若要深入瞭解如何使用實 xml 作數據類型數據行的 SQL 資料表,提供下列範例:
| 任務 | 範例 | 主題 |
|---|---|---|
如何在 XML 檢視中對應和包含數據行xml |
「將 XML 元素對應至 XML 資料類型資料行」 | XSD 元素與屬性與資料表和資料列的預設對應 (SQLXML 4.0) |
如何使用 updategram 將資料插入數據 xml 行 |
「將資料插入 XML 資料類型資料行」 | 使用 XML Updategram 插入資料 (SQLXML 4.0) |
將 XML 數據大量載入資料 xml 行 |
「在 xml 資料類型資料列中大量載入」 | XML 大量載入範例 (SQLXML 4.0) |
指導方針和限制
<xsd:any> 無法對應至包含
xml數據類型的數據行。 此案例的 SQLXML 支援是透過sql:overflow-field批注提供。 另一個因應措施是將數據類型欄位對應xml為 的專案xsd:anyType。 此因應措施示範於上表所參考的「將 XML 元素對應至 XML 數據類型數據行」範例中。不支援對數據類型數據行內容的
xmlXPath 查詢。xml在不支援的批注中使用數據類型數據行(例如sql:relationship和sql:key-fields)或允許,會導致實作 SQLXML 4.0 的仲介層元件不會截獲 SQL Server 錯誤。 這是因為 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)檔,並將內嵌 XSD 架構的數據載入資料庫。SQLXML 4.0 不會根據 SQL Server 的行為保留 XML 宣告處理指令(例如, )。 相反地,XML 宣告會被視為 SQL Server XML 剖析器的指示詞,而且其屬性(版本、編碼和獨立)會在數據轉換成
xml數據類型之後遺失。 XML 資料會在內部儲存為 UCS-2。 XML 實例中的所有其他處理指令都會保留;數據行中xml允許它們,而且 SQLXML 支援它們。