2012-10-12 58 views
7

Estoy usando JAXB para generar beans de XSD usando un plugin de JAXB en Maven. Esto funciona bien, esperamos que el código contenga los métodos isSetXXXXXX() para cada campo.JAXB Bean Generation

p. Ej.

para un campo primerNombre, se está produciendo el siguiente código:

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

Este método isSetFirstName() está causando problemas y no quiero JAXB para generar estos.

¿Hay alguna manera de detener este comportamiento?

Gracias.

ACTUALIZACIÓN

resuelto este: El problema era que en el archivo xjb, generateIsSetMethod se establece en 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> 

Y este respondió a mi previous question también.

+0

Hola, adi, tu fragmento XML actualizado no es XML válido, ¿está> después de que 'generateIsSetMethod =" true "' esté ahí? –

Respuesta

8

De forma predeterminada, una implementación JAXB (JSR-222) no generará los métodos isSet. Ya que los está recibiendo uno de lo siguiente debe ser verdadera:

  1. Puede una anotación de esquema que especifica: <jaxb:globalBindings generateIsSetMethod="true"/>
  2. tiene un archivo de unión externa que se especifique: <jaxb:globalBindings generateIsSetMethod="true"/>
  3. Está especificando una propiedad de el complemento Maven para generar los métodos isSet.
+0

Aunque respondí mi pregunta antes de responder, pero aún así esta es la respuesta correcta e informativa, por lo que un gran sí. – adi