我有以下 XSD(为了问这个问题):
<xsd:complexType name="BaseType" abstract="true">
<xsd:sequence>
<xsd:element name="field1" type="xsd:string"/>
<xsd:element name="field2" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ExtendedType">
<xsd:complexContent>
<xsd:extension base="tns:BaseType">
<xsd:sequence>
<xsd:element name="fieldA" type="xsd:string"/>
<xsd:element name="fieldB" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="extendedType" type="tns:ExtendedType"/>
这允许 XML 文件如下:
<extendedType>
<field1>hello</field1>
<field2>world</field2>
<fieldA>aaa</fieldA>
<fieldB>bbb</fieldB>
</extendedType>
即在BaseType的底部添加了两个新闻字段fieldA和fieldB。
有没有办法扩展BaseType,但在顶部插入fieldA,在底部插入fieldB?这样可以吗?
<extendedType>
<fieldA>aaa</fieldA>
<field1>hello</field1>
<field2>world</field2>
<fieldB>bbb</fieldB>
</extendedType>
以及如何使 JAXB 按预期工作?