Java:JAXB:JAXBElement <Calendar>的Marshelling转换为xs:date不正确

我有使用JAXB的问题。 我通过xjc(使用xsd-schema)创建了我的Java类,并使用parse和print方法为XML-Datatypes xs:date xs:dateTime和xs:time绑定了java.util.Calendar。

一切工作正常,直到我标记一些xs:日期字段为可填写。 xjc为这些属性创建JAXBElement包装器。 如果这些字段被解组,则会打印出日期,包括导致验证错误的时间信息。

是否有可能迫使Marshaller将其转换为xs:date而不是xs:dateTime?

我可以为那些获取特殊XMLAdapater字段的字段指定绑定吗?

Java-Class内部的属性如下所示:

@XmlElementRef(name = "dateField", namespace = "namespace", type = JAXBElement.class)

protected JAXBElement<Calendar> dateField;

和相应的xsd-看起来像

<xs:element name="dateField" minOccurs="0" nillable="true" type="xs:date" />

有人能帮助我吗?

感谢和问候,

阿恩


您是否真的需要将日历映射到JAXBElement?中,而不是使用旧版XMLGregorianCalendar(然后您可以将其转换为日期)?

链接地址: http://www.djcxy.com/p/18739.html

上一篇: Java: JAXB: Marshelling of JAXBElement<Calendar> to xs:date not correct

下一篇: Simple conversion between java.util.Date and XMLGregorianCalendar