多个JaxB编组配置文件

时间:2014-01-07 21:45:31

标签: java jaxb marshalling moxy

我希望用jaxb完成一些条件编组。像这样:

Class A{

//Only marshall when condition X applies
public String fieldOne;

//Only marshall when condition Y applies
public String fieldTwo;

//Always marshall
public String fieldThree;

}

基本上我有2种不同的Web服务方法使用相同的模型,但我需要在每种Web服务方法上发送的信息不同。

到目前为止,我最好的选择是创建一个自定义XMLJavaTypeAdapter来验证某些条件逻辑。当我不想要对象时,适配器将返回null,当我确实需要它编组时它会自行返回。

我想看看是否有人有更好的选择。我的jaxb上下文非常复杂,并且已经有一些适配器层。

提前致谢。

1 个答案:

答案 0 :(得分:2)

  

到目前为止,我最好的选择是创建自定义XMLJavaTypeAdapter   它验证了一些条件逻辑。适配器将返回null   当我不想要这个物体的时候,当我确实需要这个物体的时候它就会被摧毁   回归自己。

我一直在那里做到这一点,它变得非常混乱非常快。如果你可以使用MOXy(我看到你的帖子用moxy标记),你可以使用XmlNamedObjectGraph注释创建在序列化实例时包含的元素的命名配置文件。

Blaise Doughan(MOXy项目的团队负责人)explains it better than I can

Blaise的博客文章展示了如何使用注释,但他还写了a page on the EclipseLink wiki,其中显示了如何以编程方式进行注释。