Я создал модуль записи, который будет записывать данные в файл XML с помощью StaxEventItemWriter.
Я установил свойство Marshaller.JAXB_FORMATTED_OUTPUT = true, но все еще не получаю вывод в отформатированном виде. Показывает полный файл в формате одной строки.
Есть ли способ получить выходные данные в отформатированном виде с помощью StaxEventItemWriter?
Я приложил свой код писателя.
@StepScope
StaxEventItemWriter<App> databaseXmlItemWriter(@Value ("#{jobExecutionContext['FileName']}") String fileName) {
StaxEventItemWriter<App> xmlFileWriter = new StaxEventItemWriter<App>();
xmlFileWriter.setResource(new FileSystemResource(fileName));
Jaxb2Marshaller acesMarshaller = new Jaxb2Marshaller();
acesMarshaller.setClassesToBeBound(App.class);
acesMarshaller.setMarshallerProperties(Collections.singletonMap(Marshaller.JAXB_FORMATTED_OUTPUT,true));
xmlFileWriter.setMarshaller(acesMarshaller);
xmlFileWriter.setRootTagName(RootTagName);
xmlFileWriter.setShouldDeleteIfEmpty(true);
xmlFileWriter.setRootElementAttributes(Collections.singletonMap("version", "3.0"));
final XMLEventFactory factory = XMLEventFactory.newInstance();
xmlFileWriter.setHeaderCallback(new StaxWriterCallback() {
@Override
public void write(XMLEventWriter writer) throws IOException {
try {
} catch (XMLStreamException e) {
e.printStackTrace();
}
}
});
xmlFileWriter.setFooterCallback(new StaxWriterCallback() {
@Override
public void write(XMLEventWriter writer) throws IOException {
XMLEventFactory factory = XMLEventFactory.newInstance();
}
});
return xmlFileWriter;
}