是否可以将 JAXB 注释类实例编码为其父类(super class)(这也是一个 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>
如果可能的话,这个 marshal 调用会是什么样子?
最佳答案
我还没有检查过,但我会先试试:
new JAXBElement(new QName("BenmaningType"),
BenManingTYPE.class, moreDetailedBenmaningTYPEInstance)
如果您从 XML 模式生成类,还要检查 copyable plugin .您可以将数据从 MoreDetailedBenamningTYPE
实例复制到实例 BenmaningTYPE
并对其进行编码。
有更多的可能性,但它们有点复杂。
关于java - 如何将 JAXB 类实例编码为其父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4264422/