2012-10-12 14 views
7

Używam JAXB do generowania fasoli z XSD za pomocą wtyczki JAXB w Maven. To działa poprawnie, spodziewaj się, że kod zawiera metody isSetXXXXXX() dla każdego pola.JAXB Bean Generation

np.

na polu FIRSTNAME, to produkuje następujący kod:

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

Ta metoda isSetFirstName() jest przyczyną problemów i nie chcę JAXB do generowania tych.

Czy istnieje sposób, aby zatrzymać to zachowanie?

Dzięki.

UPDATE

rozwiązać ten: Problem był w pliku xjb, generateIsSetMethod została ustawiona na wartość 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> 

A ten odpowiedział na moje previous question również.

+0

Hej, twój zaktualizowany fragment kodu XML jest nieprawidłowy XML, czy> po 'generateIsSetMethod =" true "' ma być tam? –

Odpowiedz

8

Domyślnie implementacja JAXB (JSR-222) nie generuje metod isSet. Ponieważ są ich coraz jeden z następujących musi być prawdą:

  1. Można adnotacji schematu, który określa: <jaxb:globalBindings generateIsSetMethod="true"/>
  2. Masz zewnętrznego pliku wiązania, który określa: <jaxb:globalBindings generateIsSetMethod="true"/>
  3. określasz obiekt do wtyczka Maven do generowania metod isSet.
+0

Chociaż odpowiedziałem na moje pytanie, zanim odpowiedziałeś, ale wciąż jest to poprawna i pouczająca odpowiedź, tak duże tak. – adi

Powiązane problemy