我想自定義JAXB中日期的編組。這是已經詢問的question的變體。我想我會使用XMLAdapter,因爲this answer問題指定。如何自定義JAXB編組(如果從XML生成JAXB bean)
但是我無法完全做到這一點,因爲我反其道而行,從.XSD生成JAXB bean - 我無法將註釋添加到JAXB bean,因爲它們是生成的代碼。
我試過調用Marshaller.setAdapter(),但沒有運氣。
final Marshaller marshaller = getJaxbContext().createMarshaller();
marshaller.setSchema(kniSchema);
marshaller.setAdapter(new DateAdapter());
...
private static class DateAdapter extends XmlAdapter<String, XMLGregorianCalendar> {
@Override
public String marshal(XMLGregorianCalendar v) throws Exception {
return "hello"; //Just a test to see if it's working
}
@Override
public XMLGregorianCalendar unmarshal(String v) throws Exception {
return null; // Don't care about this for now
}
}
凡我所產生的JAXB bean的相關部分看起來是這樣的:
@XmlSchemaType(name = "date")
protected XMLGregorianCalendar activeSince;
當我這樣做,有什麼默認日期/編組的XMLGregorianCalendar發生。就好像我沒有做到這一點。
任何幫助表示讚賞。
謝謝,
查爾斯
謝謝,這工作。我是JAXB的新手,並沒有意識到你可以像這樣定製綁定。 – 2010-03-16 16:54:52
該java.net網站已被關閉,因此該教程URL不再起作用。該教程是否有新的URL? – 2017-09-05 19:34:44