【发布时间】:2017-12-27 17:28:44
【问题描述】:
我在从深度嵌套的 xsd 元素生成枚举时遇到问题。当我在 Maven 构建期间生成代码时,我的枚举是字符串类型。这是一个例子。
<xs:element name="Car">
<xs:complexType>
<xs:sequence>
<xs:element name="CarModal">
<xs:complexType>
<xs:sequence>
<xs:element name="Type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="SomeValue"/>
<xs:enumeration value="AnotherValue"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:completType>
</xs:element>
</xs:sequence>
从上面的示例中,我们将在 Car 元素内有另外 20 个元素,其中包含枚举值名称“Type”。我有一个绑定文件将“类型”绑定到 jaxb:typesafeEnumClass 但它不起作用,我仍然将字符串作为我的枚举类型。这是我的绑定示例。
<jaxb:bindings schemaLocation="someLocation">
<jaxb:bindings node="//xs:element[@name='Car']>
<jaxb:bindings node="//xs:element[@name='CarModal']">
<jaxb:bindings node="xs:element[@name='Type']/xs:simpleType>
<jaxb:typesafeEnumClass name="Type"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
感谢您的帮助,我无法更改 xsd
【问题讨论】: