Add XML comments into marshaled file

前端 未结 3 1776
太阳男子
太阳男子 2020-12-20 12:31

I\'m marshaling objects into an XML file. How can I add comments into that XML file?

3条回答
  •  庸人自扰
    2020-12-20 12:49

    If anyone comes to this now, like I just did, it is worth pointing out that the property to do this is now com.sun.xml.bind.xmlHeaders (no longer internal it seems), so you can solve the problem like this (I have only tried it with EclipseLink MOXY):

    JAXBContext context = JAXBContext.newInstance(Player.class);
    Marshaller m = context.createMarshaller();
    m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
    m.setProperty("com.sun.xml.bind.xmlHeaders", "\n");
    m.marshal(player, System.out);
    

    The following information originally comes from Marshaller Properties in the JAXB RI Extensions documentation on jaxb.java.net:

    XML Preamble Control

    This property allows you to specify an XML preamble ( declaration) and any additional PIs, comments, DOCTYPE declaration that follows it. This property takes effect only when you are marshalling to OutputStream, Writer, or StreamResult. Note that this property interacts with the Marshaller.JAXB_FRAGMENT property. If that property is untouched or set to false, then JAXB would always write its XML preamble, so this property can be only used to write PIs, comments, DOCTYPE, etc. On the other hand, if it is set to true, then JAXB will not write its own XML preamble, so this property may contain custom XML preamble.

提交回复
热议问题