2011-05-01 130 views
2

如何將JAXB註釋中的字段映射到元素和屬性?我在嘗試在JAXB中定製我的模型時遇到了一些麻煩。這裏是我當前的模型:如何通過JAXB註釋映射XML元素和屬性?

Info.java

package com.rest.model; 

public class Info { 

    private String a; 

    private String b; 

    private String c; 

    private String d; 

    public Info() { 

    } 

    /* ... insert JavaBean getters/setters here */ 
} 

InfoList.java

package com.rest.model; 

public class InfoList { 

    private List<Info> infos; 

    public InfoList() { 

    } 

    /* ... insert JavaBean getters/setters here */ 
} 

什麼這個被序列化到如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<infos> 
    <info> 
     <a>HELLO</a> 
     <b>WORLD</b> 
     <c>OLLEH</c> 
     <d>DLROW</d> 
    </info> 
</streams> 

我該如何控制這是序列化的方式?我嘗試過使用註釋,但我只能設法觸發IllegalAnnotationException。我將如何使用這個模型,因爲它會自動映射並在註釋中表示它?或者,如何將Info類中的字段更改爲映射到XML屬性?

回答

2

默認情況下,JAXB將查找公共訪問器上的註釋。如果您註釋了字段,您將看到您遇到的異常情況。如果你想註釋字段 添加以下內容:

@XmlAccessorType(XmlAccessType.FIELD) 
public class Foo { 

    @XmlAttribute 
    private String a; 

} 

舉個例子看看:

相關問題