適用於:SQL Server
Azure SQL Database
Azure SQL 受控執行個體
Microsoft Fabric 中的 SQL 資料庫
XML 結構描述定義語言 (XSD) 驗證對於使用 xml 資料類型的 SQL 資料行具有某些相關限制。 下表提供這些限制的詳細資料以及修改 XSD 結構描述的指導方針,以便讓它搭配 SQL Server 運作。 本章節的文章提供有關特定限制的其他資訊,以及處理這些限制的指引。
| 項目 | 限制 |
|---|---|
| minOccurs 與 maxOccurs | minOccurs 與 maxOccurs 屬性值必須符合 4 位元組的整數。 伺服器將會拒絕不符合的結構描述。 |
| <XSD:選擇> | SQL Server 會拒絕包含沒有子項目的 <xsd:choice> 粒子的結構描述,除非該粒子的 minOccurs 屬性值設為 0。 |
| <xsd:include> | 目前,SQL Server 不支援這個元素。 伺服器將會拒絕包含此元素的 XML 結構描述。 若要解決此問題,您可以預先處理包含<xsd:include> 指示詞的 XML 結構描述,將任何所包含的結構描述內容複製並合併成單一結構描述,以便上傳至伺服器。 如需更多資訊,請參閱 前置處理結構描述以合併已包含的結構描述。 |
| <xsd:key>、<xsd:keyref> 和 <xsd:unique> | 目前,SQL Server 不支援這些以 XSD 為基礎的限制條件,無法用來強制執行唯一性或建立鍵和鍵參考。 無法註冊包含這些元素的 XML 結構描述。 |
| <xsd:redefine> | SQL Server 不支援這個元素。 如需了解另一種更新結構描述的方法,請參閱 <xsd:redefine> 元素。 |
| <xsd:simpleType> 值 | SQL Server 只支援具有 xs:time 和 xs:dateTime 以外的第二個元件的簡單類型毫秒精確度,以及 xs:time 和 xs:dateTime 100 奈秒的精確度。 SQL Server 會對所有可辨識的 XSD 簡單類型列舉做出限制。 SQL Server 不支援在 <xsd:simpleType> 宣告中使用 "NaN" 值。 如需詳細資訊,請參閱 <xsd:simpleType> 宣告的值。 |
| xsi:schemaLocation 與 xsi:noNamespaceSchemaLocation | 如果插入至 xml 資料類型之資料行或變數的 XML 執行個體資料中包含這些屬性,SQL Server 會忽略這些屬性。 |
| xs:QName | SQL Server 不支援使用 XML 結構描述限制元素且從 xs:QName 衍生的類型。 SQL Server 不支援以 xs:QName 作為成員元素的等位型別。 如需詳細資訊,請參閱 xs:QName 類型。 |
| 將成員加入現有替代群組 | 您無法在 XML 結構描述集合中將成員加入現有的替代群組。 XML 架構中的替代群組其限制在於,主元素及其所有成員元素都必須在同一個 {CREATE | ALTER} XML SCHEMA COLLECTION 陳述式中定義。 |
| 標準格式與模式限制 | 值的標準表示法不能違反其類型的模式限制。 如需詳細資訊,請參閱 標準格式與模式限制。 |
| 列舉面向 | SQL Server 不支援其中型別具有模式限制,或列舉值違反這些限制的 XML 結構描述。 |
| 切面長度 | length、 minLength和 maxLength Facet 將會儲存為 long 類型。 此類型是 32 位元的類型。 因此,這些值的可接受值範圍為 2^31。 |
| ID 屬性 | 每個 XML 結構描述元件都可擁有識別碼屬性。 SQL Server 會對 <xsd:attribute> 的 ID 類型宣告強制唯一性,但不會儲存這些值。 唯一性強制執行的範圍為 {CREATE |ALTER} XML SCHEMA COLLECTION 陳述。 |
| ID 類型 | SQL Server 不支援 xs:ID、xs:IDREF 或 xs:IDREFS類型的元素。 綱要不得宣告此型別的元素,或宣告由此型別透過限制或延伸衍生出的元素。 |
| 區域命名空間 | 您必須為 <xsd:any> 元素明確指定區域命名空間。 SQL Server 會拒絕使用空字串 ("") 作為命名空間屬性值的結構描述。 相反地,SQL Server 要求明確使用 "##local",以將未限定的元素或屬性表示為萬用字元的實例。 |
| 混合的類型與簡單的內容 | SQL Server 不支援將混合類型限制為簡單內容。 如需詳細資訊,請參閱 混合的類型與簡單的內容。 |
| NOTATION 類型 | SQL Server不支援 NOTATION 類型。 |
| 記憶體不足狀況 | 在處理大型的 XML 結構描述集合時,有可能發生記憶體不足的情況。 如需這個問題的解決方案,請參閱 大型的 XML 結構描述集合與記憶體不足的情況。 |
| 重複值 | SQL Server 會拒絕 block 或 final 屬性有重複值的結構描述,例如 "restriction restriction" 與 "extension extension"。 |
| 綱要元件識別碼 | SQL Server 會將結構描述元件識別碼的最大長度限制為 1000 個 Unicode 字元。 另外,也不支援識別碼中的代理字元對。 |
| 時區資訊 | 在 SQL Server 2008 (10.0.x) 和更新版本中進行 XML 結構描述驗證時,xs:date、xs:time 和 xs:dateTime 值完全支援時區資訊。 在 SQL Server 2005 (9.x) 回溯相容性模式下,時區資訊一定會正規化為國際標準時間 (格林威治標準時間)。 若為 dateTime 類型的元素,伺服器就會使用位移值 ("-05:00") 和傳回對應的 GMT 時間,藉以將提供的時間轉換為 GMT。 |
| 聯集類型 | SQL Server 不支援來自聯集類型的限制。 |
| 可變精度十進位小數 | SQL Server不支援變數精確度十進位數。
xs:decimal 類型表示任意精度的十進位小數。 符合 XML 處理器的最低限度必須支援最少為 totalDigits=18的十進位數字。 SQL Server 支援 totalDigits=38,,但是會將小數點後數字限制為 10。 伺服器在內部會使用 SQL 類型 numeric (38, 10) 來表示所有 xs:decimal 執行個體的值。 |
下一步
標準格式與模式限制
說明標準格式與模式限制。萬用字元元件和內容驗證
描述在 XML 結構描述集合中使用萬用字元、lax 驗證及 anyType 元素的限制。<「xsd:redefine」元素>
說明使用 <xsd:redefine> 元素的限制及描述因應措施。xs:QName 類型
描述有關xs:QName類型的限制。<xsd:simpleType> 宣告的值 描述套用至
<xsd:simpleType>宣告的限制。列舉面向
描述列舉面向的限制。混合類型和簡單內容 描述將混合類型限制為簡單內容的限制。
大型的 XML 結構描述集合與記憶體不足的情況
提供有時在處理大型結構描述集合時,可能發生之記憶體不足狀況的解決方案。不具決定性的內容模型 描述有關不具決定性的內容模型相關限制。