<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>
答案 0 :(得分:1)
如果从上下文的角度来看,城市不应该继承国家。
但是,他们都可以继承location
类型,该类型包含所有共享属性和字段,city
和country
可以扩展location
以供自己使用。
据我所知,无法从您扩展的类型中重命名或删除属性或字段。