2012-10-12 14 views
7

MavenでJAXBプラグインを使用してXSDからBeanを生成するためにJAXBを使用しています。 これは問題なく動作しています。コードに各フィールドのisSetXXXXXX()メソッドが含まれていることが必要です。JAXB Bean Generation

フィールドため

firstNameの、以下のコードを生成します

@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は、これらを生成する必要はありません。

この動作を停止する方法はありますか?

ありがとうございました。

UPDATE

これを解決します。問題は、XJBファイルにあった、generateIsSetMethodが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> 

これは私のprevious questionにも回答しました。

+0

あなたの更新されたXMLスニペットは有効なXMLではありません、 'generateIsSetMethod =" true "の後に>は存在するのでしょうか? –

答えて

8

デフォルトでは、JAXB(JSR-222)実装ではisSetのメソッドは生成されません。あなたがそれらを得ているので、次のいずれかを満たしている必要があります

  1. することはでき指定するスキーマ注釈:あなたはにプロパティを指定している<jaxb:globalBindings generateIsSetMethod="true"/>
  2. を:
  3. <jaxb:globalBindings generateIsSetMethod="true"/>あなたが指定する外部バインディングファイルを持っていますMavenプラグインを使用してisSetメソッドを生成します。
+0

私はあなたが答える前に私の質問に答えましたが、それでもこれは正解で有益な答えです。 – adi