如何基于XSD配置使缺失的aggregationDimensionAverageInfo段不出现在XML输出
解决BeanIO空集合字段显示问题
针对输入XML中缺失aggregationDimensionAverageInfo段时输出空数组的问题,只需修改BeanIO配置中的对应segment属性:
- 在
aggregationDimensionAverageInfo标签上添加lazy="true"属性。该属性会让BeanIO仅当该segment存在数据时才生成对应字段,无数据时则完全不显示该字段。
修改后的配置片段:
<segment name="aggregationDimensionAverageInfo" class="java.util.HashMap" collection="list" minOccurs="0" maxOccurs="unbounded" lazy="true"> <field name="averageValueTotal" xmlType="element" minOccurs="0"/> <field name="averageValueCount" xmlType="element" minOccurs="0"/> <field name="averageValuePerType" xmlType="element" minOccurs="0"/> </segment>
原理:BeanIO默认会为collection="list"且minOccurs="0"的segment初始化空集合,lazy="true"会覆盖这个行为,只有在解析到对应XML节点时才创建集合并填充数据,无数据时则忽略该字段。
内容的提问来源于stack exchange,提问作者Nitash Anklesaria
相关产品推荐
相关产品推荐

