Настройте, как JAXB неупорядочивает логические значения

У меня есть несколько аннотированных bean-компонентов JAXB, которые я использую для демаршализации некоторого XML.

У меня есть несколько атрибутов, помеченных @XMLAttribute с типом Boolean.

@XmlAttribute private Boolean someAttribute;

Я хотел бы настроить маршалинг логического атрибута all так, чтобы разрешались только точные значения «true» или «false» (например, «FALse», а не «wibble», приведет к сбою демаршалинга) .

Я бы предпочел избежать установки @XmlJavaTypeAdapter для каждого логического атрибута, если это возможно. Есть ли способ настроить, как JAXB демаршалирует логические свойства?


person lexicalscope    schedule 26.05.2011    source источник


Ответы (1)


Вы можете создать Schema, выражающий ваши ограничения, и прикрепите это к Unmarshaller.

person Waldheinz    schedule 26.05.2011
comment
+1 - Для получения дополнительной информации об этом подходе см .: bdoughan.blogspot .com / 2010/12 / - person bdoughan; 26.05.2011
comment
@Blaise Doughan - спасибо за пример кода, хороший пост в блоге - person Waldheinz; 26.05.2011
comment
Я вроде как надеялся сгенерировать схему из аннотаций JAXB ... у меня все наоборот? - person lexicalscope; 26.05.2011
comment
и @flamingpenguin - я только что подумал о том, что подход к проверке допускает значения true и false, а также 1 и 0 для узлов типа xsd: boolean: w3.org/TR/xmlschema-2/#boolean - person bdoughan; 26.05.2011