XML 架構定義語言 (XSD) 驗證對於使用資料類型的 xml SQL 資料列有一些限制。 下表提供修改 XSD 架構之限制和指導方針的詳細數據,讓其可與 SQL Server 搭配使用。 本節中的主題提供有關特定限制和使用它們的指引的額外資訊。
| 項目 | 限度 |
|---|---|
| minOccurs 和 maxOccurs | minOccurs 和 maxOccurs 屬性的值必須符合 4 位元組整數。 不符合的架構會遭到伺服器拒絕。 |
| <xsd:choice> | 除非使用 minOccurs 屬性值為零定義元素,否則 SQL Server 將拒絕沒有子元素的 <xsd:choice> 元素的架構。 |
| <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 | SQL Server 會忽略這些屬性,如果它們存在於插入到 xml 資料類型的資料行或變數中的 XML 實例數據。 |
| 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。 |
| 識別碼屬性 | 每個 XML 架構元件都可以有識別碼屬性。 SQL Server 會針對<xsd:attribute> 宣告的 ID 類型強制執行唯一性,但不會儲存這些值。 強制執行唯一性的範圍是 {CREATE | ALTER} XML SCHEMA COLLECTION 語法。 |
| 標識元類型 | 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 和更新版本中,XML 架構驗證的 xs:date、 xs:time和 xs:dateTime 值完全支援時區資訊。 SQL Server 2005 回溯相容性模式時,時區資訊一律會標準化為國際標準時間(格林威治平均時間)。 針對 dateTime 類型的元素,伺服器會使用位移值(“-05:00”)將提供的時間轉換為 GMT 並回傳相應的 GMT 時間。 |
| 等位型別 | SQL Server 不支援聯合類型的限制。 |
| 靈活精度十進位數 | SQL Server 不支援精度可變的小數。
xs:decimal 類型代表具有任意精度的小數。 符合最低標準的 XML 處理器必須支援最少的 totalDigits=18十進位數。 SQL Server 支援 totalDigits=38, ,但會將小數位數限制為 10。 所有 xs:decimal 實例值都是使用 SQL 類型數值 (38, 10) 在伺服器內部表示。 |
本節中
| 主題 | 說明 |
|---|---|
| 標準表單和模式限制 | 說明標準形式和模式限制。 |
| 通配符元件和內容驗證 | 在 XML 架構集合中描述使用通配符、寬鬆驗證和 anyType 元素的限制。 |
| 這個 <xsd:redefine> 元素 | 說明使用 <xsd:redefine> 元素的限制,並說明因應措施。 |
| xs:QName 類型 | 描述 xs:QName 類型的限制。 |
| <xsd:simpleType> 宣告的值 | 描述套用至 <xsd:simpleType> 宣告的限制。 |
| 列舉面向 | 描述列舉面向的限制。 |
| 混合類型與簡單內容 | 描述將混合類型限制為簡單內容的限制。 |
| 大型 XML 架構集合和記憶體不足狀況 | 提供有時與大型架構集合一起發生的記憶體不足狀況解決方案。 |
| 不具決定性的內容模型 | 描述有關不具決定性內容模型的限制。 |
另請參閱
XML 資料 (SQL Server)
比較具類型的 XML 與不具類型的 XML
授與 XML 架構集合的許可權
唯一粒子屬性條件約束
XML 結構描述集合 (SQL Server)