如何从XML生成JAXB bean,自定义JAXB编组
我想在JAXB中自定义日期的编组.这是已经问过
question的变种.我认为我会使用XMLAdapter,正如
this answer问题所指定的那样.
但我不能完全这样做,因为我反过来,从.XSD生成JAXB bean – 我无法向JAXB bean添加注释,因为它们是生成的代码. 我试过调用Marshaller.setAdapter(),但没有运气. final Marshaller marshaller = getJaxbContext().createMarshaller(); marshaller.setSchema(kniSchema); marshaller.setAdapter(new DateAdapter()); ... private static class DateAdapter extends XmlAdapter<String,XMLGregorianCalendar> { @Override public String marshal(XMLGregorianCalendar v) throws Exception { return "hello"; //Just a test to see if it's working } @Override public XMLGregorianCalendar unmarshal(String v) throws Exception { return null; // Don't care about this for now } } 我生成的JAXB bean的相关部分如下所示: @XmlSchemaType(name = "date") protected XMLGregorianCalendar activeSince; 当我这样做时,默认日期/ XMLGregorianCalendar编组发生了什么.就好像我没有做到这一切. 任何帮助表示赞赏. 谢谢, 查尔斯
在XJC生成的Java上更改绑定类型的首选方法是使用绑定自定义.
https://jaxb.dev.java.net/guide/Using_different_datatypes.html
该页面并未告诉您如何实际连接自定义,因此请查看如何执行此操作: http://jaxb.java.net/tutorial/section_5_6_1-Overriding-the-Datatype.html#Overriding%20the%20Datatype (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |