Ответ 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.Feature.WRITE_XML_1_1
.
Обратите внимание, что команда Faster-XML рекомендует использовать библиотеку Woodstox. В случае, если вы используете его, некоторые другие конфигурации могут быть установлены. Среди всех них есть одна, связанная с установкой двойных кавычек:
public static final String P_USE_DOUBLE_QUOTES_IN_XML_DECL="com.ctc.wstx.useDoubleQuotesInXmlDecl";
Для получения более подробной информации ознакомьтесь с настройкой синтаксического анализатора Woodstox.