如何在XSD中重命名继承类型的属性?

时间:2014-02-27 19:55:12

标签: xsd xsd-validation

<xs:complexType name="country">
  ...
  <xs:attribute name="zipcode" type="xs:string"/>
  ...
</xs:complexType>

<xs:complexType name="city">
  <xs:complexContent>
    <xs:extension base="country">
      <xs:attributeRename from="zipcode" to="areaCode"/><!-- How to rename? -->
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

我的“城市”类型来自“国家”。我希望在派生后重命名该属性。所以我的2个XML对象都是有效的。当然,我知道我不能使用继承。但是他们共享了10多个其他属性,我不希望任何重复。

<country areacode="123"></country>
<city zipcode="456"></city>

1 个答案:

答案 0 :(得分:1)

如果从上下文的角度来看,城市不应该继承国家。

但是,他们都可以继承location类型,该类型包含所有共享属性和字段,citycountry可以扩展location以供自己使用。

据我所知,无法从您扩展的类型中重命名或删除属性或字段。