我正在使用 JAXB(xjc 版本 2.2.4-2)从 XML 架构生成 Java 类。映射到 Java 原始数据类型的 XML 类型不会添加:
@XmlElement(required = true)
例如使用时:
<element name="userId" type="long"/>
<element name="userName" type="string"/>
将导致:
//no annotation added here
protected long userId;
@XmlElement(required = true)
protected String userName;
有谁有解释为什么会发生这种情况?
这是否与您可以使用 xjc 设置的选项有关?
您不需要注释来显示 Java 类型的属性long
是必需的,因为这是隐式的,因为原始值不能为空。类型的不可空必需元素xs:long
映射到 Javalong
,可选的或可空的映射到java.lang.Long
(这允许null
,代表缺席或xsi:nil
作为适当的)。
一个元素是both选修的andnillable(奇怪,但 XML Schema 允许)将映射到JAXBElement<Long>
区分缺席(anull
JAXBElement
) 和 nil (非空JAXBElement
whose isNil()
返回真)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)