2012-10-12 15 views
7

Sto usando JAXB per generare bean da XSD usando un plugin JAXB in Maven. Funziona correttamente, si aspetta che il codice contenga i metodi SetetXXXXXX() per ogni campo.JAXB Bean Generation

ad es.

per un campo firstName, sta producendo il seguente codice:

@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); 
    } 

Questo metodo isSetFirstName() sta causando problemi e non voglio JAXB per generare questi.

C'è un modo per interrompere questo comportamento?

Grazie.

UPDATE

risolto questo: Il problema era nel file XJB, generateIsSetMethod è stata impostata su true.

<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> 

E questo ha risposto il mio previous question pure.

+0

Ehi, il tuo snippet XML aggiornato non è valido XML, è il> dopo 'generateIsSetMethod =" true "significa essere lì? –

risposta

8

Per impostazione predefinita, un'implementazione JAXB (JSR-222) non genera i metodi isSet. Dal momento che li stanno ottenendo una delle seguenti devono essere vere:

  1. È possibile un'annotazione schema che specifica: <jaxb:globalBindings generateIsSetMethod="true"/>
  2. si dispone di un file di collegamento esterno che specifica: <jaxb:globalBindings generateIsSetMethod="true"/>
  3. si specifica una proprietà da il plug-in Maven per generare i metodi isSet.
+0

Anche se ho risposto alla mia domanda prima di rispondere, ma ancora questa è la risposta corretta e informativa, quindi un grande sì. – adi

Problemi correlati