2012-10-12 17 views
7

मैवेन में जेएक्सबी प्लगइन का उपयोग कर एक्सएसडी से बीन्स उत्पन्न करने के लिए मैं जेएक्सबी का उपयोग कर रहा हूं। यह ठीक काम कर रहा है, उम्मीद है कि कोड में प्रत्येक फ़ील्ड के लिए SETXXXXXX() विधियां हैं।जेएक्सबी बीन जनरेशन

उदा।

@XmlElement(name = "FirstName", required = true) 
    protected String firstName; 

    public String getFirstName() { 
     return firstName; 
    } 

public void setFirstName(String firstName) { 
     this.token = firstName; 
    } 

    public boolean isSetFirstName() { 
     return (this.firstName!= null); 
    } 

यह isSetFirstName() विधि समस्या आ रही है और मैं JAXB इन उत्पन्न करने के लिए नहीं करना चाहती:

एक क्षेत्र firstName के लिए

, यह निम्न कोड का निर्माण कर रहा है।

क्या इस व्यवहार को रोकने का कोई तरीका है?

धन्यवाद।

अद्यतन

इस हल: समस्या xjb फ़ाइल में था, generateIsSetMethod सही पर सेट किया गया था।

<xs:annotation> 
    <xs:appinfo> 
     <jaxb:globalBindings generateIsSetMethod="true"> 

     bindingStyle="modelGroupBinding" 
     choiceContentProperty="true" > 

      <xjc:serializable uid="12343"/> 
      <jaxb:javaType name="short" 
       xmlType="xs:long" 
       printMethod="javax.xml.bind.DatatypeConverter.printShort" 
       parseMethod="javax.xml.bind.DatatypeConverter.parseShort"/> 

     </jaxb:globalBindings> 
    </xs:appinfo> 
</xs:annotation> 

और इसने मेरे previous question का उत्तर दिया।

+0

अरे adi, आपका अपडेट किया गया एक्सएमएल स्निपेट मान्य एक्सएमएल नहीं है,> 'generIsSetMethod = "true" के बाद वहां होना था? –

उत्तर

8

डिफ़ॉल्ट रूप से एक जेएक्सबी (जेएसआर -222) कार्यान्वयन isSet विधियों को उत्पन्न नहीं करेगा। जब से तुम उन्हें मिल रहा है निम्न में से एक सच्चा होना चाहिए:

  1. आप कर सकते हैं एक स्कीमा एनोटेशन कि निर्दिष्ट करता है: <jaxb:globalBindings generateIsSetMethod="true"/>
  2. आप किसी प्रॉपर्टी को निर्दिष्ट करते हैं: <jaxb:globalBindings generateIsSetMethod="true"/>
  3. आप किसी बाहरी बंधन फ़ाइल निर्दिष्ट है isSet विधियों को उत्पन्न करने के लिए मेवेन प्लग-इन।
+0

हालांकि मैंने उत्तर देने से पहले अपने प्रश्न का उत्तर दिया, लेकिन फिर भी यह सही और सूचनात्मक उत्तर है, इसलिए एक बड़ा हां। – adi

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