Comment Personnaliser JAXB de Triage si la génération JAXB haricots à partir de XML

Je veux personnaliser le triage des dates dans JAXB. C'est une variante de ce déjà demandé question. Je pense que j'utiliserais un XMLAdapter, comme cette réponse questions précise.

Mais je ne peux pas faire exactement, parce que je vais dans l'autre sens, la génération de la JAXB de haricots provenant d'une .XSD -- je ne peux pas ajouter des annotations à la JAXB haricots, car ils sont le code généré.

J'ai essayé d'appeler Marshaller.setAdapter(), mais avec pas de chance.

            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
            }
}

Où la partie concernée de mon généré JAXB bean ressemble à ceci:

    @XmlSchemaType(name = "date")
    protected XMLGregorianCalendar activeSince;

Quand je fais cela, ce que la date par défaut/XMLGregorianCalendar de triage qui se passe. C'est comme si je n'avais pas tout faire.

Toute aide est appréciée.

Merci,

Charles

InformationsquelleAutor Charles O. | 2010-03-15