這個schema 聲明使你可以創建一個列出所有型號的元素,其中產品可以按照被空格分開的一組值來購買,如下面的示例所示:
<AvailableSizes>S M L</AvailableSizes>
然而,如果你想支持兩種不同的方式來表達一個產品的型號呢?例如,假設一個自行車產品零售商賣具有大、中、小型號的騎自行車穿的衣服,但是還想按照衣服尺寸來賣(例如18、20、22和24)?為了使你能夠這樣做,SQL Server 2008增加了對包含list類型的union類型的支持,你可以使用它將多個類型定義和限制合並到一個單獨的類型中去。例如,下面的Transact-SQL代碼創建了一個XML schema集合,它定義了一個productSizeType類型,其中有效值包括一組數字型號(18、20、22和24)和一組名稱型號(S、M和L)。
CREATE XML SCHEMA COLLECTION CatalogSizeSchema AS
N'<?XML version="1.0" encoding="UTF-16"?>
<xs:schema xmlns:xs="http://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>'