Подтвердить что ты не робот

Опускание автономного атрибута в объявлении xml при использовании Java DOM + Transformer.

Можно ли передать Transformer (при сериализации XML-документа с использованием DOM), чтобы опустить автономный атрибут?

Предпочтительно без использования взлома, т.е. омлетает всю декларацию XML и затем добавляет ее вручную.

Мой текущий код:

Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.STANDALONE, "yes"); //Note nothing is changed

StreamResult result = new StreamResult(new StringWriter());
DOMSource source = new DOMSource(document);
transformer.transform(source, result);
 return result.getWriter().toString();

Ток:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<someElement/>

Назначение:

<?xml version="1.0" encoding="UTF-8">
<someElement/>
4b9b3361

Ответ 1

Выяснил это.

Вместо изменений в трансформаторе

Я добавляю следующее к объекту документа.

  document.setXmlStandalone(true);

Ответ 2

document.setXmlStandalone(true/false); работает нормально.

Ответ 3

Какую версию Java вы используете и/или какой XSLT-трансформатор? С Sun Java 1.6.0_16 автономный атрибут устанавливается только в выходном документе, если вы задаете свойство вывода и содержимое также правильно.