我想使用另一种复杂类型定义XSD复杂类型。
<xs:complexType name="A">
<!-- sequence with some elements -->
</xs:complexType>
<xs:complexType name="B">
<!-- sequence with some elements -->
</xs:complexType>
<xs:complexType name="C">
<xs:complexContent>
<xs:extension base="A">
<!-- ??? reference to complex type B ??? -->
</xs:extension>
</xs:complexContent>
</xs:complexType>
有没有办法在不声明类型B的新元素的情况下执行此操作?
编辑:
现在我想到了,为了禁止自我扩展,可能不允许使用其他类型的类型扩展。
正如RCB建议的那样,可以使用一个组作为解决方法。
<xs:complexType name="A">
<!-- sequence with some elements -->
</xs:complexType>
<xs:group name="B">
<!-- sequence with some elements -->
</xs:group>
<xs:complexType name="B">
<xs:group ref="B"/>
</xs:complexType>
<xs:complexType name="C">
<xs:complexContent>
<xs:extension base="A">
<xs:group ref="B"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
答案 0 :(得分:1)
如果您能够将B从complexType更改为组,则可以执行以下操作:
<xs:group name="B">
<xs:sequence>
<!-- Some elements -->
</xs:sequence>
</xs:group>
<xs:complexType name="C">
<xs:complexContent>
<xs:extension base="A">
<xs:group ref="B"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>