在JAXB对象的编组时,我想为生成的XML设置一些defult值。
我不想使用nillable=true
,因为它会生成带有不必要的xsi:nil="true"
的空标记,而这不是用于设置默认值。相反,我想用一些占位符字符生成XML,例如'?'。
用例:我将构建一个WebService测试工具。在那里,我需要将整个请求xml呈现给用户(如SOAPUI)。
答案 0 :(得分:1)
用例:我将构建一个WebService测试工具。我在那里 需要将整个请求xml呈现给用户(如SOAPUI)。
占位符角色的想法并不真正起作用。例如,?
是字符串的ok默认值,但不是int,boolean或大多数复杂值(即表示客户的嵌套地址信息)。相反,您需要一个反映该类型的值。
然后我将不得不编写大而复杂的基于反射的代码。假设那个 在我的情况下,这几乎是不可能的。
这个反射代码可能不会像你想象的那么糟糕。快速搜索可能还会显示使用“虚拟”数据填充对象的库。使用JAXB连接它时,您可以利用Marshaller.Listener
填充前编组事件中的对象。