【发布时间】:2016-09-09 06:58:18
【问题描述】:
问题来了,我们的合约是 XSD 文件。最近我们希望它支持Json。但是我们必须解决一些棘手的问题。当我这样定义 xsd 时:
<xs:simpleType name="SomeType">
<xs:restriction base="xs:string">
<xs:enumeration value="SomeSelfDefineType" />
</xs:restriction>
</xs:simpleType>
生成的代码是这样的:
@XmlType(name = "SomeType")
@XmlEnum
public enum SomeType {
@XmlEnumValue("SomeSelfDefineType")
SOME_SELF_DEFINE_TYPE("SomeSelfDefineType")
}
使用XML的时候没问题,因为它读取注解信息,但是当我们使用Json时,SomeSelfDefineType会被转入SOME_SELF_DEFINE_TYPE。注册很多自定义Gson serializable/deserializable Interface来解决这个问题对我来说不是一个好的选择。
我已经查看了其他关于如何自定义字段或枚举名称的答案,但我确实有很多枚举定义。是否有任何插件或解决方案可以让我生成这样的代码:
@XmlType(name = "SomeType")
@XmlEnum
public enum SomeType {
@XmlEnumValue("SomeSelfDefineType")
SomeSelfDefineType("SomeSelfDefineType")
}
我不熟悉 JAXB 或其插件,谁能给我一些 xjb 设置或插件来解决这个问题?
【问题讨论】: