Это может быть потому, что вы используете примитивный тип boolean
. Когда создается экземпляр класса ERC
, поле channelMandatory
инициализируется Java для false
. Поскольку документ не содержит данных для этого поля, он остается на false
.
Проверка DTD в Java - это всего лишь проверка. Он не изменяет документ, он оставляет его как есть, он просто позволяет channelMandatory
отсутствовать, зная, что он имеет значение по умолчанию. Если веб-браузер выбирает другие способы, это нормально, но это выходит за рамки проверки.
Вы можете попробовать самое простое потенциальное решение - инициализировать поле channelMandatory
в true
, например,
@XStreamAlias("ExternalRequestContext")
class ERC {
private String requestType;
private boolean deepEnrichment = false;
private boolean channelMandatory = true;
}
Это, вероятно, будет работать нормально. Я полагаю, что именно такой подход JAXB использует для создания объектной модели Java из схемы.