WEB开发网
开发学院WEB开发Xml 模式作用域:初级读本和最佳实践 阅读

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

 2010-10-22 17:18:49 来源:WEB开发网   
核心提示: 清单 2 中的例子模式在根层次定义了两个元素:清单 2. 带有两个可能根元素的模式<xs:schema><xs:elementname='postalCode'type='xs:string'/><xs:elementname=

清单 2 中的例子模式在根层次定义了两个元素:

清单 2. 带有两个可能根元素的模式

<xs:schema> 
 <xs:element name='postalCode' type='xs:string'/> 
 <xs:element name='zipCode' type='xs:string'/> 
</xs:schema> 

postalCode 或 zipCode 都可以充当 清单 2 中模式所建模的实例中的根元素。

定义局部作用域元素

将元素定义为局部的可以防止它们被暴露给模式的其他部分。局部元素的上下文局限于它的当前位置,所以不能从模式的其他部分引用它。在 清单 3 的例子中,zipCode 元素不是全局定义的。相反,它被作为 address 元素的子元素,定义在一个元素定义的 complexType 中。

清单 3. 单个带有局部子元素的全局元素

<xs:schema> 
<xs:element name='address'> 
 <xs:complexType> 
 <xs:sequence> 
  <xs:element name='street' type='xs:string'/> 
  <xs:element name='city' type='xs:string'/> 
  <xs:element name='state' type='xs:string'/> 
  <xs:element name='zipCode' type='xs:string'/> 
 </xs:sequence> 
 </xs:complexType> 
</xs:schema> 

由于 zipCode 元素的定义位于 address 元素的声明中,所以它是一个局部定义,它的作用域只在 address 元素中。对于有效的文档实例,zipCode 元素必须出现在 address 元素中,如 清单 4 所示:

清单 4. 清单 3 中模式的有效数据实例

<address> 
 <!-- street, city and state hidden for example purposes --> 
 
 <zipCode>14534</zipCode> 
</address> 

上一页  1 2 3 4 5 6 7  下一页

Tags:模式 作用 初级

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接