我有两个元素的xsd:" state"和"州"。当我使用maven-jaxb2-plugin执行XJC时,我收到以下错误:
<xsd:element name="state" type="xsd:string" minOccurs="0" maxOccurs="1" />
.
.
.
<xsd:element name="State" type="xsd:string" minOccurs="0" maxOccurs="1" />
SAXParseException2: Two declarations cause a collision in the ObjectFactory class
这是预期的,因为它试图用&#34; S tate&#34;转换元素。到&#34; s tate&#34;内部导致与现有的&#34;状态&#34;发生冲突。我的问题是,有没有办法维持案例?
注意:我知道首先使用相同的元素名称并不理想,但不幸的是,我无法控制更改XSD。
答案 0 :(得分:1)
为什么不使用jaxb:class
或jaxb:factoryMethod
自定义来避免命名绑定?
类似的东西:
<jaxb:bindings node="xs:element[@name='state']">
<jaxb:factoryMethod name="LowerState"/>
</jaxb:bindings>