Comment ajouter des instructions de traitement DOCTYPE et xml lors du rassemblement avec JAXB?

Je suis de triage (sérialisation) JAXB fèves de flux de sortie. Comment puis-je ajouter de la déclaration DOCTYPE et les instructions de traitement xml de sortie?

Je fais actuellement de l'ordonnancement comme ceci:

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);

J'aimerais avoir une sortie qui ressemble à quelque chose comme ceci:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Something SYSTEM "some.dtd">
<?xml-stylesheet type="text/xsl" href="some.xsl"?>

JAXB haricots sont générés code donc je ne veux pas les changer.

Il y a quelques hacks et les sans-papiers astuces (voir Faire JAXB générer une instruction de traitement XML) pour ajouter le les instructions de traitement xml et doctype. Mais ce qui est le préféré de droite ou de façon de le faire?

source d'informationauteur Juha Syrjälä | 2010-05-27