使用JAXB时遇到问题。我已经通过xjc(使用xsd-schema)创建了我的Java类,并且使用解析和打印方法对XML-Datatypes xs:date xs:dateTime和xs:time到java.util.Calendar的全局绑定。
一切正常,直到我将一些xs:date字段标记为nillable。 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" />
有人能帮助我吗?
谢谢和最诚挚的问候,
·阿尔