`
zhf257
  • 浏览: 3790 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

XML Schema设计模式

    博客分类:
  • SOA
 
阅读更多

设计模式

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不使用默认的命名空间。

分享到:
评论

相关推荐

    XMLSchema经典例题

    在“XMLSchema经典例题”中,我们可以深入探讨以下几个核心知识点: 1. **基本元素和类型定义**:XML Schema允许定义基本数据类型,如字符串、整数、浮点数等,并且可以自定义复杂的数据类型。例如,你可以创建一个...

    W3C XML Schema 模式的设计方法研究.pdfW3C XML Schema 模式的设计方法研究.pdf

    ### W3C XML Schema 模式的设计方法研究 #### 引言 W3C XML Schema是一种用于描述XML文档结构和内容的模式语言,由万维网联盟(World Wide Web Consortium,W3C)制定,旨在提供一个标准化的方法来定义XML文档的...

    xml Schema学习

    1. **命名空间**:XML Schema支持命名空间,使得可以在同一文档中定义多个独立的XML模式,避免了元素和属性名的冲突。 2. **数据类型**:XML Schema提供了丰富的内置数据类型,如字符串、整数、浮点数、日期等,还...

    XmlSchema标准参考手册

    在阅读《XmlSchema_manual》这份参考手册时,你会了解到如何编写XML Schema文档,包括基本的元素和属性声明、数据类型定义、模式组合和约束设定等内容。手册还将详细介绍如何在实际应用中验证XML文档是否符合Schema...

    Java通过XML Schema校验XML

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3school.com.cn file:///D:/_dev_stu/xsdtest/src/note.xml"&gt; &lt;to&gt;George &lt;from&gt;John &lt;heading&gt;Reminder &lt;body&gt;Don'...

    W3C XML Schema

    7. **继承与重用**:XML Schema支持类型继承,一个类型可以从另一个类型派生,简化了模式设计。同时,可以通过引用(import)机制来重用已定义的模式部分。 8. **混合内容模型**:允许元素既包含文本内容又包含子...

    xml-schema.ppt

    * 入门位于 w3.org/TR/xmlschema-0,它介绍了 XML 模式文档及其设计用途 * 文档结构的标准位于 w3.org/TR/xmlschema-1,它说明了如何定义 XML 文档的结构 * 数据类型的标准位于 w3.org/TR/xmlschema-2,它定义了一些...

    XML Schema .ppt

    XML Schema(XML Schema Definition,通常缩写为XSD)是一种用于定义XML文档结构和数据类型的标准化语言,由W3C(万维网联盟)制定...通过深入学习和实践,开发者可以更好地利用XML Schema来设计和验证自己的XML文档。

    XML Schema

    #### 五、XML Schema设计选择与最佳实践 - **设计选择**: - **元素与属性的选择**:确定哪些信息作为元素,哪些作为属性。 - **类型的选择**:决定使用简单类型还是复杂类型。 - **命名空间的使用**:合理规划...

    XML Schema ppt

    在模式文档中,根元素`&lt;xsd:schema&gt;`会声明`xsd`名称空间,指向`http://www.w3.org/2001/XMLSchema`,这样就限定了所有XML Schema元素和属性的使用。在实例文档中,通过`xmlns:xsi`声明`xsi`名称空间并使用`xsi:...

    XML schema结构快速参考

    - **http://www.w3.org/2001/XMLSchema-instance**:这个名称空间用于表示XML Schema实例文档中的特殊属性,如`xsi:type`。 #### 三、Schema声明 Schema声明是定义XML文档结构的基础。一个完整的`&lt;schema&gt;`元素...

    xmlShema案例

    本案例探讨了两种不同的XML Schema设计模式:千层娃娃模式和黄瓜切片模式。 首先,我们来看“千层娃娃”模式。这种模式的特点是XML文档只有一个根元素,而这个根元素下可以嵌套多个层次的子元素。这种结构就像一个...

    PyPI 官网下载 | xmlschema-1.2.4-py3-none-any.whl

    **PyPI官网下载 | xmlschema-1.2.4-py3-none-any.whl** PyPI,全称为Python Package Index,是Python社区官方的软件包仓库,为开发者提供了一个平台来发布他们的Python模块、库和其他工具。PyPI使得Python用户能够...

    武汉大学软工xml上机第二次作业Schema

    1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单...

    XML Schema Development Guidelines

    2. **开发过程概述**:Schema开发过程分为几个阶段,包括需求分析、设计、实现、测试和部署。每个阶段都需要明确的目标和详细的计划。 #### 四、XML Schema开发原则(建模要求) 1. **组织原则**:将原则按照不同...

    java根据xml生成schema_xsd_生成javabean

    JavaBean是一种特殊的Java类,遵循特定的命名规则和设计模式,用于封装数据和业务逻辑,常在Java应用中作为对象模型使用。 标题“java根据xml生成schema_xsd_生成javabean”涉及的知识点主要包括: 1. XML到XSD的...

    XML_SCHEMA教程

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3schools.com note.xsd"&gt; &lt;to&gt;Tove &lt;from&gt;Jani &lt;heading&gt;Reminder &lt;body&gt;Don't forget me this weekend! ``` XSD...

Global site tag (gtag.js) - Google Analytics