我如何自定义StaxEventItemWriter来控制xml文件?

时间:2015-03-30 19:44:45

标签: xml spring spring-batch stax

我需要从数据库记录中弹出批量生成xml。 Spring批处理提供了StaxEventItemWriter来生成xml。但我的输出xml不是通常的xml。它有标题和正文以及内部正文,它有一个元素,可以在块中进行弹簧批处理。输出xml格式如下所示。我找不到覆盖StaxEventItemWriter中提供的方法来实现此目的的方法。

       <Document>
          <header>
           <groupheader>
            ......
           </groupheader>
           <Body>
            <data>
            .......
            </data>
            <record>
            .........
            </record>
            <record>
            .........
            </record>
            <record>
            .........
            </record>
            .........repeating element
          </Body>
    </Document>

1 个答案:

答案 0 :(得分:0)

简而言之,Spring Batch&#39; StaxEventItemWriter输出的XML格式实际上是编组配置的一个功能。您似乎正在尝试使用标头生成XML文档。这是通过StaxEventItemWriter中提供的标头回调支持的。打开文件时,将执行一次回调。之后,每个项目都通过编组器进行序列化。您可以在此处的文档中阅读有关标题回调的更多信息:http://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/item/xml/StaxEventItemWriter.html#setHeaderCallback-org.springframework.batch.item.xml.StaxWriterCallback-