gpt4 book ai didi

java - 使用 JAXB 生成 Java 原始类型的 XML 模式类型不添加 required 到它

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:02:51 24 4
gpt4 key购买 nike

我正在使用 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 类型的不可空必需元素映射到 Java long ,一个可选的或可空的映射到 java.lang.Long (允许 null ,代表缺席或 xsi:nil 视情况而定)。

同时可选可为空(奇数,但 XML 模式允许)的元素将映射到 JAXBElement<Long>区分 absent (a null JAXBElement ) 和 nil (a non-null JAXBElement which isNil() returns true).

关于java - 使用 JAXB 生成 Java 原始类型的 XML 模式类型不添加 required 到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13801401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com