gpt4 book ai didi

java - 我无法使用 Jaxb2Marshaller 生成格式化的 XML

转载 作者:行者123 更新时间:2023-12-01 14:42:39 25 4
gpt4 key购买 nike

根据Spring Batch文档,Spring Batch可以生成格式化的xml文件,但是我失败了,所有XML元素都生成在一行中。

测试步骤

  1. 下载 spring-batch-2.1.9.RELEASE-no-dependencies
  2. 导入spring-*-3.2.0.RC1.jar
  3. 导入 jaxb-ri-2.2.6
  4. 运行 org.springframework.batch.sample.iosample.XmlFunctionalTests

在运行作业之前,我对/spring-batch-2.1.9.RELEASE-no-dependencies/spring-batch-2.1.9.RELEASE/spring-batch-samples/src/main/resources/进行以下更改作业/iosample/xml.xml

<bean id="itemWriter" class="org.springframework.batch.item.xml.StaxEventItemWriter">
<property name="resource" ref="outputResource" />
<property name="marshaller" ref="customerCreditMarshaller2" />
<property name="rootTagName" value="customers" />
<property name="overwriteOutput" value="true" />
</bean>
<bean id="customerCreditMarshaller2" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPaths">
<list>
<value>com.test.domain</value><!-- the package is generated from a XSD -->
</list>
</property>
<property name="marshallerProperties">
<map>
<entry key="jaxb.formatted.output"><value type="java.lang.Boolean">true</value></entry>
</map>
</property>

最佳答案

JAXB API (com.sun.xml.bind.v2.runtime.output.IndentingUTF8XmlOutput) 支持格式化的 XML。

但默认情况下,Spring Batch 不使用 com.sun.xml.bind.v2.runtime.output.IndentingUTF8XmlOutput 生成输出 XML。

所以我们需要创建一个StreamResult,让Spring Batch使用com.sun.xml.bind.v2.runtime.output.IndentingUTF8XmlOutput来生成格式化的XML。

关于java - 我无法使用 Jaxb2Marshaller 生成格式化的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15790920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com