[ACCEPTED]-JAXB objects initialized with default values-default-value
default value that is in annotations works 5 only after unmarshalling.
unmarshal this
<document>
<d_int/>
<d_double/>
<d_string/>
</document>
and you will 4 get object with default values (-1, -1.0, "Default")
If 3 you want set default values to marshalling, you 2 should do this
public class Document {
@XmlElement(name = "d_int", defaultValue = "-1")
protected int dInt = 100;
@XmlElement(name = "d_double", defaultValue = "-1.0")
protected double dDouble = -100;
@XmlElement(name = "d_string", required = true, defaultValue = "Default")
protected String dString = "def";
...
}
jaxb generate default values 1 only for unmarshalling
For an initialization of the class members 7 from XSD supplied defaults, you can use 6 the default-value-plugin of XJC.
See the 5 website of the plugin.
Note that the ant task definition as explained 4 in that documentation did not work for me. As explained here, the 3 class paths for XJC and the plugin have 2 to be separated. Specifying the path to 1 the plugin when calling it works for me:
<xjc schema="some.xsd" >
<arg value="-Xdefault-value"/>
<classpath>
<pathelement location="lib/xjc-plugins/jaxb2-default-value-1.1.jar"/>
</classpath>
</xjc>
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.