我想用另一个xsd:complexType扩展xsd:complexType。我想扩展这两组属性,并添加一个可以在新类型内容中允许的元素。问题是我无法弄清楚如何在新的复杂类型中正确指定元素和属性。例如,我尝试了以下代码(结果证明无效):
<xsd:complexType name="NewComplexType">
<xsd:complexContent>
<xsd:extension base="OldComplexType">
<xsd:sequence>
<xsd:attribute name="newAttribute" type="xsd:string" use="optional" />
</xsd:sequence>
<xsd:element name="newElement" type="xsd:string" minOccurs="0" maxOccurs="1" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
谢谢, TEO
答案 0 :(得分:2)
只需将元素与属性交换(元素必须在扩展/序列下)。
<xsd:complexType name="NewComplexType">
<xsd:complexContent>
<xsd:extension base="OldComplexType">
<xsd:sequence>
<xsd:element name="newElement" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="newAttribute" type="xsd:string" use="optional"/>
</xsd:extension>
</xsd:complexContent>