Java枚举和XML Beans?

3
当使用Apache XML Beans从xsd:enumeration类型生成类型时,XMLBeans会生成自定义类,这些类不是Java 5枚举,而是一种特殊的类来表示枚举。
这可能是因为XMLBeans早于Java 5,并且在当时还没有枚举,或者您仍然希望保持Java 1.4兼容性。但是,我想要“真正”的枚举类型,所以我的问题是:有没有办法使用Apache XML Beans生成Java 5枚举?
(Jaxb可以像我想要的那样做到这一点,但我不确定是否要删除XMLBeans并引入Jaxb只为了这个细节。)
1个回答

1

我认为你不能用XML beans实现你想要的东西。你甚至自己提到了原因。我建议你转向JaxB。

但是,如果你真的希望继续使用XML beans,我建议你使用一个补丁。你可以后处理生成的类并将它们转换为枚举。我以前用ant任务做过类似的事情。有一些ant任务可以执行字符串替换,所以这不是问题。最坏的情况是你可以在Java中实现自己的任务。但我相信你不需要这么做。我认为这是最简单的解决方案。

祝好运。


谢谢您的回答。是的,我提到了他们最初未包含此功能的原因。然而,我希望他们可以添加一些标志来启用Java 5的功能。 - Tim Büthe
你知道吗?我再次思考后,现在认为即使这个标志不存在,你也可以解决问题。我不确定,但通常在Jakarta项目中使用速度进行代码生成。如果是正确的,该项目应包含每种类型类的速度模板。可能你可以更改处理枚举的模板? - AlexR
我不知道他们是否使用速度,但我可以在一些后处理中更改类,执行搜索替换操作。问题是,我还需要所有使用该枚举的类。我不确定整个过程是否值得麻烦。 - Tim Büthe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接