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

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

用例:我将构建一个用于WebService测试的工具。在那里,我需要向用户展示整个请求xml(例如SOAPUI)。

最佳答案

用例:我将构建一个用于WebService测试的工具。我在那里
需要向用户展示整个请求xml(例如SOAPUI)。

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

然后,我将不得不编写大型且复杂的基于反射的代码。只是假设
就我而言,这几乎是不可能的。

这个反射代码可能不会像您想象的那样糟糕。快速搜索可能还会发现使用“虚拟”数据填充对象的库。与JAXB挂钩时,您可以利用Marshaller.Listener在之前的元帅事件中填充对象。

07-24 14:41
查看更多