在我的一个项目中,我使用JAXB2编组器,它有一个契约优先的Web服务,我从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 – 2013-05-07 19:42:41