JAXB Java to XML: как не печатать элементы примитивного типа по умолчанию - PullRequest
0 голосов
/ 24 июня 2009

Первая попытка использовать этот крутой сайт - после поиска в течение 2 часов: Итак, у меня есть Java Bean (который я могу только аннотировать, но не изменять), и мне нужно сопоставить его с XML, используя JAXB. Я хотел бы, чтобы типы примитивов не печатались, если они содержат язык по умолчанию или пользовательские значения по умолчанию.

Как уже говорилось, я не могу изменить Java-бин и, следовательно, изменить примитивные типы на их аналоги Object Wrappers.

Как ты это делаешь лучше всего?

Пример бобов:

class Foo {  
public String name;  
// -1 is user defined default, to indicate field is not set.  
public long someIdx=-1;  
// ...  
}  

Foo f = new Foo();  
f.name = "Duke";

для этого экземпляра я хотел бы получить следующий вывод:

<foo><name>Duke</name></foo>

1 Ответ

0 голосов
/ 25 июня 2009

Вы можете использовать JAXB XmlAdapters. Доступно с JAXB 2.0 (JDK 6.0)

Используя адаптер, вы оставляете bean-компонент отдельно и комментируете / меняете совершенно другой класс. Это не должно быть проблемой в вашем случае.

Смотрите мой ответ здесь

См. Сообщение в блоге автора JAXB

...