को देखते हुए निम्न उदाहरण XSD स्निपेट:JAXB xjc: स्ट्रिंग्स के लिए कोड कैसे उत्पन्न करें जो मान शून्य होने पर खाली हो जाता है?
< xs:attribute name="SEGMENT" default="" use="optional" type="xs:string"/ >
जब xjc वर्ग SEGMENT
सेम विशेषता युक्त उत्पन्न करता है, निम्नलिखित गेटर है स्वत: जनरेट:
public String getSEGMENT() {
if (segment == null) {
return "";
} else {
return segment;
}
}
मेरा प्रश्न है कि आप इसे कैसे मिलता है xs:element
ऑब्जेक्ट्स के लिए ऐसा ही करें? दूसरे शब्दों में, यह देखते हुए निम्नलिखित XSD स्निपेट:
public String getNAME() {
if (name == null) {
return "";
} else {
return name;
}
}
यह कैसे किया जा सकता है:
< xs:element name="NAME" default="" type="xs:string"/ >
मैं अगर मैं xjc मिल निम्नलिखित उत्पन्न करने के लिए कर सकते हैं जानना चाहते हैं? के रूप में यह डिफ़ॉल्ट मान के साथ एक विशेषता के लिए करता है
एक क्षेत्र प्रारंभकर्ता निश्चित रूप से उपयुक्त होगा। अब सवाल यह है कि मैं xjc को प्रत्येक वर्ग में प्रत्येक स्ट्रिंग में खाली स्ट्रिंग प्रारंभकर्ता जोड़ने के लिए कैसे प्राप्त करूं? शायद एक अलग बाइंडिंग फ़ाइल में? –
@ जावा लावा: मैंने अपने उत्तर में कुछ और विवरण जोड़े और कुछ प्लगइन्स भी जो दिलचस्प लगते हैं। देखें कि यह मदद करता है। – Bogdan
अतिरिक्त जानकारी के लिए धन्यवाद। मुझे हालांकि एक समस्या है। आपके द्वारा भेजे गए लिंक में एक मेवेन या चींटी कार्य स्थापित करना शामिल है। मैं मेवेन का उपयोग नहीं करता। और चींटी कार्य को स्थापित करते समय समस्या यह है कि मुझे एक लिंकेज त्रुटि मिल रही है जिसमें कहा गया है कि अलग-अलग वर्गों को उसी नाम से लोड किया जा रहा है। समस्या, मुझे विश्वास है, जावा 1.6 में xjc बनाया गया है, और jxb-xjc-2.1.9.jar को मेरे xjc taskdef classpath में जोड़कर, वे संघर्ष कर रहे हैं। मेरा सवाल यह है कि 1.6 को अनदेखा करने के लिए या तो एंटी स्क्रिप्ट कैसे प्राप्त कर सकता है (मेरा JAVA_HOME उस पर सेट है) और मेरे taskdef classpath का उपयोग करें, या taskdef में 1.6 xjc jar का संदर्भ लें? –