错误:在xs:choice的情况下,无法通过xjc解析架构

Rah*_*kur 4 java xsd jaxb

我想使用jaxb从模式生成java类,但是我从xjc得到一个解析错误.我有2个元素包装在一个选择中,然后其中一个元素在选择后再次重复:

<xs:element name="A">
  <xs:complexType>
    <xs:choice>
      <xs:sequence maxOccurs="unbounded">
        <xs:element ref="X"/>
        <xs:element ref="Y"/>
      </xs:sequence>
      <xs:element ref="Y"/>
    </xs:choice>
  </xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

jaxb投掷:

[ERROR] Element "{*something*}Y" shows up in more than one properties.
 line *something* of file:/*something*.xsd
Run Code Online (Sandbox Code Playgroud)

PS:我的jaxb版本是2.1.13

Pet*_*dea 6

在SO上看一下这篇文章.解决方案是提供一个自定义绑定文件,将您的Y映射到选择之外,以使用另一个属性名称.

我可能还会将重复序列映射到具有两个属性(X和Y)的类,但这是其他的东西.

我还尝试了一个测试模式(源自你的,只是为X和Y添加了虚拟复杂元素)和免费的NetBeans IDE 7.1版本,它不需要自定义绑定文件就可以了.我使用的JAXB版本是2.2.4