2012-10-29 93 views
1

使用EclipseLink MOXy可以將相同的元素讀入兩個不同的Java屬性中嗎?使用EclipseLink讀取相同的元素兩次MOXy

在下面的示例中,我將<publication>文檔映射爲類,將<date>元素映射爲Java類,XmlAdapter是我的發佈對象的屬性。我還希望將year元素設置爲單獨的屬性的發佈級別,以及級別的化合物Date我所做的。但是,當我在XML綁定中進行設置時,僅僅一年始終爲空,但日期恰當地填充。

<publication> 
    <date datetype="OriginalPub"> 
     <year>2011</year> 
     <month>Feb.</month> 
     <day>0</day> 
    </date> 
</publication 

回答

2

目前EclipseLink JAXB (MOXy)不支持的XPath映射的一個類的屬性動用被映射到另一個類XML文檔的部分。您可以利用afterUnmarshal事件從日期對象中提取年份並將其設置在發佈對象上。

package forum13122968; 

import javax.xml.bind.Unmarshaller; 
import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement 
public class Publication { 

    Date date; 
    int year; 

    private void afterUnmarshal(Unmarshaller unmarshaller, Object parent) { 
     year = date.getYear(); 
    } 

} 
+0

謝謝布萊斯,我剛剛試過。真的很喜歡MOXY到目前爲止,非常感謝您在這裏的及時答案! –

相關問題