Ho un problema con JAXB. Ho creato le mie classi Java tramite xjc (usando un XSD-schema) e ha un legame globale per le XML-Datatypes xs: data xs: dateTime e xs: il momento delle java.util.Calendar con parse e il metodo di stampa.Java: JAXB: Marshelling di JAXBElement <Calendar> a xs: data non corretta
Tutto funziona bene fino a quando ho segnato alcuni xs: i campi data come nillable. Xjc crea wrapper JAXBElement per tali proprietà. Se questi campi vengono rimossi, la data viene stampata includendo le informazioni sull'ora che portano a errori di convalida.
Esiste un possibilty per forzare il Marshaller per convertirlo in xs: date al posto di xs: dateTime?
posso specificare un binding per quei campi che ottiene una speciale XMLAdapater ewhich converte questi campi?
La proprietà all'interno del Java di classe sembra che:
@XmlElementRef(name = "dateField", namespace = "namespace", type = JAXBElement.class)
protected JAXBElement<Calendar> dateField;
e le corrispondenti XSD-assomiglia
<xs:element name="dateField" minOccurs="0" nillable="true" type="xs:date" />
Qualcuno mi può aiutare per favore?
Grazie e cordiali saluti,
Arne
Sei sicuro di voler 'nillable = "true"' in primo luogo? Non puoi rendere l'elemento opzionale, invece? Non ho mai visto un vero bisogno o ho sentito che mi mancava. –