91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

XML模式中擴展枚舉列表的方法

發布時間:2022-03-16 16:12:35 來源:億速云 閱讀:179 作者:iii 欄目:web開發

本篇內容介紹了“XML模式中擴展枚舉列表的方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

清單 1. 婚姻狀況枚舉列表 
<xsd:simpleType name="MaritalStatusEnumType"> 
<xsd:restriction base="xsd:normalizedString"> 
<xsd:enumeration value="Divorced"/> 
<xsd:enumeration value="Married"/> 
<xsd:enumeration value="NeverMarried"/> 
<xsd:enumeration value="Separated"/> 
<xsd:enumeration value="SignificantOther"/> 
<xsd:enumeration value="Widowed"/> 
<xsd:enumeration value="Unknown"/> 
</xsd:restriction> 
</xsd:simpleType> 
<xsd:element name="MaritalStatus" type="MaritalStatusEnumType"/> 
假設一個公司要使用這些值,另外,還要支持它的重要貿易伙伴使用另一個值。CivilUnion 是一個擴展值,公司識別出該值不屬于原始模式。但是從語義上來說,使用現有元素 &mdash;MaritalStatus &mdash; 也是可以的。公司要如何實現呢? 
回頁首 
解決方案 1: 編輯原始模式使其包含新枚舉值 
當然,編輯原始模式使其包含新枚舉值是最直接的方法。保留模式的本地副本,然后編輯這些模式以支持公司使用的枚舉值。 
優點:易于實現 
缺點: 
需要編輯原始模式,這些模式將逐漸改變,以至于無法控制。如果擴展一個先前存在的列表,那么創建者(貿易伙伴、協會等)可能要發布列表的新版本。您需要將編輯的內容傳播到每個新版本中。 
手動編輯模式會導致意外的編輯錯誤。 
如果您不能(或不想)編輯原始模式,則需要一種替代方法。 
回頁首 
解決方案 2: 創建新枚舉列表并加入到原始列表中 
第二個選擇是創建新枚舉列表,并將其加入到原始枚舉列表中。清單 1 顯示原始婚姻狀況列表。清單 2 顯示最新創建的枚舉列表。 
清單 2. 新婚姻狀況枚舉列表 
<xsd:simpleType name="MyExtMaritalStatusEnumType"> 
<xsd:restriction base="xsd:normalizedString"> 
<xsd:enumeration value="CivilUnion"/> 
</xsd:restriction> 
</xsd:simpleType> 
使用 <xsd:union> 標記將其與原始列表結合,如 清單 3 所示。 
清單 3. 將兩個列表組合起來 
<xsd:simpleType name="MaritalStatusType_Union"> 
<xsd:union memberTypes="MyExtMaritalStatusEnumType MaritalStatusEnumType"/> 
</xsd:simpleType> 
<xsd:element name="MaritalStatus" type="MaritalStatusType_Union"/> 
該解決方案仍然需要對模式進行編輯 &mdash; 即將元素 MaritalStatus 由 MaritalStatusType 類型轉換為 MaritalStatusType_Union 類型。改動不大,但仍然有一些手動編輯工作。 
優點:不改變原始枚舉列表。 
缺點: 
在設計階段所有的值必須是已知的,防止后期綁定解決方案。 
需要 <xsd:union> 標記支持,但有時該標記無法用工具實現。 
回頁首 
解決方案 3: 創建一個模式,并與原始枚舉類型結合 
現在看一下有關眼睛顏色的人口數據用例。清單 4 顯示這一列表。 
清單 4. Person Eye Color 枚舉列表 
<xsd:simpleType name="PersonEyeColorType"> 
<xsd:restriction base="xsd:string"> 
<xsd:enumeration value="Black"/> 
<xsd:enumeration value="Hazel"/> 
<xsd:enumeration value="Gray"/> 
<xsd:enumeration value="Brown"/> 
<xsd:enumeration value="Violet"/> 
<xsd:enumeration value="Green"/> 
<xsd:enumeration value="Blue"/> 
<xsd:enumeration value="Maroon"/> 
<xsd:enumeration value="Pink"/> 
<xsd:enumeration value="Dichromatic"/> 
<xsd:enumeration value="Unknown"/> 
</xsd:restriction> 
</xsd:simpleType> 
接下來,創建采用新值的模式(一個正則表達式)。該模式是以 x: 為前綴的任意字符串。x: 是標準枚舉列表和擴展列表之間的描繪程序。清單 5 顯示這一模式。 
清單 5. 用于擴展的正則表達式 
<xsd:simpleType name="StringPatternType"> 
<xsd:restriction base="xsd:string"> 
<xsd:pattern value="x:/S.*"/> 
</xsd:restriction> 
</xsd:simpleType> 
最后,使用 <xsd:union> 標記結合列表與模式,如 清單 6 所示。 
清單 6. 枚舉列表與擴展模式的結合 
<xsd:simpleType name="MyExtPersonEyeColorType"> 
<xsd:union memberTypes="PersonEyeColorType StringPatternType"/> 
</xsd:simpleType> 
<xsd:element name="PersonEyeColor" type="MyExtPersonEyeColorType"/> 
同一節點擁有標準和擴展值。兩個值很容易分離,而且都可以用解析器驗證,如 清單 7 所示。 
清單 7. XML 實例樣例 
<PersonEyeColor>Black</PersonEyeColor> 
<PersonEyeColor>x:Teal</PersonEyeColor> 
優點: 
同一元素可用于所有數據。 
用解析器對基本枚舉列表進行驗證。 
清晰地分隔擴展值。 
該解決方案允許在以后綁定新值。 
缺點: 
必須解析元素的內容,以確定是否已經被擴展。 
模式解析器必須支持正則表達式。 
需要 <xsd:union> 標記支持。 
回頁首 
解決方案 4:使用單獨的字段用于擴展 
在該解決方案中,枚舉字段不會變化。

“XML模式中擴展枚舉列表的方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

xml
AI

绥滨县| 罗平县| 阿坝县| 富蕴县| 望谟县| 陇西县| 疏附县| 肥乡县| 南京市| 安平县| 崇文区| 蒙阴县| 清河县| 仙游县| 西昌市| 祁连县| 鄱阳县| 靖西县| 武功县| 张掖市| 慈利县| 雅安市| 拉孜县| 兴城市| 交口县| 新乐市| 翁牛特旗| 罗源县| 阿拉善左旗| 崇义县| 金坛市| 凤城市| 华坪县| 冷水江市| 吉安市| 台东市| 黄梅县| 二连浩特市| 淳化县| 农安县| 武冈市|