JAXB required = true, похоже, не требует
Мы имеем эту аннотацию JAXB:
@XmlElement(name = "Strategy", required = true)
protected List<Strategy> strategy;
Если нет элементов Strategy
, никаких исключений не возникает.. почему это? Не должно ли мы получить исключение?
Ответы
Ответ 1
Эталонная реализация JAXB не использует этот атрибут для проверки, это чисто для целей документации.
Если вам нужно проверить документы, вам нужно определить XML-схему и ввести ее в Marshaller
или Unmarshaller
, используя SchemaFactory
.
Ответ 2
Кроме того, вы можете использовать методы beforeMarshal
и afterUnmarshal
для проверки входов, как указано в Marshaller и Unmarshaller.
Схема, к которой обращаются эти методы, также позволит вам добавить произвольное предложение throws
к объявлению метода. Это означает, что при реализации этих методов вы можете безопасно использовать javax.xml.bind.MarshalException
и javax.xml.bind.UnmarshalException
(или любой тип Exception
, который вы хотите) для проверки ошибок проверки.