1

是否可以使用 EclipseLink MOXy 将相同的元素读入两个不同的 Java 属性?

在下面的示例中,我将<publication>文档映射为一个类,并将<date>元素映射为 Java 类,XmlAdapter它是我的发布对象的一个​​属性。我还希望将year元素设置为Publication 类的单独属性,以及Date我制作的复合类的一部分。但是,当我在 XML 绑定中进行设置时,仅年份始终为空,但日期会正确填充。

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

1 回答 1

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();
    }

}
于 2012-10-29T20:51:55.377 回答