Java:JAXB:JAXBElement<Calendar> 到 xs:date 的编码不正确

标签 java xml jaxb xjc

我在使用 JAXB 时遇到问题。我已经通过 xjc(使用 xsd-schema)创建了我的 Java 类,并通过解析和打印方法将 XML 数据类型 xs:date xs:dateTime 和 xs:time 全局绑定(bind)到 java.util.Calendar。

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

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

我能否为那些获取特殊 XMLAdapater 的字段指定一个绑定(bind)来转换这些字段?

Java 类中的属性如下所示:

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

protected JAXBElement<Calendar> dateField;

和对应的xsd-looks like

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

有人可以帮帮我吗?

谢谢和最好的问候,

阿恩

最佳答案

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

关于Java:JAXB:JAXBElement<Calendar> 到 xs:date 的编码不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7572746/

相关文章:

java - 我收到一个关于 "is of ' .class' Expected ."and I don' 的错误,不明白为什么。

java - TextView.setText() 仅显示 sleep() 后的最终变化

xml - 尝试检测 PL/SQL 过程中的非法 XML 字符

java - 我想在 SOAP 体元素中传递我的自定义对象,该怎么做?

java - 使用 Decorator 进行 JBoss RESTeasy JAX-RS JAXB 模式验证

java - TestNG - 可用于单类/方法执行的测试/套件作用域变量

java - 如何在 JTextArea 中设置列​​以显示文本

java - URL 无法找到我的 Web 应用程序上下文 – Java Enterprise Beans - Wildfly

python - 在python中获取所有属性XML并将其放入字典

java - 使用库中的包初始化 JAXBContext 是否有问题?