JAXB XJC Two declarations cause a collision. Customized binding cannot be honored
10,795
A very good answer is here:
http://blog.lunatech.com/2008/10/17/generating-kml-restful-clients
In short, use <jaxb:factoryMethod name="RequiredList2"/>
customization.
Author by
hansi
Updated on June 04, 2022Comments
-
hansi almost 2 years
I would like to generate JAXB classes from this schema file: http://www.taxonx.org/schema/v1/taxonx1.xsd
I resolved a couple of naming collisions caused by the imported mods-3-1.xsd using customized bindings as follows:
<jxb:bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" version="2.1"> <jxb:bindings schemaLocation="http://www.loc.gov/standards/mods/v3/mods-3-1.xsd"> <jxb:bindings node="//xsd:complexType[@name='relatedItemType']/xsd:attribute[@name='type']"> <jxb:property name="type2" /> </jxb:bindings> <jxb:bindings node="//xsd:attributeGroup[@name='language']/xsd:attribute[@name='lang']"> <jxb:property name="lang2" /> </jxb:bindings> <jxb:bindings node="//xsd:complexType[@name='titleInfoType']/xsd:complexContent/xsd:extension/xsd:attribute[@name='type']"> <jxb:property name="type3" /> </jxb:bindings> <jxb:bindings node="//xsd:complexType[@name='nameType']/xsd:attribute[@name='type']"> <jxb:property name="type4" /> </jxb:bindings> <jxb:bindings node="//xsd:complexType[@name='unstructuredText']/xsd:simpleContent/xsd:extension/xsd:attribute[@name='type']"> <jxb:property name="type5" /> </jxb:bindings> </jxb:bindings> </jxb:bindings>
When I want to generate classes I still get the following error:
parsing a schema... compiling a schema... [ERROR] Two declarations cause a collision in the ObjectFactory class. line 468 of http://digir.net/schema/conceptual/darwin/manis/1.21/darwin2.xsd [ERROR] (Related to above error) This is the other declaration. line 326 of http://digir.sourceforge.net/schema/protocol/2003/1.0/digir.xsd Failed to produce code.
When I add another customized binding..
<jxb:bindings schemaLocation="http://digir.net/schema/conceptual/darwin/manis/1.21/darwin2.xsd"> <jxb:bindings node="//xsd:element[@name='requiredList' and @substitutionGroup='digir:requiredList']"> <jxb:property name="requiredList2" /> </jxb:bindings> </jxb:bindings>
I get another error:
parsing a schema... [ERROR] compiler was unable to honor this property customization. It is attached to a wrong place, or its inconsistent with other bindings. line 34 of file:/C:/git/charaparser%20-%20Copy/resources/io/darwinCore/mods-3-1- bindings.xml [ERROR] (the above customization is attached to the following location in the schema) line 468 of http://digir.net/schema/conceptual/darwin/manis/1.21/darwin2.xsd Failed to parse a schema.
Any ideas how to solve this?