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.