JAXB: изменить имя элемента XML из кода Java?
чтобы установить имя XML-элемента, я использую такие аннотации:
@XmlElement(name = "customer_id")
public String getId(){}
Я должен общаться с двумя различными веб-сервисами. Один expacts id элемента по имени customer_id
но другие expacts идентификатор элемента . Я решил проблему, создав второй Customer
класса с теми же атрибутами. Единственное отличие заключается в том, что он использует следующую аннотацию
@XmlElement(name = "id")
public String getId(){}
и имеет конструктор копирования, который копирует все атрибуты Customer1
to Customer2
. Когда я общаюсь с первым веб-сервисом, я отправляю Customer1
объект и другой веб-сервис получает .
есть ли возможность использовать только один в любой вебсервис ожидает?
1 ответов
Примечание: Я EclipseLink JAXB (MOXy) ведущий и член JAXB 2 (JSR-222) группы экспертов.
вы можете использовать расширение внешнего документа сопоставления в MOXy JAXB, чтобы применить второе сопоставление к объектной модели. Этот документ сопоставления можно использовать для изменения метаданных, предоставляемых с помощью аннотаций, или полностью заменить он.
для подробного примера
в приведенном ниже примере одна объектная модель сопоставляется с результатами Google и Yahoo weather APIs: