Я хочу настроить сортировку дат в JAXB. Это вариант этого уже заданного вопроса . Я думаю, я бы использовал XMLAdapter, так как этот ответ вопросов определяет.
Но я не могу сделать это точно, потому что я иду наоборот, генерируя компоненты JAXB из .XSD - я не могу добавить аннотации к компонентам JAXB, потому что они генерируют код.
Я пытался вызвать 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-компонента выглядит так:
@XmlSchemaType(name = "date")
protected XMLGregorianCalendar activeSince;
Когда я делаю это, происходит сортировка даты по умолчанию / XMLGregorianCalendar. Как будто я не делал всего этого.
Любая помощь приветствуется.
Спасибо
Charles