jaxb2 を使用して、一部の外部データの xml スキーマ定義から Java コードを生成しています。このプロジェクトはかなり古く、maven-jaxb-plugin 1.1.1 を使用していました。jaxb2 も使用する jaxb2-maven-plugin に更新したいのですが、生成されたコードにいくつかの違いが見つかりました。具体的には、次の形式の属性があります。
<xsd:attribute name="num" type="xsd:int" use="optional">
Integer
生成されたコードのフィールドにマップされます。
@XmlAttribute(name = "num")
protected Integer num;
ただし、jaxb2 は、null 許容型ではなくプリミティブ型でゲッターとセッターを生成します。
public int getNum() {
return num;
}
public void setNum(int value) {
this.num = value;
}
public boolean isSetNum() {
return (this.num!= null);
}
public void unsetNum() {
this.num = null;
}
ただし、現在のコードではgetNum
、 が null 許容のボックス化された型を返すことを前提としており、null ポインター例外で失敗する単体テストでこれをテストしています。
オプションの属性に null 許容型のゲッター/セッターを生成する方法はありますか? xsd ファイルは外部ベンダーから提供されているため、変更したくありません。optionalProperty
には設定しない<globalBindings>
ので、値はデフォルトですwrapper
。