JAXB, Упорядочивающий с пустыми полями

Вы делаете это немного сложнее, чем нужно. Все данные находятся там, если вы посмотрите на теги

3 ответа

Спасибо, ребята, за ваши ответы.

Крис Дейл - Я попробовал ваш подход, и он не дал того, что я хотел. JAXB все еще игнорировал мои нулевые значения, несмотря на определение значения по умолчанию для моих полей.

Я наткнулся на ответ после того, как кто-то на форумах Джерси указал мне на раздел документации 2.2.12.8 Нет значения .

По сути, все, что мне нужно было сделать, это добавить в свои поля следующее:

@XmlElement(nillable = true) 

Как только я это добавлю, JAXB будет отображать эти поля при их преобразовании в XML следующим образом:

...
<num>5</num>
<date xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
....
40
ответ дан 26 November 2019 в 19:03
поделиться

Но, но ... пустая строка не является допустимым лексическим представлением даты, поэтому вы не можете этого сделать. то есть, если вы создали XML-документ с пустым значением для поля даты, он не будет проверяться должным образом.

Другими словами, если ваш элемент date имеет minOccurs 1 или более, но не nillable , тогда вам обязательно должны быть (1 или более) даты, которые не могут быть нулевыми (или пробелами, или другими значениями).

4
ответ дан 26 November 2019 в 19:03
поделиться

Как указано в другом ответе, он недействителен, так как это недействительная дата. У меня была аналогичная проблема, с которой я хотел обработать (как) специально. Поскольку вы не можете использовать null, вы можете использовать механизм значений по умолчанию в JAXB. Следующее будет значением по умолчанию, если ничего не указано. Вы можете с помощью кода определить эту особую дату и обработать этот случай исключения.

@XmlElement(defaultValue="1970-01-01T00:00:00.0-00:00")

Таким образом, можно обнаружить и пустое значение даты, но вы просто не можете использовать для этого null.

2
ответ дан 26 November 2019 в 19:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: