我正在使用一个返回以下响应的soap服务
<...>
<SearchResult>
<Score>1</Score>
<HasImage>False</HasImage>
<Field Name="BillToCode" Type="User"/>12</Field>
<Field Name="BrokerNumber" Type="User"/>broker12</Field>
<Field Name="DeductionDate" Type="User">2011-01-12</Field>
<Field Name="DeductionNumber" Type="User">deduction</Field>
</SearchResult>
<...>
我想把它映射成一个易于使用的java类。
@XmlRootElement(name="SearchResult")
@XmlAccessorType(XmlAccessType.FIELD)
public class SearchResultElement
{
@XmlElement(name="Score")
private int mScore;
@XmlElement(name="HasImage")
private boolean mHasImage;
// ???
private String mBillToCode;
// ???
private String mBrokerNumber;
// ???
private String mDeductionDate;
// ???
private String mDeductionNumber;
}
我已经使用过JAXB,我需要了解如何避免造成混乱。
将Fields映射到hashmap也可能是有用的,但我想避免将Fields映射到数组中。
谢谢!
答案 0 :(得分:1)
使用 MOXy ,您可以使用@XmlPath
注释as described in this post。
e.g。
@XmlPath("/SearchResult/Field[@Name='BillToCode']/text()");
private String mBillToCode
编辑:
MOXy支持匹配一个属性,因此遗憾的是您无法编写@Name='BillToCode' and @Type='User'
。