XSD 的 XJC 错误,其中 2 个元素名称相同但大小写不同
XJC error for XSD with 2 elements with same name but different case
我有 xsd,其中包含 2 个元素:"state" 和 "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
这是预期的,因为它试图在内部将带有“State”的元素转换为“state”,这会导致与已经存在的 "state" 冲突。我的问题是,有没有办法保持大小写?
注意:我知道首先使用相同的元素名称并不理想,但不幸的是,我无法控制更改 XSD.
为什么不使用 jaxb:class
或 jaxb:factoryMethod
自定义来避免命名冲突?
类似于:
<jaxb:bindings node="xs:element[@name='state']">
<jaxb:factoryMethod name="LowerState"/>
</jaxb:bindings>
我有 xsd,其中包含 2 个元素:"state" 和 "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
这是预期的,因为它试图在内部将带有“State”的元素转换为“state”,这会导致与已经存在的 "state" 冲突。我的问题是,有没有办法保持大小写?
注意:我知道首先使用相同的元素名称并不理想,但不幸的是,我无法控制更改 XSD.
为什么不使用 jaxb:class
或 jaxb:factoryMethod
自定义来避免命名冲突?
类似于:
<jaxb:bindings node="xs:element[@name='state']">
<jaxb:factoryMethod name="LowerState"/>
</jaxb:bindings>