Jaxb удалить "автономный" из заголовка - PullRequest
0 голосов
/ 13 января 2019

Там уже было обсуждение . И окончательный ответ таков: чтобы удалить standalone="true", мы можем сделать:

jaxbMarshaller.setProperty("com.sun.xml.internal.bind.xmlDeclaration", Boolean.FALSE);
jaxbMarshaller.setProperty("com.sun.xml.internal.bind.xmlHeaders",
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

Но по некоторым причинам это не работает в моем случае. Нет ошибки, но вообще нет «заголовка», поэтому похоже, что установка xmlDeclaration в false работает, но установка собственного xmlHeaders не работает. Мой маршаллер это:

final JAXBContext jaxbContext = JAXBContext.newInstance(Car.class);
final Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

jaxbMarshaller.setProperty("com.sun.xml.internal.bind.xmlDeclaration", Boolean.FALSE);
jaxbMarshaller.setProperty("com.sun.xml.internal.bind.xmlHeaders",
        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
jaxbMarshaller.marshal(object, sw);

return sw.toString();

В чем может быть причина?

...