gpt4 book ai didi

java - 如何注释 JAXB 属性以使用 xsd :time rather than xsd:datetime?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:15:38 26 4
gpt4 key购买 nike

我有一个这样的 JAXB 类:

public class Game {
private Date startTime;

@XmlElement
public Date getStartTime() {
return startTime;
}

public void setStartTime(Date startTime) {
this.startTime = startTime;
}
}

这会生成 .xsd,其中 startTime 的类型为 xsd:datetime。我希望它是 xsd:timexsd:time 映射到 XmlGregorianCalendar,但反向映射映射到 xsd:anySimpleType,这不是很有用。

我尝试了 @XmlElement(type=...) 的各种参数,但都无济于事。任何指针将不胜感激。

如果有区别的话,这是 JAX-WS 使用的类型。

最佳答案

如果您从 Java 类生成架构,您应该更改此处:

public class Game {
private XMLGregorianCalendar startTime;

@XmlElement
@XmlSchemaType(name = "time")
public XMLGregorianCalendar getStartTimeForSchema() {
return startTime;
}

public void setStartTimeForSchema(XMLGregorianCalendar startTime) {
this.startTime = startTime;
}

@XmlTransient
public Date getStartTime() {
return startTime.toGregorianCalendar().getTime();
}

@XmlTransient
public void setStartTime(Date startTime) {
GregorianCalendar gc = (GregorianCalendar) GregorianCalendar.getInstance();
gc.setTime(startTime);
DatatypeFactory dataTypeFactory = null;
try {
dataTypeFactory = DatatypeFactory.newInstance();
} catch (DatatypeConfigurationException ex) {
// log
}
this.startTime = dataTypeFactory.newXMLGregorianCalendar(gc);
}
}

关于java - 如何注释 JAXB 属性以使用 xsd :time rather than xsd:datetime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1714697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com