我有一个类似这样的XSD:
<xsd:simpleType name="status">
<xsd:restriction base="xsd:string">
<xsd:pattern value="(open|closed)"/>
</xsd:restriction>
</xsd:simpleType>
有没有办法生成Java Enum?不幸的是,typesafeEnumClass
仅适用于Only simpleType definitions with enumeration facets can be customized using this binding declaration.
我知道我可以将它绑定到这样的Java类型:
<jaxb:bindings node="//xsd:simpleType [@name='status']">
<jaxb:javaType
name="package.ImplType"
parseMethod="package.ImplConv.parseStringToEnum"
printMethod="package.ImplConv.printEnumToString"/>
</jaxb:bindings>
但由于其他原因,这对我不起作用。
我只是想让XSD保持不变。
答案 0 :(得分:0)
编写自己的类Status
并自定义要使用该类映射的简单类型status
:
<jaxb:bindings node="xs:simpleType[@name='status']">
<jaxb:typesafeEnumClass ref="Status"/>
</jaxb:bindings>
在这种情况下,XJC将使用Status
类作为status
简单类型。
据我所知,源代码中的“typesafe-enum-capable”架构结构的检查是硬编码的。