2010-11-24 30 views
2

是否可以編組一個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(); 
... 

然後我想元帥例如bBenmaningTYPE得到

<BenmaningTYPE> 
    ... 
</BenmaningTYPE> 

而且

<MoreDetailedBenamningTYPE> 
    ... 
</MoreDetailedBenamningTYPE> 

這將如何名帥援引樣子,如果可能的話?

回答

1

我沒有檢查,但我會嘗試先:

new JAXBElement(new QName("BenmaningType"), 
    BenManingTYPE.class, moreDetailedBenmaningTYPEInstance) 

如果你從XML架構生成類,也copyable plugin檢查。您可以將MoreDetailedBenamningTYPE實例的副本數據複製到實例BenmaningTYPE並編組。

有更多的可能性,但他們有點複雜。

+0

jaxb2-commons項目中的可複製插件非常簡單,我想要的是!我擴展了JAXBCopyStrategy併爲每個子類添加了instanceof檢查,並創建了一個副本作爲其超類,謝謝! – Axel 2010-11-24 17:06:17

相關問題