XML ItemWriter, который записывает данные в формате XML

У меня есть пакетное задание aspring, использующее 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>

Поскольку ваш писатель основан на StAX, проверьте этот stackoverflow.com/questions/290326/stax-xml-formatting-in-ja‌​va

Victor Gubin 22.01.2019 15:00
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
256
1

Ответы 1

Вы можете активировать опцию JAXB_FORMATTED_OUTPUT на marshaller с помощью:

<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>

для чего нужно пространство имен (пожалуйста, используйте?

Omar B. 22.01.2019 15:33

Я добавил пространство имен :xmlns:util = "springframework.org/schema/util". но все еще не форматирует файл XML.

Omar B. 22.01.2019 15:51

Другие вопросы по теме