Я собираю (сериализую) JAXB beans для вывода потока. Как я могу добавить инструкции DOCTYPE и инструкции обработки XML для вывода?
Я делаю в настоящее время сортировку следующим образом:
JAXBContext jaxbContext = JAXBContext.newInstance("com.example.package");
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
Schema schema = schemaFactory.newSchema(schemaSource);
marshaller.setSchema(schema);
marshaller.marshal(object, output);
Мне бы хотелось получить вывод, который выглядит примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Something SYSTEM "some.dtd">
<?xml-stylesheet type="text/xsl" href="some.xsl"?>
JAXB bean - это сгенерированный код, поэтому я не хочу их изменять.
Есть некоторые хаки и недокументированные трюки (см. Создание JAXB для генерации инструкции по обработке XML), чтобы добавить xml и doctype. Но каков предпочтительный или правильный способ сделать это?