gpt4 book ai didi

java - 修复丢失的@XmlRootElement 问题后类名错误

转载 作者:数据小太阳 更新时间:2023-10-29 02:41:14 26 4
gpt4 key购买 nike

我有 xsd,它使用著名的约定:

<xsd:element name="name" type="Type">
<!-- ... -->
</xsd:element>

<xsd:complexType name="Type">
<!-- ... -->
<xsd:complexType/>

因此,当我使用 xjc 工具生成类时,我没有 @XmlRootElement 注释。我在 stackoverflow 上找到了一个解决方案,即对 xjc 使用简单绑定(bind):

<jxb:bindings schemaLocation="myschema.xsd" node="/xs:schema">
<jxb:globalBindings>
<xjc:simple/>
</jxb:globalBindings>
</jxb:bindings>

当我使用带有 -extension -b 标志的 xjc 生成类时,我得到了 XmlRootElement 注释。问题是,该类的名称不再正确。我希望拥有使用“”作为根元素的类“Type”。但是我收到了“名称”类。

我在这个问题上花了将近 2 天...

有什么方法可以创建具有正确名称和 XmlRootElement 注释的类吗?

最佳答案

使用xjc:simple 扩展

生成的类名没有错,只是类名是从全局元素而不是复杂类型派生的。

标准行为

如果没有 xjc:simple 扩展,对应于命名复杂类型的全局元素将在 ObjectFactory 类上有一个相应的 @XmlElementDecl 注释。因此,该对象将在编码和解码期间包装在 JAXBElement 的实例中。

了解更多信息

关于java - 修复丢失的@XmlRootElement 问题后类名错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16921622/

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