承接上篇,本文提供完整的 CREATE XML SCHEMA COLLECTION T-SQL 腳本,定義包含數字尺碼與字母尺碼雙重 List 的 Union 型別 productSizeType。
CREATE XML SCHEMA COLLECTION CatalogSizeSchema AS
N'
<xs:schema xmlns:xs="https://www.w3.org/2001/XMLSchema">
<xs:simpleType name="productSizeType">
<xs:union>
<xs:simpleType>
<xs:list>
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:enumeration value="18"/>
<xs:enumeration value="20"/>
<xs:enumeration value="22"/>
<xs:enumeration value="24"/>
</xs:restriction>
</xs:simpleType>
</xs:list>
</xs:simpleType>
<xs:simpleType>
<xs:list>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="S"/>
<xs:enumeration value="M"/>
<xs:enumeration value="L"/>
</xs:restriction>
</xs:simpleType>
</xs:list>
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:schema>';
DECLARE @x XML(CatalogSizeSchema);
SET @x = 'S M L '; -- 通過
SET @x = '18 20 22 '; -- 通過
SET @x = 'S 20 L '; -- 通過(混合)
SET @x = 'X 20 '; -- 錯誤:X 不在列舉中