尝试使用JAXB2注释呈现以下xml代码时遇到了一些问题:
....
<bizTransactionList>
<bizTransaction type="urn:epcglobal:fmcg:btt:po">
http://transaction.acme.com/po/54847
</bizTransaction>
<!--other entries -->
</bizTransactionList>
...
在documentation之后我设法解决了以下问题: 1)在拥有列表的类中,我以这种方式注释列表getter
@XmlElementWrapper(name="bizTransactionList")
@XmlElement(name="bizTransaction")
public List<BizTransaction> getBizTransactionList() {
return bizTransactionList;
}
2)我按如下方式创建BizTransaction类
public class BizTransaction {
private URI transactionId;
private URI type;
@XmlValue
public URI getTransactionId() {
return transactionId;
}
public void setTransactionId(URI transactionId) {
this.transactionId = transactionId;
}
@XmlAttribute
public URI getType() {
return type;
}
public void setType(URI type) {
this.type = type;
}
public BizTransaction() {
// TODO Auto-generated constructor stub
}
public BizTransaction(URI transactionId, URI type) {
super();
this.transactionId = transactionId;
this.type = type;
}
}
现在问题是该属性工作正常,但值(即transactionId变量)始终为null。 你能帮我发现问题吗?
答案 0 :(得分:1)
这是一个合理的模型,但您的示例XML无效,因为bizTransaction
元素值周围的前导和尾随空格意味着它不是有效的URI。如果你说
<bizTransaction type="urn:foo">http://transaction.acme.com/po/54847</bizTransaction>
然后它会像你期望的那样工作。