首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将XSD的gYearMonth转换为Joda的YearMonth

将XSD的gYearMonth转换为Joda的YearMonth
EN

Stack Overflow用户
提问于 2013-11-19 19:21:19
回答 1查看 625关注 0票数 1

我有一个WSDL文件,它引用了一个包含gYearMonth类型元素的XSD文件。我不能改变它。我想使用JAXB自动生成带有Joda-time库的YearMonth类型成员的类。

我看过JAXB and Joda-Time: Dates and Times这篇文章非常有趣,但我感兴趣的是动态执行从WSDL到Java的绑定,而不是从Java到WSDL的绑定。

我创建了我的XmlAdapter (是的,这里没有魔法):

代码语言:javascript
复制
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呢?

EN

回答 1

Stack Overflow用户

发布于 2013-11-19 19:41:40

在从XML Schema生成XmlAdapter模型时,您可以使用如下绑定文件来挂钩Java。

代码语言:javascript
复制
<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>

了解更多信息

  • http://blog.bdoughan.com/2011/08/xml-schema-to-java-generating.html
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20070144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档