FasterXML jackson-dataformat-версия сериализации xml и кодировка не добавлены в xml

Привет, я сериализую объект JAVA POJO в xml, используя faster-xml (https://github.com/FasterXML/jackson-dataformat-xml/wiki).Когда я это делаю, я получил xml, но у него нет никакой версии и кодировки в xml-файле.Это формат, который мне нужен

<?xml version="1.0" encoding="utf-8"?>
<SampleRequest>
... 
</SampleRequest>

но у меня есть только этот один

<SampleRequest>
... 
</SampleRequest>

есть ли конфигурации должны быть добавлены в аннотаций fasterxml.Джексона.

1 ответов


вы можете настроить XmlMapper для записи заголовка XML.

 XmlMapper xmlMapper = new XmlMapper();
 xmlMapper.configure( ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true );

пример:

import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
import java.io.IOException;

public class Xml {
    public static void main(String[] args) throws IOException {
        // Important: create XmlMapper; it will use proper factories, workarounds
        XmlMapper xmlMapper = new XmlMapper();
        xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
        xmlMapper.writeValue(System.out, new SampleRequest());
    }
}

class SampleRequest{
    public int x = 1;
    public int y = 2;
}

генерирует выходной:

<?xml version="1.0" encoding="UTF-8"?>
 <SampleRequest ...
 </SampleRequest>

Если вы хотите установить версию на " 1.1 "вместо " 1.0", используйте ToXmlGenerator.Особенность.Вместо WRITE_XML_1_1.