我正在尝试使用 Maven
int
从简单类型的基础 maven-jaxb2-plugin
生成枚举。但没有生成任何枚举。
我可以看到生成器正在使用绑定文件,因为如果找不到映射,它会抛出错误。
当我将基数更改为
string
时,会生成枚举(但不允许我更改基数)。
那么我是否配置错误,或者根本不可能?
xsd-摘录:
<xs:simpleType name="codeType">
<xs:restriction base="xs:int">
<xs:enumeration value="200"/>
<xs:enumeration value="400"/>
</xs:restriction>
</xs:simpleType>
绑定文件摘录:
<jaxb:bindings schemaLocation="some.xsd">
<jaxb:bindings node="//xs:simpleType[@name='codeType']/xs:restriction/xs:enumeration[@value='200']">
<jaxb:typesafeEnumMember name="OK" />
</jaxb:bindings>
<jaxb:bindings node="//xs:simpleType[@name='codeType']/xs:restriction/xs:enumeration[@value='400']">
<jaxb:typesafeEnumMember name="BAD_REQUEST" />
</jaxb:bindings>
</jaxb:bindings>
我终于设法生成了枚举。
绑定文件摘录:
<jaxb:bindings schemaLocation="some.xsd">
<jaxb:bindings node="//xs:simpleType[@name='codeType']">
<jaxb:typesafeEnumClass>
<jaxb:typesafeEnumMember value="200" name="OK" />
<jaxb:typesafeEnumMember value="400" name="BAD_REQUEST" />
</jaxb:typesafeEnumClass>
</jaxb:bindings>
</jaxb:bindings>
参见15.4。自定义枚举映射 - Red Hat JBoss Fuse 6.0 使用 JAX-WS 开发应用程序 了解更多详细信息。