关于JAXB有个小问题。
给定:
- Java 1.5; jaxb -jars from jaxws-2_0.
- .xsd模式和生成的JAXB类。
- .xsd中的每个简单元素都具有默认值。因此,类成员具有注释,如"@XmlElement(name = "cl_fname", required = true, defaultValue = "[______]")"
要求:
获取代表xml的java对象(根元素),并且每个成员都使用默认值初始化。
当我尝试编组没有显式设置值的xml时,默认值没有意义...是否存在一种方法可以编组填充了默认值的xml而不需要自定义生成的类?
.xsd示例:
<xs:element name="document">
<xs:complexType>
<xs:sequence>
<xs:element ref="d_int"/>
<xs:element ref="d_double"/>
<xs:element ref="d_string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="d_int" type="xs:int" default="-1"/>
<xs:element name="d_double" type="xs:double" default="-1.0"/>
<xs:element name="d_string" type="xs:string" default="false"/>
并且是Java类:
public class Document {
@XmlElement(name = "d_int", defaultValue = "-1")
protected int dInt;
@XmlElement(name = "d_double", defaultValue = "-1.0")
protected double dDouble;
@XmlElement(name = "d_string", required = true, defaultValue = "Default")
protected String dString;
...
}
defaultValue
,那么分配给字段的值是否将成为反编组和编组的默认值,或者在反编组时没有默认值?(例如,如果您取消dInt
的defaultValue =“-1”
,那么100
是否也是反编组的默认值?) - mapeters