JAXB2 アノテーションを使用して次の xml コードをレンダリングしようとすると、いくつか問題が発生します。
....
<bizTransactionList>
<bizTransaction type="urn:epcglobal:fmcg:btt:po">
http://transaction.acme.com/po/54847
</bizTransaction>
<!--other entries -->
</bizTransactionList>
...
ドキュメントに従って、次のように問題を解決することができました:1)リストを所有するクラス内で、この方法でリストゲッターに注釈を付けます
@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 です。問題を見つけるのを手伝ってもらえますか?