由于 Section 元素是全局的,并且声明了一个 targetNamespace,所以在对 Section 元素的引用中,xyz 名称空间前缀是必需的。<xs:element ref="Section"/> 不是有效的引用。 您可以看到,清单 8 中的每个子元素、属性和类型都是局部定义的。惟一的全局元素是根元素,即 HelpDoc。该语法紧凑,有些人可能会觉得它容易理解。Russian doll 风格的模式不将它们的组件暴露给其他类型、元素或模式,所以它们也被认为是高度去耦的(就是说,元素不全局地依赖于其他元素)和内聚的(相关元素被分组在单个自包含的父元素中)。 此范式概括为这样一种模式,即很少有跟其他系统的交互,其组件也没有重用。通过以这种方式定义模式,您可以保持结构为自包含的、隐藏名称空间以及防止受到其他系统的影响。 Salami slice 范式 利用 Salami slice 范式,您可进入暴露内容模型的下一步。在该范式中,您可以将自己所有局部定义的元素都移动到全局定义中。清单 10 展示了 清单 8 中 Russian doll 风格例子修改为满足 Salami slice 范式后的样子: 清单 10. Salami slice 范式
|