Jaxb2Marshaller: используйте 0/1 для сортировки значений xsd:boolean с сгенерированной моделью Java.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Jaxb2Marshaller: используйте 0/1 для сортировки значений xsd:boolean с сгенерированной моделью Java.

Сообщение Anonymous »

Я использую Jaxb2Marshaller для маршалирования и демаршалинга запросов и ответов SOAP.

Мои классы модели Java генерируются на основе wsdl с использованием xjc.

У меня есть странное требование, чтобы поля типа xsd:boolean маршалировались как 1 или 0 в результате xml (по умолчанию значения «истина» или «ложь» используются).

Я уже пытался создать XmlAdapter следующим образом:

Код: Выделить всё

public class JaxbBooleanAdapter extends XmlAdapter {

@Override
public Boolean unmarshal(final Integer v)
{
return v == null ? null : v == 1;
}

@Override
public Integer marshal(final Boolean v)
{
return v == null ? null : v ? 1 : 0;
}

}
и настроил мой Jaxb2Marshaller на его использование:

Код: Выделить всё

marshaller.setAdapters( new JaxbBooleanAdapter() );
но это не сработало.

Когда я аннотировал класс модели Java с помощью @XmlJavaTypeAdapter( JaxbBooleanAdapter.class ) все работало отлично, но моя Java-модель генерируется xjc, и мне не удалось заставить ее генерировать аннотации с использованием привязок. Я попробовал следующую привязку:
Мой вопрос: есть ли способ заставить Jaxb2Marshaller маршалировать логические значения как 0/1 для классов модели Java, сгенерированных с помощью xjc?

Подробнее здесь: https://stackoverflow.com/questions/486 ... -java-mode
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»