是否可以将JAXB带注释的类实例编组为其超类(也是一个带注释的JAXB类)?
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "BenamningTYPE", propOrder = {"benamningId"})
@XmlSeeAlso({MoreDetailedBenamningTYPE.class})
public class BenamningTYPE {
...
@XmlElement(name = "BenamningId", required = true)
protected IdentifierTYPE benamningId;
...
}
扩展类型:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MoreDetailedBenamningTYPE", propOrder = {"modifyDetails"})
public class MoreDetailedBenamningTYPE extends BenamningTYPE {
...
@XmlElement(name = "ModifyDetails", required = true)
protected ModifyDetailsTYPE modifyDetails;
...
}
所以,如果这种情况:
BenamningTYPE b = new MoreDetailedBenamningTYPE();
...
然后我想将实例 b 编组为 BenmaningTYPE 来获取
<BenmaningTYPE>
...
</BenmaningTYPE>
不:
<MoreDetailedBenamningTYPE>
...
</MoreDetailedBenamningTYPE>
如果可能的话,这个编组如何调用?
答案 0 :(得分:2)
我没有检查过,但我先尝试一下:
new JAXBElement(new QName("BenmaningType"),
BenManingTYPE.class, moreDetailedBenmaningTYPEInstance)
如果您要从XML Schema生成类,请同时检查copyable plugin。您可以将数据从MoreDetailedBenamningTYPE
的实例复制到实例BenmaningTYPE
并编组。
还有更多的可能性,但它们有点复杂。