Jal*_*esh 48 java jaxb marshalling
这是一个非常简单的请求,但我没有找到办法.
我基本上试图在JAXB中设置一个角色,它表示只要遇到空字段,而不是在输出中忽略它,将其设置为空值.所以对于班级:
@XMLRootElement
Class Foo {
Integer num;
Date date;
….
}
Run Code Online (Sandbox Code Playgroud)
如果日期字段为空,则将其编组到XML文件中时,我的输出中没有该元素.我想要做的是包括输出中的所有字段; 如果它们为null,则将它们替换为 - 例如空白.所以输出应该是:
<foo>
<num>123</num>
<date></date>
</foo>
Run Code Online (Sandbox Code Playgroud)
谢谢,
Jalpesh.
Jal*_*esh 40
谢谢你的回答.
Chris Dail - 我试过你的方法,但它并没有真正做到我想要的.尽管为我的字段定义了默认值,JAXB仍然忽略了我的空值.
在泽西论坛的某个人向我指出文档部分2.2.12.8没有价值后,我偶然发现了答案.
基本上,我所要做的就是在我的字段中添加以下内容:
@XmlElement(nillable = true)
Run Code Online (Sandbox Code Playgroud)
一旦我添加了它,JAXB会在将它们编组为XML时显示这些字段,如下所示:
...
<num>5</num>
<date xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
....
Run Code Online (Sandbox Code Playgroud)
但是但是但是...空字符串不是日期的有效词汇表示,所以你不能这样做。即,如果您生成的 XML 文档的日期字段值为空,则它将无法正确验证。
换句话说,如果您的date元素的 aminOccurs为 1 或更多且 not nillable,那么您绝对必须有(1 或更多)日期,该日期不能为 null(或空白或其他非值)。
| 归档时间: |
|
| 查看次数: |
55947 次 |
| 最近记录: |