在JAXB绑定中指定多个IDREF属性的类型

时间:2014-11-11 13:12:25

标签: java xml jaxb xsd

道歉,如果这是一个重复的问题,但我找不到任何适合我的情况。所以这里:

我在xsd文件中有以下内容:

<xs:complexType name="Allocation">
    <xs:annotation>
        <xs:documentation>Links its owner to an xs:id.</xs:documentation>
    </xs:annotation>
    <xs:attribute name="idRef" type="xs:IDREF"/>
</xs:complexType>

<xs:complexType name="XYZ">
    <xs:sequence>
        <xs:element name="SomeAllocation" type="Allocation"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="ABC">
    <xs:sequence>
        <xs:element name="SomeAllocation" type="Allocation"/>
    </xs:sequence>
</xs:complexType>

我尝试在java中生成具有特定类型的字段/ getter和setter,例如XYZ.getSomeAllocation()应返回类型Object1,ABC.getSomeAllocation()应返回类型Object2。我面临的问题是xjc正在生成一个Allocation类,XYZ和ABC类使用下面提到的方法返回java.lang.Object类型。

显然,创建不同的Allocation类型然后在不同的对象中使用可以解决问题,但我想重用持有xs的对象:IDREF。

非常感谢您的帮助! 谢谢!

0 个答案:

没有答案