1

EclipseLink MOXyを使用して、同じ要素を2つの異なるJavaプロパティに読み込むことは可能ですか?

以下の例では、<publication>ドキュメントをクラスとしてマッピングし、要素をパブリケーション オブジェクトのプロパティである<date>Java クラスとしてマッピングしています。また、作成した複合クラスの一部だけでなく、Publication クラスの個別のプロパティとして要素を設定XmlAdapterしたいと考えています。ただし、XML バインディングでこれを設定すると、年だけは常に null になりますが、日付は適切に入力されます。yearDate

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

1 に答える 1

2

現在、EclipseLink JAXB (MOXy)は、あるクラスのプロパティをマッピングして、別のクラスにマッピングされたXMLドキュメントの一部にディップするためのXPathをサポートしていません。イベントを利用し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 に答える