2011-11-05 14 views
6

एक्सएमएल तत्व का नाम सेट करने के लिए मैं इस तरह एनोटेशन का उपयोग करता हूं:जेएक्सबी: जावा कोड से एक्सएमएल एलिमेंट का नाम बदलें?

@XmlElement(name = "customer_id") 
public String getId(){} 

मुझे दो अलग-अलग webservices के साथ संवाद करना है। एक customer_id नामक एक आईडी तत्व का विस्तार करता है लेकिन दूसरा आईडी तत्व id नामित करता है। मैंने एक ही विशेषता के साथ एक दूसरी Customer कक्षा बनाकर समस्या हल की। एकमात्र अलग यह है कि यह निम्नलिखित एनोटेशन

@XmlElement(name = "id") 
public String getId(){} 

का उपयोग करता है और इसमें एक कॉपी कन्स्ट्रक्टर है जो Customer1 से Customer2 तक सभी विशेषताओं की प्रतिलिपि बनाता है। जब मैं पहली webservice के साथ संचार कर रहा हूं, तो मैं एक Customer1 ऑब्जेक्ट भेजता हूं और अन्य webservice को Customer2 ऑब्जेक्ट मिलता है।

क्या केवल एक Customer ऑब्जेक्ट का उपयोग करने की कोई संभावना है, लेकिन id विशेषता का नाम बदलकर जो भी webservice अपेक्षा करता है?

उत्तर

5

नोट: मैं EclipseLink JAXB (MOXy) लीड और JAXB 2 (JSR-222) विशेषज्ञ समूह का सदस्य हूं।

आप अपने ऑब्जेक्ट मॉडल में दूसरा मैपिंग लागू करने के लिए MOXY JAXB में बाहरी मैपिंग दस्तावेज़ एक्सटेंशन का उपयोग कर सकते हैं। इस मैपिंग दस्तावेज़ का उपयोग एनोटेशन के माध्यम से प्रदान किए गए मेटाडेटा को संशोधित करने के लिए किया जा सकता है, या पूरी तरह से इसे प्रतिस्थापित कर सकता है।

संबंधित मुद्दे