我有一个WSDL文件,它引用了一个包含gYearMonth类型元素的XSD文件。我不能改变它。我想使用JAXB自动生成带有Joda-time库的YearMonth类型成员的类。
我看过JAXB and Joda-Time: Dates and Times这篇文章非常有趣,但我感兴趣的是动态执行从WSDL到Java的绑定,而不是从Java到WSDL的绑定。
我创建了我的XmlAdapter (是的,这里没有魔法):
import org.joda.time.YearMonth;
public class YearMonthAdapter extends XmlAdapter<String,YearMonth> {
@Override public YearMonth unmarshal(String v) throws Exception {
return new YearMonth(v);
}
@Override public String marshal(YearMonth v) throws Exception {
return v.toString();
}
}但是,我如何在我的bindings.xml中注册它,以便在生成代码时获得YearMonth而不是XMLGregorianCalendar呢?
发布于 2013-11-19 19:41:40
在从XML Schema生成XmlAdapter模型时,您可以使用如下绑定文件来挂钩Java。
<jxb:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb" version="2.1">
<jxb:bindings schemaLocation="format.xsd">
<jxb:bindings node="//xs:element[@name='number']">
<jxb:property>
<jxb:baseType>
<jxb:javaType name="java.lang.Integer"
parseMethod="blog.xmladapter.bindings.NumberFormatter.parseInt"
printMethod="blog.xmladapter.bindings.NumberFormatter.printInt" />
</jxb:baseType>
</jxb:property>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>了解更多信息
https://stackoverflow.com/questions/20070144
复制相似问题