4
我有一個JAXB的小問題,但不幸的是我無法找到答案。JAXB,如何驗證nillable和必要的字段解組時
我有一類客戶,有2場名和城市,映射使用註解來實現,並根據需要,而不是兩者的nillable字段標。
@XmlRootElement(name = "customer")
public class Customer {
enum City {
PARIS, LONDON, WARSAW
}
@XmlElement(name = "name", required = true, nillable = false)
public String name;
@XmlElement(name = "city", required = true, nillable = false)
public City city;
@Override
public String toString(){
return String.format("Name %s, city %s", name, city);
}
}
然而,當我提出這樣的XML文件:
<customer>
<city>UNKNOWN</city>
</customer>
我會收到與設置爲null兩個字段中的客戶實例。
不應該有一個驗證異常,或者我在映射中丟失了什麼?
來解組使用:
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
Customer customer = (Customer) unmarshaller.unmarshal(in);