सभी यहाँ समाधान बहुत बदसूरत और अत्यधिक शब्द हैं। अतिरिक्त शीर्षलेख निर्दिष्ट करने वाले Mashaller
ऑब्जेक्ट के अंदर बस लाइन सेट करें।
Marshaller jaxbMarshaller = ...
jaxbMarshaller.setProperty("com.sun.xml.bind.xmlHeaders",
"<?xml-stylesheet type='text/xsl' href='nameoffile.xsl' ?>");
यह उदाहरण उत्पादन एक फाइल करने के लिए एक XML वस्तु मनुष्य के लिए अच्छी तरह से एक स्टाइलशीट का उपयोग कर और तत्वों को फ़ॉर्मेट को पढ़ने के लिए होगा।
JAXBContext context = JAXBContext.newInstance(MyXmlClass.class);
Marshaller marshaller = context.createMarshaller();
//Need to use a Writer to marshal with the XSL
FileWriter fw = new FileWriter(file);
//Do this or else the XML is all one line and not human friendly...
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.setProperty("com.sun.xml.bind.xmlHeaders",
"<?xml-stylesheet type='text/xsl' href=\"" +
xslUrl +
"\" ?>");
marshaller.marshal(myXmlObject, fw);
स्रोत
2013-09-26 16:09:38
तुम्हारा मतलब आप JAXB उत्पादन में स्टाइलशीट संदर्भ शामिल करना चाहते हैं: वस्तु
myXmlObject
एक स्टाइलशीटxslUrl
द्वारा दिए गए द्वारा फ़ॉर्मेट वर्गMyXmlClass
की है, औरfile
को लिखा जाएगा? – skaffman