Проверка для сгенерированных классов JAXB (JSR 303 / Spring) - PullRequest
8 голосов
/ 30 апреля 2011

I Генерирование доменных объектов из схемы (запрос и ответ) с использованием JAXB (maven-jaxb2-plugin)
Я хотел бы добавить проверки (notnull / empty) для нескольких атрибутов. Я хотел бы иметь пользовательскую проверку бинов, приложение представляет собой службу REST, я использую Spring 3 и JSR 303 но я не думаю, что могу использовать JSR 303 для проверки объекта, как он генерируется из схемы.

Может ли кто-нибудь подсказать мне в правильном направлении, как это сделать.

Ответы [ 4 ]

4 голосов
/ 19 марта 2013

Мы использовали плагин Krasa JAXB для генерации JSR-303-аннотированных компонентов модели из файлов XSD, а затем , сообщая Spring для автоматической проверки входных компонентов.Это приводит к очень хорошему, очень лаконичному и очень СУХОМУ коду, если у вас хорошие XSD.

1 голос
/ 10 февраля 2012

Вы действительно можете сделать это через конфигурацию jsr-303 xml.См. Например, http://www.aviyehuda.com/2010/04/using-hibernate-validator-to-cover-your-validation-needs/.

0 голосов
/ 17 декабря 2014

Вы находитесь на правильном пути для создания JAXB. Нажмите здесь , чтобы увидеть, как JSR 303 работает с POC

0 голосов
/ 03 мая 2011

Для проверки NotNull / Empty вы можете использовать ограничение jaxb в схеме

вот пример:

<xsd:simpleType name="NotEmptyString">
  <xsd:restriction base="xsd:string">
    <xsd:minLength  value="1"/>
  </xsd:restriction>
</xsd:simpleType>

Или вы можете использовать шаблоны регулярных выражений:

<xsd:simpleType name="DirType">
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="[LR]*"/>
  </xsd:restriction>
</xsd:simpleType>

Примечание : простой тип не требует собственного определения класса. Используется собственный java.lang.String Java, и ограничение длины не проверяется, если вы не запросите его через setEventHandler () .

подробнее http://jaxb.java.net/tutorial/section_3_3-Validation.html#Validation

...