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.

Share:
10,795
hansi
Author by

hansi

Updated on June 04, 2022

Comments

  • hansi
    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?