Я хотел бы определить сложный тип 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>