首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2008 XML 新功能(七):Union + List 完整 Schema 定義實作

     編輯:關於SqlServer

承接上篇,本文提供完整的 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 不在列舉中

應用價值

  • 單一 XML 元素支援多地區/多通路尺碼慣例,免維護多欄位。
  • Schema 層面強制驗證,資料品質有保障。
  • 查詢時可使用 XQuery 統一處理,無需條件分支轉換。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved