java – 如何将JAXB类实例编组为其超类
作者:互联网
是否可以将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>
如果可能的话,这个元帅如何调用?
解决方法:
我没有检查过,但我先试试:
new JAXBElement(new QName("BenmaningType"),
BenManingTYPE.class, moreDetailedBenmaningTYPEInstance)
如果您正在从XML Schema生成类,请同时检查copyable plugin.您可以将MoreDetailedBenamningTYPE实例中的数据复制到实例BenmaningTYPE并封送它.
有更多的可能性,但它们有点复杂.
标签:jaxb2,java,marshalling 来源: https://codeday.me/bug/20191008/1873824.html