4

Spring の Jaxb2Marshaller クラスからの出力 XML を PrettyPrint/indent/format しようとしていますが、Web 上の他の場所で見られるようにプロパティを入力しているにもかかわらず、ファイルはまだすべて 1 行です。これが私のBean宣言です:

<bean id="pingerMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="classesToBeBound">
        <list>
            ...
        </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>

そして作家:

<bean id="itemWriter" class="org.springframework.batch.item.xml.StaxEventItemWriter">
    <property name="marshaller" ref="pingerMarshaller" />
    <property name="overwriteOutput" value="true" />
    <property name="resource" value="file:\C:\source\pinger\pingerExample.xml" />
</bean>

何か不足していますか、それともバグですか?

4

2 に答える 2

4

StAXのandMarshaller.JAXB_FORMATTED_OUTPUTにマーシャリングする場合は適用されません(これは私が想定していることです)。JAXB で結果をフォーマットしたい場合は、orベースのターゲットが利用可能であれば必要になります。XMLStreamWriterXMLEventWriterorg.springframework.batch.item.xml.StaxEventItemWriterOutputStreamWriter

于 2013-10-11T14:41:33.393 に答える