मेरे पास एक एक्सएसडी है जो स्वयं नहीं बनाई गई है लेकिन किसी अन्य पार्टी से प्राप्त हुई है। इसलिए मैं इस एक्सएसडी को नहीं बदल सकता क्योंकि मुझे दूसरी पार्टी के साथ संगतता सुनिश्चित करनी होगी।एक marshalled तत्व/टैग में अनावश्यक नामस्थान घोषणाओं से कैसे बचें?
सरल बाध्यकारी मोड का उपयोग कर एक्सजेसी 2.2 और जेएक्सबी 2.2 का उपयोग करके मैं एक खाली हैलो तत्व के अंदर एक मूल तत्व बनाना चाहता हूं। लेकिन जब मार्शल किया गया तो मुझे बहुत सारे नामस्थान बकवास मिलते हैं। जो मुझे अनदेखा दिखता है। (हालांकि यह काम करता है, लेकिन इसे और अधिक डेटा ect भेजने के लिए है ...)
XSD Rootelement:
<element name="epp">
<complexType>
<choice>
<element name="greeting" type="epp:greetingType" />
<element name="hello" />
<element name="command" type="epp:commandType" />
<element name="response" type="epp:responseType" />
<element name="extension" type="epp:extAnyType" />
</choice>
</complexType>
</element>
जावा कोड:
Epp epp = new Epp();
epp.setHello("");
मार्शल परिणाम:
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<hello xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string"></hello>
</epp>
पसंदीदा परिणाम:
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<hello />
</epp>
या:
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<hello></hello>
</epp>
वहाँ अधिमानतः XSD बदले बिना यह संभव बनाने या मैन्युअल XJC संकलित वर्गों को बदलने के लिए कोई तरीका है?
मन अगर मैं सवाल शीर्षक को संपादित? ऐसा लगता है कि आप सामग्री के बिना तत्व उत्पन्न करने के लिए कह रहे हैं, लेकिन इसकी परवाह है। असली लक्ष्य अनावश्यक नामस्थान घोषणाओं से परहेज कर रहा है। –
कोई समस्या नहीं, यह मेरा पहला प्रश्न है ... :), हां लक्ष्य उन नेमस्पेस decs से छुटकारा पाने के लिए है –
क्या आपने हैलो मान सेट नहीं करने का प्रयास किया (epp.setHello ("") नहीं चल रहा है)? – altanis