编组时null元素的JAXB默认值

时间:2014-11-19 09:23:31

标签: java xml jaxb marshalling

在JAXB对象的编组时,我想为生成的XML设置一些defult值。

我不想使用nillable=true,因为它会生成带有不必要的xsi:nil="true"的空标记,而这不是用于设置默认值。相反,我想用一些占位符字符生成XML,例如'?'。

用例:我将构建一个WebService测试工具。在那里,我需要将整个请求xml呈现给用户(如SOAPUI)。

1 个答案:

答案 0 :(得分:1)

  

用例:我将构建一个WebService测试工具。我在那里   需要将整个请求xml呈现给用户(如SOAPUI)。

占位符角色的想法并不真正起作用。例如,?是字符串的ok默认值,但不是int,boolean或大多数复杂值(即表示客户的嵌套地址信息)。相反,您需要一个反映该类型的值。

  

然后我将不得不编写大而复杂的基于反射的代码。假设那个   在我的情况下,这几乎是不可能的。

这个反射代码可能不会像你想象的那么糟糕。快速搜索可能还会显示使用“虚拟”数据填充对象的库。使用JAXB连接它时,您可以利用Marshaller.Listener填充前编组事件中的对象。