簡體   English   中英

JAXB2批注:麻煩在列表中呈現值

[英]JAXB2 annotations: troubles rendering a value in a list

我在嘗試用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。 您能幫我發現問題嗎?

這是一個合理的模型,但是您的示例XML無效,因為bizTransaction元素值周圍的bizTransaction空格表示該無效的URI。 如果你說

    <bizTransaction type="urn:foo">http://transaction.acme.com/po/54847</bizTransaction>

那么它將按您期望的那樣工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM