【发布时间】:2021-11-16 23:16:38
【问题描述】:
我有一个使用 XMLGregorianCalendar 类型设置的 XML Jaxb 类。但是我们应该在这个属性中只设置年份。
XMLGregorianCalendar xmlCal = DatatypeFactory.newInstance().newXMLGregorianCalendar(new
GregorianCalendar());
xmlCal.setYear(2021);
xmlObject.setBuiltYear(xmlCal);
// xmlCal.getYear() will give me year but its type int , so setter method not accepting it. If
has to be of type XMLGregorianCalendar only with year.
如果我将其设置为高于其给定 2021-09-23T10:19:38.346-04:00 但我只需要类型为 XMLGregorianCalendar 的年份。我们该怎么做?
【问题讨论】:
-
按照您的方式设置年份就足够了。 XSD 类型应该是一年,因此将其转换为 XML 应该省略其他字段。
-
但在 XSD 中它的 XMLGregorianCalendar 我无法更改
-
不,不是。 XSD 不是 Java,它是生成此 Java 代码并用于将其映射回来的描述符。我强烈建议阅读 XSD 是什么。 XML 中的所有日期/时间类型(没有类型转换器)最终将作为
XMLGregorianCalendar。像现在这样设置,JAXB最终应该只输出日期。
标签: java spring xmlgregoriancalendar