JAXB:typesafeEnumMemberName =“generateName”是否可自定义?

时间:2016-05-06 18:22:04

标签: java jaxb cxf-codegen-plugin

我在导入具有带数字枚举的XSD的WSDL时遇到了一些问题。

typesafeEnumMemberName =“generateName”添加到我的全局绑定中解决了它,但生成的枚举项目毫无意义......

示例:

<simpleType name="dm_UF">
    <restriction base="string">
        <length value="2"/>
        <enumeration value="50"/>
        <enumeration value="51"/>
        <enumeration value="52"/>
        <enumeration value="53"/>
        <enumeration value="98"/>
    </restriction>
</simpleType>


@XmlEnumValue("50")
VALUE_24("50"),

@XmlEnumValue("51")
VALUE_25("51"),

@XmlEnumValue("52")
VALUE_26("52"),

@XmlEnumValue("53")
VALUE_27("53"),

@XmlEnumValue("98")
VALUE_28("98");

我希望 VALUE_ + itemValue 取代 VALUE_ + itemPalue ,以避免开发人员犯错误。

更改XSD不是一个选项,因为它是一个政府标准,还有很多其他数字枚举,其中一些包含数千个项目......

我正在使用cxf-codegen-plugin版本3.1.5 + krasa-jaxb-tools 1.4

有可能吗?

由于

1 个答案:

答案 0 :(得分:0)

我错过了使用枚举生成的 fromValue 方法。

所以不要做GeneratedEnum.VALUE_<<itemPosition>>

我可以GeneratedEnum.fromValue("<<itemValue>>")