国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > XML > 正文

在XML模式中擴(kuò)展枚舉列表

2024-09-05 20:56:08
字體:
供稿:網(wǎng)友
在列表中添加新值是一種常見而且必要的需求。模式設(shè)計(jì)者通常希望在系統(tǒng)架構(gòu)中構(gòu)建一種添加附加值的方法,并且該附加值在設(shè)計(jì)階段是未知的。模式設(shè)計(jì)者如何創(chuàng)建一個(gè)可擴(kuò)展、易于實(shí)現(xiàn)的枚舉值列表?本文將介紹幾種實(shí)現(xiàn)這一目標(biāo)的方法。
模式設(shè)計(jì)者和實(shí)現(xiàn)人員需要一種擴(kuò)展 XML 模式中現(xiàn)有枚舉列表的方法。不幸的是,XML 模式規(guī)范不允許在這些列表的創(chuàng)建過程中(參閱 參考資料)進(jìn)行擴(kuò)展。設(shè)計(jì)階段所選的值是固定的,而且都是可用的。盡管有這樣的限制,人們?nèi)允褂酶鞣N替代方案來實(shí)現(xiàn)列表擴(kuò)展。很多使用現(xiàn)有的不能改變的模式的客戶經(jīng)常提出這一要求。他們希望在添加新功能的同時(shí)保持向后兼容性。本文中,您將會看到模式設(shè)計(jì)者如何克服障礙實(shí)現(xiàn)該功能。
枚舉列表 是特定數(shù)據(jù)點(diǎn)的一組指定值。例如,您也許通過固定的值列表查看國家代碼,包括 DE(德國)、US(美國)和 JP(日本)。根據(jù)給定的值集,當(dāng)一個(gè)新國家被識別出時(shí),如 TL(東帝汶)或者 BA(波斯尼亞及黑塞哥維那),該怎么辦?使用以前的名稱列表的客戶必須改變實(shí)現(xiàn)來容納新值。
當(dāng)使用 XML 模式對數(shù)據(jù)建模時(shí),枚舉值被顯式列出。因此,國家代碼列表依次包含各個(gè)枚舉值。經(jīng)常需要識別列表中的新值,而且必須將其容納到列表中,模式設(shè)計(jì)者試圖找到一種擴(kuò)展列表的方法,實(shí)際上,是將這種方法構(gòu)建到設(shè)計(jì)中,允許添加在設(shè)計(jì)時(shí)未知的附加值。
創(chuàng)建可擴(kuò)展的枚舉列表
在尋找這一問題的解決方案時(shí),受到四個(gè)關(guān)鍵標(biāo)準(zhǔn)的影響:
首先,要在設(shè)計(jì)階段之后擴(kuò)展列表。不管是快速建立一個(gè)新的貿(mào)易伙伴還是建立時(shí)間關(guān)鍵型的新數(shù)據(jù)字段,在關(guān)鍵時(shí)刻進(jìn)行擴(kuò)展是一項(xiàng)實(shí)際需求。
其次,能夠在解析器中驗(yàn)證值對于簡化實(shí)現(xiàn)是非常關(guān)鍵的。
第三,在單個(gè)周期內(nèi)完成解析和驗(yàn)證是至關(guān)重要的。這就避免了像 Genericode 解決方案一樣,在一個(gè)單獨(dú)的周期和解析器中進(jìn)行驗(yàn)證。對于某些設(shè)置來說,添加新技術(shù)需求會導(dǎo)致成本太高或者太耗時(shí)。
最后,解決方案必須能夠向后兼容原始的模式。不兼容的列表更改不能稱為擴(kuò)展。
有些人認(rèn)為根本就不應(yīng)該擴(kuò)展枚舉列表。數(shù)據(jù)建模人員也許認(rèn)為如果想讓模型包含更多數(shù)據(jù)、擴(kuò)展模型,那么可以根據(jù)產(chǎn)品創(chuàng)建模式 — 實(shí)際上,在需要時(shí)創(chuàng)建更大的模型并減少限制。如果能夠控制原始模式和數(shù)據(jù)模型,這樣做是可以的,這種方法也許是理想的方法。但是,如果您需要在設(shè)計(jì)階段之后進(jìn)行實(shí)際擴(kuò)展,這樣的方法是行不通的。
還有人認(rèn)為擴(kuò)展枚舉列表的關(guān)鍵是不使用 XML 模式驗(yàn)證解析器。Genericode(參閱 參考資料)建議在第二層對枚舉列表進(jìn)行驗(yàn)證,脫離初始的 XML 模式解析器驗(yàn)證過程。這種理論是正確的,而且這種方法的應(yīng)用會越來越廣泛。但是,如果要在一個(gè)解析周期內(nèi)完成,這種解決方案是無法做到的。在某些情況下,不可能執(zhí)行第二個(gè)驗(yàn)證周期。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 湖北省| 来安县| 神农架林区| 明光市| 都江堰市| 华亭县| 巩留县| 东辽县| 星座| 葵青区| 垦利县| 余庆县| 肥乡县| 波密县| 天等县| 萨嘎县| 兰考县| 九龙城区| 洮南市| 赤水市| 东乌珠穆沁旗| 拜城县| 汶上县| 平利县| 阳春市| 定西市| 佛学| 青岛市| 南郑县| 安泽县| 三门峡市| 台中市| 新丰县| 商河县| 阳高县| 麻城市| 临洮县| 新源县| 临洮县| 水富县| 岐山县|