我在让 xjc 生成一个带有选择组扩展的类时遇到问题,该类扩展保持顺序。以下架构是一个示例。
<xs:complexType name="base">
<xs:choice maxOccurs="unbounded">
<xs:element name="a" />
<xs:element name="b" />
</xs:choice>
</xs:complexType>
<xs:complexType name="extended">
<xs:complexContent>
<xs:extension base="base">
<xs:choice>
<xs:element name="c" />
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
问题是这会导致基类和扩展类都包含一个列表属性,而不是扩展只是添加到基本列表属性,以便在以下 xml 的情况下可以保持顺序:
<extended>
<a />
<c />
<b />
</extended>
我尝试在 binding.xjb 中手动将属性名称设置为相同,但由于命名冲突而抱怨。