2009-06-24 2 views
0

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

Как сказано, я не могу изменить java bean и поэтому изменять примитивные типы в своих экземплярах 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> 

ответ

0

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

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

See my reply here

See JAXB's author's blog post

+0

Спасибо, я acutally теперь просто писал конвертеры инкапсулированных типов, был самым простым способом. – 2009-06-29 23:00:40