伺服器上 XML 結構描述集合的需求與限制

XML 結構描述定義語言 (XSD) 驗證對於使用 xml 資料類型的 SQL 資料行具有某些相關限制。 下表提供這些限制的詳細資料以及修改 XSD 結構描述以便讓它可以搭配 SQL Server 使用的指導方針。 本章節的主題提供有關特定限制的其他資訊,以及處理這些限制的指導方針。

項目

限制

minOccursmaxOccurs

minOccursmaxOccurs 屬性值必須符合 4 位元組的整數。 伺服器將會拒絕不符合的結構描述。

<xsd:choice>

SQL Server 會拒絕沒有子系的 <xsd:choice> 物件之結構描述,除非以零的 minOccurs 屬性值定義該物件。

<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:schemaLocationxsi: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 陳述式中。

標準格式與模式限制

值的標準表示法不能違反其類型的模式限制。 如需詳細資訊,請參閱<標準格式與模式限制>。

列舉 Facet

SQL Server 不支援類型含有模式 Facet 或列舉違反這些 Facet 的 XML 結構描述。

Facet 長度

lengthminLength 以及 maxLength Facet 將會儲存為 long 類型。 此類型是 32 位元的類型。 因此,這些值的可接受值範圍為 2^31。

ID 屬性

每個 XML 結構描述元件都可擁有識別碼屬性。 SQL Server 會針對 ID 類型的 <xsd:attribute> 宣告強制唯一性,但不會儲存這些值。 唯一性的強制範圍是 {CREATE | ALTER} XML SCHEMA COLLECTION 陳述式。

ID 類型

SQL Server 不支援 xs:IDxs:IDREFxs: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 字元。 另外,不支援在識別碼中的 Surrogate 字元組。

時區資訊

在 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 結構描述集合使用萬用字元、Lax 驗證和 anyType 元素的限制。

<xsd:redefine> 元素

說明使用 <xsd:redefine> 元素的限制及描述因應措施。

xs:QName 類型

描述有關 xs:QName 類型的限制。

<xsd:simpleType> 宣告的值

描述適用於 <xsd:simpleType> 宣告的限制。

列舉 Facet

描述有關列舉 Facet 的限制。

混合的類型與簡單的內容

描述將混合類型限制為簡單內容的限制。

大型的 XML 結構描述集合與記憶體不足的情況

提供有時在處理大型結構描述集合時,可能發生之記憶體不足狀況的解決方案。

不具決定性的內容模型

描述有關不具決定性之內容模型的限制。

請參閱

參考

授與 XML 結構描述集合的權限

XML 結構描述集合 (SQL Server)

概念

XML 資料 (SQL Server)

比較具類型的 XML 與不具類型的 XML

唯一物件屬性條件約束