模式作用域:初级读本和最佳实践
2010-10-22 17:18:49 来源:WEB开发网Salami slice 范式
利用 Salami slice 范式,您可进入暴露内容模型的下一步。在该范式中,您可以将自己所有局部定义的元素都移动到全局定义中。清单 10 展示了 清单 8 中 Russian doll 风格例子修改为满足 Salami slice 范式后的样子:
清单 10. Salami slice 范式
<xs:schema>
<xs:element name="Body" type="xs:string"/>
<xs:element name="Title" type="xs:string"/>
<xs:element name="Section">
<xs:complexType>
<xs:sequence>
<xs:element ref="Title"/>
<xs:element ref="Body"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="HelpDocs">
<xs:complexType>
<xs:sequence>
<xs:element ref="Section"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Salami slice 范式暴露所有元素,所以您可以在模式的其他部分引用和重用它们,并且它让它们对其他模式是透明的。该方法一个主要的优点是,元素高度可重用。但是,这也意味着所有名称空间都是全局暴露的,并且元素之间的耦合增大了。在 清单 10 中,Section 元素与 Title 和 Body 元素是全局耦合的。对 Title 和 Body 元素的任何修改随后都会影响 Section 定义。
更多精彩
赞助商链接