java-JAXB-从XSD生成类-将枚举转换为除枚举名称之外的自定义toString()

使用JAXB,我们直接生成Java Bean.在XSD中,我们有一个枚举类型(例如):

<xs:simpleType name="ColorType">
   <xs:restriction base="xs:string">
   <xs:enumeration value="Red"/>
   <xs:enumeration value="Blue"/>
   <xs:enumeration value="Green"/>
</xs:restriction> </xs:simpleType>

在数据库中,我们可能有红色,黑色和绿色的标志,例如R,B和G.从某种意义上说,我们的标志只有一个字母词.我想枚举,例如… ColorType.Red.toString()等于R …或类似的东西,以便我可以将R链接到它.现在,我正在使用一些条件语句手动检查枚举类型,然后在插入或进行任何数据库操作时将其转换回字符串.

我想到了一些愚蠢的解决方案(愚蠢的,因为这些解决方案不好)
我认为一种解决方案可以使用

<xs:enumeration value="R">

但这并不能告诉我什么是R.

第二种解决方案是将ColorType设置为字符串,但这意味着我的ColorType甚至可以是Z,这在数据库中不是任何颜色,以某种方式来说,它是不受限制的.

上一篇:对话树XML表示为Java对象


下一篇:java-如何使用JAXB按原样读写XML元素?