[ERROR] Two declarations cause a collision in the ObjectFactory class, unsolved by bindings

View: New views
3 Messages — Rating Filter:   Alert me  

[ERROR] Two declarations cause a collision in the ObjectFactory class, unsolved by bindings

by Loïc Quéran-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

jaxb-ri-20090206 ...

Hereafter attached is an XSD from which I can't generate java classes. I have customized bindings to avoid naming conflicts, but there are still collisions in the ObjectFactory. The strange thing about this is that apparently similar bindings (binding.xjb line 99 and line 87) produce different results: the former fixes the ObjectFactory conflict, while the latter does not. I've tried to debug this. The problem comes from the instantiation of CElementInfo, but I can't find out why it is performed in some cases (is it linked to yet unresolved references ?), but not in all cases.

I attach:
1 ) The binding,
2 )  The XSD
3 ) The error log

Thanks in advance for any help.

Loïc

C:\jaxb-ri-20090206\samples\rapid>xjc -b binding.xjb work.xsd
parsing a schema...
compiling a schema...
[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1241 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1392 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1428 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1253 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2203 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 2167 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2049 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 2124 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1550 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1592 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1629 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1665 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1942 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 2020 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2037 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 2041 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

Failed to produce code.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...

work.xsd (133K) Download Attachment
binding.xjb (11K) Download Attachment

Re: [ERROR] Two declarations cause a collision in the ObjectFactory class, unsolved by bindings

by Wolfgang Laun-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Your schema isn't very well suited for code generation, and extremely not so for Java. Among other strange things, classes com.lqn.Object (with inner classes Integer, Long,...) and com.lqn.Class will be generated.

In most cases, it is sufficient to customize the element name with a property name and let xjc derive the class name, e.g.,
 <!-- Line 2050 -->
    <jxb:bindings node="xs:group[@name='returnTypes']/xs:choice/xs:element[@name='String']">
                  <!-- Customize Element interface name -->
<!--                <jxb:class name="ReturnTypeString"/>  -->
                  <jxb:property name="returnTypeString"/>
        </jxb:bindings>

Also, don't use property names beginning with an uppercase letter - these will be converted to lowercase anyway,

Second, it would be logical to customize the element node with a property, and the contained complexType with a class.

Third, I recommend to not use <xjc:simple />, as this may result in additional secondary conflicts, at least until all other problems have been resolved.

Still, after all this, you'll wind up with lots of two or three levels of inner class names resulting from the anonymous complex types. Using these in a program is going to cause a headache of the most ferocious kind.

Most regrettfully yours ;-)
-W

On Wed, Sep 16, 2009 at 3:00 PM, Loïc Quéran <loic.queran@...> wrote:
Hi,

jaxb-ri-20090206 ...

Hereafter attached is an XSD from which I can't generate java classes. I have customized bindings to avoid naming conflicts, but there are still collisions in the ObjectFactory. The strange thing about this is that apparently similar bindings (binding.xjb line 99 and line 87) produce different results: the former fixes the ObjectFactory conflict, while the latter does not. I've tried to debug this. The problem comes from the instantiation of CElementInfo, but I can't find out why it is performed in some cases (is it linked to yet unresolved references ?), but not in all cases.

I attach:
1 ) The binding,
2 )  The XSD
3 ) The error log

Thanks in advance for any help.

Loïc

C:\jaxb-ri-20090206\samples\rapid>xjc -b binding.xjb work.xsd
parsing a schema...
compiling a schema...
[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1241 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1392 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1428 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1253 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2203 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 2167 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2049 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 2124 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1550 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1592 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1629 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1665 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1942 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 2020 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2037 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 2041 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

Failed to produce code.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...


Re: [ERROR] Two declarations cause a collision in the ObjectFactory class, unsolved by bindings

by Loïc Quéran-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thank you very much for this fast and efficient support.

"Not suited for code generation [...]" : yes, and I had to fix things in the XSD to avoid "Unique Particle Attribution" violations ... I just want to convert from this format to another one. -> "a headache of the most ferocious kind."

property name -> class name : OK.

"customize the element node with a property, and the contained complexType with a class" : OK

Best regards,

Loïc

2009/9/16 Wolfgang Laun <wolfgang.laun@...>
Your schema isn't very well suited for code generation, and extremely not so for Java. Among other strange things, classes com.lqn.Object (with inner classes Integer, Long,...) and com.lqn.Class will be generated.

In most cases, it is sufficient to customize the element name with a property name and let xjc derive the class name, e.g.,
 <!-- Line 2050 -->
    <jxb:bindings node="xs:group[@name='returnTypes']/xs:choice/xs:element[@name='String']">
                  <!-- Customize Element interface name -->
<!--                <jxb:class name="ReturnTypeString"/>  -->
                  <jxb:property name="returnTypeString"/>
        </jxb:bindings>

Also, don't use property names beginning with an uppercase letter - these will be converted to lowercase anyway,

Second, it would be logical to customize the element node with a property, and the contained complexType with a class.

Third, I recommend to not use <xjc:simple />, as this may result in additional secondary conflicts, at least until all other problems have been resolved.

Still, after all this, you'll wind up with lots of two or three levels of inner class names resulting from the anonymous complex types. Using these in a program is going to cause a headache of the most ferocious kind.

Most regrettfully yours ;-)
-W

On Wed, Sep 16, 2009 at 3:00 PM, Loïc Quéran <loic.queran@...> wrote:
Hi,

jaxb-ri-20090206 ...

Hereafter attached is an XSD from which I can't generate java classes. I have customized bindings to avoid naming conflicts, but there are still collisions in the ObjectFactory. The strange thing about this is that apparently similar bindings (binding.xjb line 99 and line 87) produce different results: the former fixes the ObjectFactory conflict, while the latter does not. I've tried to debug this. The problem comes from the instantiation of CElementInfo, but I can't find out why it is performed in some cases (is it linked to yet unresolved references ?), but not in all cases.

I attach:
1 ) The binding,
2 )  The XSD
3 ) The error log

Thanks in advance for any help.

Loïc

C:\jaxb-ri-20090206\samples\rapid>xjc -b binding.xjb work.xsd
parsing a schema...
compiling a schema...
[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1241 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1392 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1428 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1253 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2203 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 2167 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2049 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 2124 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1550 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1592 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1629 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1665 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1942 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 2020 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2037 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 2041 of file:/C:/jaxb-ri-20090206/samples/rapid/work.xsd

Failed to produce code.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...