XML ItemWriter以XML格式写入数据

时间:2019-01-22 13:50:53

标签: java xml spring-batch

我有一个使用StaxeventItemWriter的春季批处理作业,它工作正常。我想要格式化结果Xml文件,我该怎么做。有没有类似的财产? 这是我的ItemWriter,我只把代码的相关部分简化了,如果需要,我可以添加孔作业。谢谢

<bean id="xmlWriter" class="org.springframework.batch.item.xml.StaxEventItemWriter">
       <property name="resource" value="file:src/main/resources/myFile.xml"></property>
       <property name="rootTagName" value="Users"></property><bean id="MyMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
  <property name="classesToBeBound">
    <list>
       <value>model.myModel</value>
    </list>
  </property>
</bean>
       <property name="marshaller" ref="MyMarshaller"></property>

    </bean> 

<bean id="MyMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
      <property name="classesToBeBound">
        <list>
           <value>model.myModel</value>
        </list>
      </property>
    </bean>

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法激活编组器上的JAXB_FORMATTED_OUTPUT选项:

<bean id="MyMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
  <property name="classesToBeBound">
    <list>
       <value>model.myModel</value>
    </list>
  </property>
  <property name="marshallerProperties">
    <map>
        <entry>
            <key>
                <util:constant static-field="javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT" />
            </key>
            <value type="java.lang.Boolean">true</value>
        </entry>
    </map>
  </property>
</bean>