2013-03-18 42 views
2

我在基於JDK 5的應用程序上使用JAXB。JAXB忽略沒有註釋的瞬態字段

XML編組是一個側面特徵,所以POJO模型上的註釋被排除。應該排除的字段是transient(java關鍵字)。

有沒有辦法配置Marshaler忽略這些字段。

下面是我用連載我的POJO到XML代碼:

JAXBContext context = JAXBContext.newInstance(BasePOJO.class, target.getClass()); 

JAXBElement<WsResponse> model = new JAXBElement<BasePOJO>(
     new QName(target.getClass().getSimpleName()), 
     (Class<BasePOJO>) target.getClass(), 
     (BasePOJO)target 
    ); 

Marshaller marshaller = context.createMarshaller(); 
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); 
marshaller.marshal(model, os); 

樣本POJO我需要序列:

public class APOJO extends BasePOJO { 
    private Long id; 
    private String desc; 
    private transient String aFieldToIgnore; 

    //and the accessors[...] 
} 

回答