Tengo un problema al usar JAXB. Creé mis Java Classes a través de xjc (usando un esquema xsd) y tengo un enlace global para XML-Datatypes xs: date xs: dateTime y xs: time to java.util.Calendar con el método de análisis e impresión.Java: JAXB: revisión de JAXBElement <Calendar> a xs: fecha incorrecta
Todo funciona bien hasta que marqué algunos campos xs: date como nillable. El xjc crea envoltorios JAXBElement para esas propiedades. Si estos campos se eliminan, la fecha se imprime, incluida la información de tiempo que conduce a errores de validación.
¿Hay alguna posibilidad de forzar al Marshaller a convertirlo a xs: date en lugar de xs: dateTime?
¿Puedo especificar un enlace para esos campos que obtiene un XMLAdapater especial que convierte esos campos?
La propiedad dentro de la clase Java que se parece a:
@XmlElementRef(name = "dateField", namespace = "namespace", type = JAXBElement.class)
protected JAXBElement<Calendar> dateField;
y los correspondientes XSD se parece a
<xs:element name="dateField" minOccurs="0" nillable="true" type="xs:date" />
Puede alguien ayudarme por favor?
Gracias y un saludo,
Arne
¿Estás seguro de que quieres 'nillable =" true "' en primer lugar? ¿No puedes hacer que el elemento sea opcional? Nunca he visto una necesidad real o siento que me he perdido. –