У меня есть небольшая проблема с JAXB, но, к сожалению, я не смог найти ответ.JAXB, как проверить допустимое и требуемое поле при разборке
У меня есть класс клиента, с 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>
я буду получать экземпляр клиента с обоими полями, установленными в нуль.
Не должно быть исключения для проверки или мне что-то не хватает в сопоставлении?
Чтобы распаковать я использую:
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
Customer customer = (Customer) unmarshaller.unmarshal(in);