【问题标题】:How to control the JAXB enumerations that are generated如何控制生成的 JAXB 枚举
【发布时间】:2017-01-23 11:22:59
【问题描述】:

我有一个一般性问题,如果需要,我会提供更多信息。我有一个生成多个枚举的模式。我能够使用以下方法增加枚举数:

    typesafeEnumMaxMembers="34431"

这解决了创建枚举的直接问题。但实际情况是,它在一类中生成了超过 65k 的常量。这超出了java的限制。我如何为这些数据使用另一个数据结构?我有一个省略枚举的模式,但它似乎仍然会生成它们。

我的目标是看看是否有人遇到过这种事情。如果可能,我宁愿不以任何方式更改架构。我已经阅读了 JAXB 文档并尝试了各种方法,但似乎并没有解决我的问题。

任何见解将不胜感激。

谢谢,

戴夫

【问题讨论】:

    标签: java xml enums jaxb schema


    【解决方案1】:

    一般来说,如果 JAXB 由于字典太大而无法生成枚举,它会改为创建一个文本字段。

    如果您想将文本值转换为 bean 中的其他值,您始终可以使用 XMLAdapter 将值转换为您喜欢的某些自定义类型。您需要为相应的 getter/字段使用 @XmlJavaTypeAdapter 注释。

    【讨论】:

    • 我将研究 XMLAdapter。是否有任何绑定可以让我忽略此 XSD 或在类中自动生成一个空方法?
    • 不,因为方法绑定有效。绑定应该是 XML 和生成的 bean 之间的 1-1 映射。忽略 XML 元素会导致各种解组问题。可以通过使用 @XmlTransient 注释以相反的方式执行此操作(将生成的 bean 中的元素标记为未反映在架构中)。
    猜你喜欢
    • 2016-12-13
    • 2015-09-02
    • 2011-08-27
    • 1970-01-01
    • 2012-07-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多