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

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

 2010-10-22 17:18:49 来源:WEB开发网   
核心提示: 在 清单 4 中,address 元素是根元素,模式作用域:初级读本和最佳实践(3),zipCode 元素不能充当实例中的根元素,因为它不是在模式模块中的根层次被全局定义的,属性定义与此类似,例如,局部定义的元素只能出现在定义它们的元素定义上下文中,在局部作用域内引用全局元素和属性除了充当根元素

在 清单 4 中,address 元素是根元素。zipCode 元素不能充当实例中的根元素,因为它不是在模式模块中的根层次被全局定义的。局部定义的元素只能出现在定义它们的元素定义上下文中。

在局部作用域内引用全局元素和属性

除了充当根元素之外,任何全局定义的元素也可以在任何需要它们的局部作用域内被引用和出现。在 清单 5 的例子中,全局定义的 zipCode 元素被用于局部作用域上下文中的 address 元素的定义中:

清单 5. 局部作用域内引用的全局元素

<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 ref='zipCode'/> <!-- reference to globally defined element --> 
  </xs:sequence> 
 </xs:complexType> 
 </xs:element> 
 
<!-- Globally defined element that is referenced in element above --> 
 <xs:element name='zipCode' type='xs:string'/> 
</xs:schema> 

您可以看到,全局暴露的元素声明支持模块化和重用。您可以在该模式的其他部分和会导入该模式的父模式中引用 zipCode 元素。

属性定义与此类似。例如,在 清单 6 中,全局定义的 state 被引用在局部作用域上下文中的 address 元素中:

清单 6. 局部作用域中引用的全局属性

<xs:schema> 
 <xs:element name='address'> 
 <xs:complexType> 
  <!--[.. elements removed for readability..]--> 
  <xs:attribute ref="state"/> <!-- referencing globally defined attribute --> 
 </xs:complexType> 
 </xs:element> 
 
 <xs:attribute name="state" type="xs:string"/> <!--globally defined attribute --> 
 
</xs:schema> 

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

Tags:模式 作用 初级

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