Подтвердить что ты не робот

JAXB required = true, похоже, не требует

Мы имеем эту аннотацию JAXB:

 @XmlElement(name = "Strategy", required = true)
 protected List<Strategy> strategy;

Если нет элементов Strategy, никаких исключений не возникает.. почему это? Не должно ли мы получить исключение?

4b9b3361

Ответ 1

Эталонная реализация JAXB не использует этот атрибут для проверки, это чисто для целей документации.

Если вам нужно проверить документы, вам нужно определить XML-схему и ввести ее в Marshaller или Unmarshaller, используя SchemaFactory.

Ответ 2

Кроме того, вы можете использовать методы beforeMarshal и afterUnmarshal для проверки входов, как указано в Marshaller и Unmarshaller.

Схема, к которой обращаются эти методы, также позволит вам добавить произвольное предложение throws к объявлению метода. Это означает, что при реализации этих методов вы можете безопасно использовать javax.xml.bind.MarshalException и javax.xml.bind.UnmarshalException (или любой тип Exception, который вы хотите) для проверки ошибок проверки.