У меня проблема с использованием JAXB. Я создал свои Java-классы с помощью xjc (используя xsd-схему) и имею глобальную привязку для типов данных XML xs: date xs: dateTime и xs: time to java.util.Calendar с анализом и методом печати.
Все работает нормально, пока я не пометил некоторые поля xs: date как nillable. Xjc создает оболочки JAXBElement для этих свойств. Если эти поля становятся не маршалированными, распечатывается дата, включая информацию о времени, которая приводит к ошибкам проверки.
Можно ли заставить маршаллера преобразовать его в xs: date вместо xs: dateTime?
Можно ли указать привязку для тех полей, которая получает специальный XMLAdapater, который преобразует эти поля?
Свойство внутри Java-класса выглядит так:
@XmlElementRef(name = "dateField", namespace = "namespace", type = JAXBElement.class)
protected JAXBElement<Calendar> dateField;
и соответствующий xsd-выглядит как
<xs:element name="dateField" minOccurs="0" nillable="true" type="xs:date" />
Может кто-нибудь помочь мне, пожалуйста?
Спасибо и всего наилучшего,
Arne