nab*_*tar 0 xml xsd wsdl jax-ws jaxb
我正在努力解决一个简单的JAXB定制问题.我有这样的架构.(它实际上是Bing Maps Web Services架构的一小部分)
<xs:complexType name="GeocodeOptions">
<xs:sequence>
<xs:element minOccurs="0" name="Count" nillable="true" type="xs:int" />
<xs:element minOccurs="0" name="Filters" nillable="true" type="ArrayOfFilterBase" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ArrayOfFilterBase">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="FilterBase" nillable="true" type="FilterBase" />
</xs:sequence>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
现在当我使用wsimport生成java类时,它创建了如下代码结构:
public class GeocodeOptions implements Serializable {
...
public ArrayOfFilterBase getFilters() {
...
}
public void setFilters(ArrayOfFilterBase value) {
...
}
}
public class ArrayOfFilterBase implements Serializable {
...
public List<FilterBase> getFilterBaseList() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所注意到的,ArrayOfFilterBase是一个容器类,我想省略它.我想直接在GeocodeOptions类中使用getFilterBaseList()方法.
是否可以通过JAXB定制来实现?我努力寻找它但找不到解决方案.
谢谢你的帮助.
关心Nabeel Mukhtar
小智 5
是的,您可以使用@XmlElementWrapper注释省略容器.您的代码应如下所示:
public class GeocodeOptions implements Serializable {
@XmlElementWrapper(name = "...")
@XmlElement(name = "...")
public List<FilterBase> getFilterBaseList() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
893 次 |
| 最近记录: |