xjc не добавляет @XmlElement(nillable=false) в сгенерированные поля

У меня проблема с созданием классов с использованием xjc. В схеме у меня есть nillable="false", но это не добавляется в качестве аннотации (@XmlElement(nillable=false)) к сгенерированным полям. Это заставляет Джексона не удалять поля, когда они пусты. Если я перейду на nillable=true, классы будут обновлены, чтобы отразить это, как и ожидалось...

Есть идеи?


person Erlend    schedule 28.08.2012    source источник
comment
nillable по умолчанию является ложным (т. е. @XmlElement(nillable=false) и @XmlElement() идентичны).   -  person Ian Roberts    schedule 28.08.2012
comment
Jackson не является реализацией, совместимой с JAXB (JSR-222). Нет никаких гарантий, как он будет интерпретировать любую стандартную аннотацию JAXB.   -  person bdoughan    schedule 28.08.2012
comment
Думаю, это то, с чем я сталкиваюсь. Если я вручную добавлю XmlElement(nillable=false) в сгенерированные исходные файлы, тогда Джексон будет работать так, как ожидалось... Так что для Джексона @XmlElement(nillable=false) не совпадает с @XmlElement()   -  person Erlend    schedule 29.08.2012


Ответы (1)


В итоге я написал свой собственный плагин для maven-jaxb2-plugin, который проверяет атрибуты и добавляет отсутствующие @XmlElement(nillable = false).

person Erlend    schedule 29.08.2012