建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 网站开发 > xml/XSLT教程 >

模式作用域:初级读本和最佳实践(8)

时间:2011-12-17 18:58来源: 作者: 点击:
由于 Section 元素是全局的,并且声明了一个 targetNamespace,所以在对 Section 元素的引用中,xyz 名称空间前缀是必需的。xs:element ref=Section/ 不是有效的引用。 您可以看到,清单 8 中的每个子元素、属性和

由于 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 范式

 

双击代码全选
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<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> 
(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片