我正在使用JAXB(xjc版本2.2.4-2)从XML Schema生成Java类.映射到Java原始数据类型的XML类型不会添加:
@XmlElement(required = true)
Run Code Online (Sandbox Code Playgroud)
例如,使用时:
<element name="userId" type="long"/>
<element name="userName" type="string"/>
Run Code Online (Sandbox Code Playgroud)
将导致:
//no annotation added here
protected long userId;
@XmlElement(required = true)
protected String userName;
Run Code Online (Sandbox Code Playgroud)
有没有人解释为什么会这样?
这有什么与您可以使用xjc设置的选项有关吗?
您不需要注释来显示需要Java类型的属性,long因为原始值不能为null这是隐含的.类型xs:long映射到Java 的非可填充必需元素long,可选或可映射的元素映射到java.lang.Long(允许null,表示不存在或xsi:nil适当时).
一个既可选又可以为 nillable 的元素(奇数,但XML Schema允许)将映射到a JAXBElement<Long>以区分缺席(a null JAXBElement)和nil(非null JAXBElement,isNil()返回true).
| 归档时间: |
|
| 查看次数: |
5924 次 |
| 最近记录: |