XML Schema設計模式

設計模式

XML Schema設計模式:Russian DollSalami SliceVenetian Blind。不常用的另外兩種設計模式:Garden of EdenGhameleon

1Russian Doll:

         (1)、具有的特點:

  •  具有單個全局根元素。
  • 所有類型都有局部類型,即嵌入在根元素中。
  • 只支持用單個文件完整設計的Schema
  • 它具有高內聚低耦合。
  • 由於類型被隱藏,Schema是完全封裝的。
  • 它是最易於閱讀和編寫的模式。

(2)、簡易優缺點:

優點:易於閱讀和編寫;結果可以預期;容易理解作者的意圖;完全自包含,改變類型將不會影響其他的Schema

缺點:精心定義的類型無法在別處重複使用。

(3)、應用:用來存儲隔離記錄的中端上的一修改DB2文件系統表?

2Salami Slice(具有緊密耦合)

         (1)、具有的特點:

  • 所有元素都是全局元素。
  • 所有元素都在全局命名空間中定義。
  • 所有類型都是局部類型。
  • 元素聲明從不嵌套。
  • 元素聲明可以重複使用。Salami Slice使你最有可能重複使用所有Schema設計模式。
  • 很難確定目標根元素,因爲存在許多潛在選項。

(2)、簡易優缺點:

         優點:元素全局聲明,生成的Schema可以被重複使用;

         缺點:改變某個元素會影響組合的元素;

3Venetian Blind

         具有的特點:

  • 具有單個全局根元素。
  • 混合有全局和局部聲明。這與Russian DollSalami Slice形成對比;Russian Doll中的所有類型都是局部的,Salami Slice中的所有類型都是全局的。
  • 既具有高內聚,又具有高耦合。由於其組件是耦合的,不是自包含的,它可以不時地和其他Schema耦合。
  • 它最大化了重複使用,所有類型和根元素都可以重新組合。
  • 由於類型是可見的,因此封裝是有限的。
  • 允許你使用多個文件定義Schema比較冗長。將每個類型拆分,使你可以對各個單個方面或元素進行非常有選擇性的粒度控制,不過這會使用鍵入的內容非常多。

4Garden of Eden

         Garden of Eden Schema設計模式由Sun Microsystems確立,它是Salami Slice Venetian Blind的組合。要是Schema採用這種模式,可以在全局命名空間中定義所有的元素和類型,然後根據需要引用相應元素。

5Chameleon

         Chameleon模式非常靈活,它的方式是讓你在命名空間的Schema(稱爲Chameleon)中設計常見類型,然後定義一個主Schema,這個Schema在自己的命名空間中通過<include>將第一個Schema包含進來,Chameleon中的常見類型被強制賦予命名空間,使用的是主Schema中定義的命名空間。

         Chameleon設計模式的使用是飽受爭議的。Chameleon依賴於Schema規範中的一些方面,而對於這些方面的解釋,供應商們並不是完全贊同。此外,Chameleon通常會在驗證過程中降低性能,哪怕是從支持它的供應商進行驗證,這是命名空間解決方案的延遲妨礙了分析器基於命名空間來緩存Schema的組件。Chameleon還使XPath身份約束的使用受到限制。XPath不使用默認的命名空間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章