adi*_*adi 7 java schema xsd jaxb
我正在使用JAXB在Maven中使用JAXB插件从XSD生成bean.这工作正常,期望代码包含每个字段的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);
}
Run Code Online (Sandbox Code Playgroud)
这个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>
Run Code Online (Sandbox Code Playgroud)
这也回答了我之前的问题.
默认情况下,JAXB(JSR-222)实现不会生成isSet方法.因为你得到它们之一必须是真的:
<jaxb:globalBindings generateIsSetMethod="true"/><jaxb:globalBindings generateIsSetMethod="true"/>isSet方法.