【发布时间】:2014-04-05 05:11:14
【问题描述】:
我有一个带有嵌入式架构的 WSDL,其中包含一些带有枚举的 simpleType 限制:
<element name="employeeId">
<simpleType>
<restriction base="string">
<maxLength value="2"/>
<enumeration value="EL"/>
</restriction>
</simpleType>
</element>
(是的,我知道该示例只有一个枚举值。) 在早期的一些特定于供应商的工具中,它们会生成 Java 枚举,但在我当前的 wsimport (JAX-WS RI 2.2.4-b01) 中它们不是。
我进行了很多搜索,其中发现了很多关于自定义映射的讨论。我可能不愿意手动映射单个类和值,所以我试图找到一些有效的语法来全局执行此操作。
然而,我的大部分阅读似乎表明默认应该是创建这些枚举: https://jaxb.java.net/tutorial/section_2_2_9-Defining-an-Enumeration.html#Defining%20an%20Enumeration
如果您不想要它们,则必须明确禁用它们。例如https://jaxb.java.net/nonav/2.2.5-5/docs/ch03.html#compiling-xml-schema-avoid-strong-databinding
这应该是正确的吗?如果是这样,有什么想法为什么没有发生?
另外一个问题,枚举生成是否也应与xsd:token 一起发生,还是仅与xsd:string 一起发生?
【问题讨论】:
-
遇到类似问题,不介意这个问题得到一些 TLC。
-
我也遇到了同样的问题! Apache XMLBeans 按预期工作(生成枚举),但 JAX-WS 2 不行!见:stackoverflow.com/questions/4235074/…
-
奇怪的是,我认为我的一些枚举正在生成枚举,但不是这个。还没有尝试看看它们之间有什么不同。在这两种情况下都没有自定义设置或映射。
标签: java jaxb xsd wsdl wsimport