В одном из моих проектов я использую маршаллер JAXB2, имея контрактную первую веб-службу, я генерирую объекты из XML-схемы.JAXB Отображение Java и XSD
Все работает отлично. Но у меня проблема с «удобством использования кода». Позвольте привести пример.
Схема:
<xs:complexType name="personContractAlertListType">
<xs:sequence>
<xs:element ref="PersonContractAlert" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="PersonContractAlertsResponse">
<xs:complexType>
<xs:sequence>
<xs:element ref="PersonContractAlertList"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Поэтому для того, чтобы получить доступ к список PersonContractAlerts
я должен позвонить:
PersonContractAlertsResponse.getPersonContractAlertListType().getPersonContractAlert()
который является своего рода долго.
Мой вопрос: Как я могу избавиться от getPersonContractAlertListType()
и перейти непосредственно к: PersonContractAlertsResponse.getPersonContractAlert()
Потому что обертка элемент действительно только для XSD, мне не нужно это в моем объекте Java.
Другими словами есть:
<Element1>
<Wrapper>
<Element2/>
</Wrapper>
</Element1>
И я хочу это в Java для сопоставления: Element1.getElement2()
Может быть с помощью JAXB адаптеров. И помните, что я не хочу касаться сгенерированных объектов. Это должно быть сделано либо в настройках маршаллера (адаптация, перехватчик, и т. Д.), Либо в XSD (возможно, есть некоторые настройки для управления).
Большое спасибо!
UPDATE:
Я нашел учебник по некоторым обязательным операциям:
https://jaxb.dev.java.net/guide/Using_different_datatypes.html
Я исследование попробовать использовать JAXB привязки.
Эта ссылка сейчас https://jaxb.java.net/guide/Using_different_datatypes.html –