XML Schema redefine 元素

定义和用法

redefine 元素允许在当前 Schema 中重楔义从外部架构文件中获取的简单和复杂类型、组和属性组。

元素信息

出现次数 无限制
父元素 schema
内容 annotation、attributeGroup、complexType、group、simpleType

语法

  1. <redefine
  2. id=ID
  3. schemaLocation=anyURI
  4. any attributes
  5. >
  6.  
  7. (annotation|(simpleType|complexType|group|attributeGroup))*
  8.  
  9. </redefine>
属性 描述
id 可选。规定该元素的唯一的 ID。
schemaLocation 必需。对 schema 文档位置的 URI 引用。
any attributes 可选。规定带有 non-schema 命名空间的任何其他属性。

实例

例子 1

下面的例子展示了一个 schema,Myschama2.xsd,其中存在由 Myschama1.xsd 规定的元素。pname 类型被重楔义。根据此 schema,被 pname 约束的元素必须以 "country" 元素结束:

Myschema1.xsd:

  1. <?xml version="1.0"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  3.  
  4. <xs:complexType name="pname">
  5. <xs:sequence>
  6. <xs:element name="firstname"/>
  7. <xs:element name="lastname"/>
  8. </xs:sequence>
  9. </xs:complexType>
  10.  
  11. <xs:element name="customer" type="pname"/>
  12.  
  13. </xs:schema>

Myschema2.xsd:

  1. <?xml version="1.0"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  3.  
  4. <xs:redefine schemaLocation="Myschema1.xsd">
  5. <xs:complexType name="pname">
  6. <xs:complexContent>
  7. <xs:extension base="pname">
  8. <xs:sequence>
  9. <xs:element name="country"/>
  10. </xs:sequence>
  11. </xs:extension>
  12. </xs:complexContent>
  13. </xs:complexType>
  14. </xs:redefine>
  15.  
  16. <xs:element name="author" type="pname"/>
  17.  
  18. </xs:schema>