Enums 如何使用jaxb2基础注释对枚举进行注释?
我使用maven-jaxb2-plugin和jaxb2基础注释插件从我的xsd自动生成pojo。我已经成功地在POJO中生成了注释。我需要对枚举中的方法应用注释,但无法确定如何进行 xsd已经Enums 如何使用jaxb2基础注释对枚举进行注释?,enums,jaxb,maven-jaxb2-plugin,jaxb2-basics,jaxb2-annotate-plugin,Enums,Jaxb,Maven Jaxb2 Plugin,Jaxb2 Basics,Jaxb2 Annotate Plugin,我使用maven-jaxb2-plugin和jaxb2基础注释插件从我的xsd自动生成pojo。我已经成功地在POJO中生成了注释。我需要对枚举中的方法应用注释,但无法确定如何进行 xsd已经 <xsd:simpleType name="DeliveryStatus"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="DeliveredToTerminal" /&
<xsd:simpleType name="DeliveryStatus">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="DeliveredToTerminal" />
<xsd:enumeration value="DeliveryUncertain" />
<xsd:enumeration value="DeliveryImpossible" />
<xsd:enumeration value="DeliveredToNetwork" />
<xsd:enumeration value="MessageWaiting" />
<xsd:enumeration value="DeliveryNotificationNotSupported" />
</xsd:restriction>
</xsd:simpleType>
我需要的是向上面的value方法添加JsonValue注释
我尝试了以下和其他一些调整,但在binding.xjb中没有任何效果
<jaxb:bindings node="xs:simpleType[@name='DeliveryStatus']">
<annox:annotate target="field">
<annox:annotateEnum annox:class="org.codehaus.jackson.annotate.JsonValue"/>
</annox:annotate>
</jaxb:bindings>
有一种叫做annotateEnum的东西吗?它能工作吗?如果能,怎么工作
请帮助。免责声明:我是本书的作者 是的,有一个
annotateEnum
自定义元素(请参阅)。但它仅将注释应用于enum类本身,即应用于公共enum DeliveryStatus{…}
。因此,这并不能解决value()
的问题,目前无法对其进行注释
请在此处提交问题:
annotateEnumValueMethod
处理程序,类似于annotateEnum
的操作方式。唯一棘手的部分是,您需要注释的不是类而是value()
方法,但这并不困难。我在这里对PRs开放
希望能有所帮助。@lexicore希望您能提供帮助谢谢您的快速回复。这是一个模拟器代码,所以我只想做一个小的改动,而不是花很多时间在上面。噢,谢谢你的出色工作!继续:)@KalhariLiyanagama,但请务必提交一个问题。也许我什么时候能找到。感谢您的反馈。:)到目前为止,
annotateEnumValueMethod
已经实现(谢谢@lexicore!),但我无法让它在这个问题中描述的用例中工作。我试过:@JsonValue@org.codehaus.jackson.annotate.JsonValue@com.fasterxml.jackson.core.annotate.JsonValue
,但没有效果@lexicore,你能给我一个建议吗?谢谢大家!@PavelA请在此处向我发送一份带有复制项目的PR:ase/enumValue
。我来看看。谢谢你的快速回复。这是一个封闭源代码的项目,所以我将尝试创建一个简单的项目来说明这个问题,然后发送一个PR。
<jaxb:bindings node="xs:simpleType[@name='DeliveryStatus']">
<annox:annotate target="field">
<annox:annotateEnum annox:class="org.codehaus.jackson.annotate.JsonValue"/>
</annox:annotate>
</jaxb:bindings>