7

MavenでJAXBプラグインを使用してXSDからBeanを生成するためにJAXBを使用しています。これは正常に機能しています。コードに各フィールドのisSetXXXXXX()メソッドが含まれていることを期待してください。

例えば

フィールド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でこれらを生成したくありません。

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

ありがとう。

アップデート

これを解決しました:問題は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>

そして、これは私の前の質問にも答えました。

4

1 に答える 1

9

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

  1. 以下を指定するスキーマ注釈を作成できます。 <jaxb:globalBindings generateIsSetMethod="true"/>
  2. 以下を指定する外部バインディングファイルがあります。 <jaxb:globalBindings generateIsSetMethod="true"/>
  3. メソッドを生成するために、Mavenプラグインにプロパティを指定していisSetます。
于 2012-10-12T14:10:07.187 に答える