使用默认值初始化JAXB对象
JAXB没有什么问题。使用默认值初始化JAXB对象,jaxb,xsd,default-value,Jaxb,Xsd,Default Value,JAXB没有什么问题。 给定: Java1.5;jaxb-jars来自jaxws-2_0 .xsd方案和生成的JAXB类 .xsd中的每个简单元素都有默认值。因此类成员具有如下注释 “@XmlElement(name=“cl\u fname”,required=true,defaultValue=“[\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu]”” 必需的 获取java对象(根元素),该对象完全表示xml和由默认值初始化的每个成员 当我尝试在不显式
给定:
- Java1.5;jaxb-jars来自jaxws-2_0
- .xsd方案和生成的JAXB类
- .xsd中的每个简单元素都有默认值。因此类成员具有如下注释 “@XmlElement(name=“cl\u fname”,required=true,defaultValue=“[\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu]””
必需的
获取java对象(根元素),该对象完全表示xml和由默认值初始化的每个成员
当我尝试在不显式设置值的情况下处理xml时,默认值没有意义。。。是否有任何方法可以在不自定义生成的类的情况下,对使用默认值填充的xml进行整理 .xsd的示例:
和java类:
公共类文档{
@XmlElement(name=“d_int”,defaultValue=“-1”)
保护内力;
@XmlElement(name=“d_double”,defaultValue=“-1.0”)
双保护双工;
@xmlement(name=“d_string”,required=true,defaultValue=“Default”)
受保护字符串;
...
}
注释中的默认值仅在解组后有效。解开这个
<document>
<d_int/>
<d_double/>
<d_string/>
</document>
jaxb仅为解组生成默认值要从XSD提供的默认值初始化类成员,可以使用XJC的默认值插件 看 请注意,该文档中解释的ant任务定义不适用于我,XJC和插件的类路径必须分开。调用插件时指定插件路径对我有效:
<xjc schema="some.xsd" >
<arg value="-Xdefault-value"/>
<classpath>
<pathelement location="lib/xjc-plugins/jaxb2-default-value-1.1.jar"/>
</classpath>
</xjc>
我一直在想,如果您还指定了一个defaultValue
,那么将字段标记为required
有什么意义呢。这似乎有点矛盾,不是吗?如果您不使用默认值
,那么分配给字段的值是用于解组和编组的默认值,还是没有用于解组的默认值?(例如,如果为力取下defaultValue=“-1”
,则100
是否也是解组的默认值?)
<xjc schema="some.xsd" >
<arg value="-Xdefault-value"/>
<classpath>
<pathelement location="lib/xjc-plugins/jaxb2-default-value-1.1.jar"/>
</classpath>
</xjc>