Je souhaite personnaliser le regroupement des dates dans JAXB. C'est une variante de ceci déjà demandé question. Je pense que je voudrais utiliser un XMLAdapter, comme le spécifie this answer questions.Comment personnaliser JAXB Marshalling si vous générez des beans JAXB à partir de XML
Mais je ne peux pas faire exactement cela, parce que je vais dans l'autre sens, générant les beans JAXB à partir d'un. XSD - Je ne peux pas ajouter des annotations aux beans JAXB car ils sont générés par le code.
J'ai essayé d'appeler Marshaller.setAdapter(), mais sans succès.
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
}
}
Lorsque la partie pertinente de mon produit haricot JAXB ressemble à ceci:
@XmlSchemaType(name = "date")
protected XMLGregorianCalendar activeSince;
Quand je le fais, ce que la marshalling date/XMLGregorianCalendar par défaut se produit. C'est comme si je ne faisais pas tout.
Toute aide est appréciée.
Merci,
Charles
Merci, ça fonctionne. J'étais nouveau à JAXB et je n'avais pas réalisé que vous pouviez personnaliser les fixations comme ça. –
Le site Web java.net a été supprimé et l'URL du didacticiel ne fonctionne plus. Y a-t-il une nouvelle URL pour ce tutoriel? –