[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jibx-users
Subject:    Re: [jibx-users] problem with boolean in choice
From:       Dennis Sosnoski <dms () sosnoski ! com>
Date:       2010-04-15 22:50:40
Message-ID: 4BC79840.7030107 () sosnoski ! com
[Download RAW message or body]

Hi Michael,

I think I see where this could be going wrong, and I'll try looking into 
the issue. If you create a Jira problem report and attach a project that 
demonstrates the problem it'll get done sooner. :-)

In the meantime, rather than modifying the schema you can try using a 
schema-type CodeGen customization 
(http://jibx.sourceforge.net/fromschema/codegen-extends.html#types) to 
force generating a java.lang.Boolean rather than a boolean primitive 
type for this case. You can use the format-name "Boolean.default" for 
this - I just noticed that's missing from the table of value conversions 
in the documentation, and added it.

  - Dennis

Dennis M. Sosnoski
XML and Web Services in Java
Training and Consulting
http://www.sosnoski.com - http://www.sosnoski.co.nz
Seattle, WA +1-425-939-0576 - Wellington, NZ +64-4-298-6117



Michael Handler wrote:
> Hi,
>
> I just managed to force him to use the object types instead of the 
> primitives by setting nillable="true" in the schema file on the boolean 
> element. This is only a workaround though, so please keep me updated if 
> there is a solution to this problem.
>
> kind regards,
> Michael Handler
>
> Am 14.04.2010 14:21, schrieb Michael Handler:
>   
>> Hi,
>>
>> It is generated together with the Java Classes. But here is the
>> interesting part of it:
>>
>> <mapping class="org.openengsb.core.xmlmapping.XMLPrimitive1"
>> name="XMLPrimitive1">
>> <structure ordered="false" choice="true">
>> <value style="element" name="boolean" test-method="ifBoolean"
>> get-method="isBoolean" set-method="setBoolean" usage="optional"/>
>> <value style="element" name="string" test-method="ifString"
>> get-method="getString" set-method="setString" usage="optional"/>
>> </structure>
>> </mapping>
>>
>> The generated java code looks like this:
>>
>> public class XMLPrimitive1
>> {
>>       private int XMLPrimitive1Select = -1;
>>       private static final int BOOLEAN_CHOICE = 0;
>>       private static final int STRING_CHOICE = 1;
>>       private boolean _boolean;
>>       private String string;
>>
>>       private void setXMLPrimitive1Select(int choice) {
>>           if (XMLPrimitive1Select == -1) {
>>               XMLPrimitive1Select = choice;
>>           } else if (XMLPrimitive1Select != choice) {
>>               throw new IllegalStateException(
>>                       "Need to call clearXMLPrimitive1Select() before
>> changing existing choice");
>>           }
>>       }
>>
>>       public void clearXMLPrimitive1Select() {
>>           XMLPrimitive1Select = -1;
>>       }
>>
>>       public boolean ifBoolean() {
>>           return XMLPrimitive1Select == BOOLEAN_CHOICE;
>>       }
>>
>>       public boolean isBoolean() {
>>           return _boolean;
>>       }
>>
>>       public void setBoolean(boolean _boolean) {
>>           setXMLPrimitive1Select(BOOLEAN_CHOICE);
>>           this._boolean = _boolean;
>>       }
>>
>>       public boolean ifString() {
>>           return XMLPrimitive1Select == STRING_CHOICE;
>>       }
>>
>>       public String getString() {
>>           return string;
>>       }
>>
>>       public void setString(String string) {
>>           setXMLPrimitive1Select(STRING_CHOICE);
>>           this.string = string;
>>       }
>> }
>>
>>
>> I just found out that the same problem occurs for integer (with 0 as
>> value). Seems like there is a problem when primitives are set to their
>> default values.
>>
>> kind regards,
>> Michael Handler
>>
>> Am 14.04.2010 13:55, schrieb Ben Davies:
>>    
>>     
>>> Can we see your binding file?
>>>
>>> -----Original Message-----
>>> From: Michael Handler [mailto:michael.handler@fullstop.at]
>>> Sent: 14 April 2010 12:11
>>> To: jibx-users@lists.sourceforge.net
>>> Subject: [jibx-users] problem with boolean in choice
>>>
>>> Hi,
>>>
>>> I have a problem with jibx (starting from an xml schema) using a boolean
>>>
>>> element in a choice element. Somehow the resulting xml does not contain
>>> the boolean value if the boolean is set to false, although it works fine
>>>
>>> if the boolean is set to true. The resulting xml cannot be parsed
>>> correctly (no choice is selected)...
>>> I use the maven jibx plugin (verison 1.2.2) to create the java files and
>>>
>>> the binding from a xml schema.
>>>
>>> Here is the relevant part of the schema file:
>>> <xs:element name="XMLPrimitive1">
>>> <xs:complexType>
>>> <xs:choice>
>>> <xs:element name="boolean" type="xs:boolean" />
>>> <xs:element name="string" type="xs:string" />
>>> </xs:choice>
>>> </xs:complexType>
>>> </xs:element>
>>>
>>>
>>> Using the following code to create the xml:
>>>
>>>            XMLPrimitive1 xmlPrimitive = new XMLPrimitive1();
>>>            xmlPrimitive.setBoolean(false);
>>>
>>>            JibxXmlSerializer serializer = new JibxXmlSerializer();
>>>            StringWriter writer = new StringWriter();
>>>            serializer.serialize(xmlPrimitive, writer);
>>>            String xml = writer.toString();
>>>
>>>            System.out.println(xml);
>>>
>>> The output is:
>>> <?xml version="1.0" encoding="UTF-8"?><XMLPrimitive1/>
>>>
>>> Shouldn't this rather be:
>>> <?xml version="1.0"
>>> encoding="UTF-8"?><XMLPrimitive1><boolean>false</boolean></XMLPrimitive1
>>>
>>>      
>>>       
>>>>        
>>>>         
>>> as the xml looks like this when the boolean value is set to true:
>>> <?xml version="1.0"
>>> encoding="UTF-8"?><XMLPrimitive1><boolean>true</boolean></XMLPrimitive1>
>>>
>>> Thank you for your help!
>>>
>>> kind regards,
>>> Michael Handler
>>>
>>> ------------------------------------------------------------------------
>>> ------
>>> Download Intel&#174; Parallel Studio Eval
>>> Try the new software tools for yourself. Speed compiling, find bugs
>>> proactively, and fine-tune applications for parallel performance.
>>> See why Intel Parallel Studio got high marks during beta.
>>> http://p.sf.net/sfu/intel-sw-dev
>>> _______________________________________________
>>> jibx-users mailing list
>>> jibx-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/jibx-users
>>>
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG - www.avg.com
>>> Version: 9.0.801 / Virus Database: 271.1.1/2800 - Release Date: 04/13/10
>>> 21:22:00
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Download Intel&#174; Parallel Studio Eval
>>> Try the new software tools for yourself. Speed compiling, find bugs
>>> proactively, and fine-tune applications for parallel performance.
>>> See why Intel Parallel Studio got high marks during beta.
>>> http://p.sf.net/sfu/intel-sw-dev
>>> _______________________________________________
>>> jibx-users mailing list
>>> jibx-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/jibx-users
>>>
>>>
>>>
>>>      
>>>       
>> ------------------------------------------------------------------------------
>> Download Intel&#174; Parallel Studio Eval
>> Try the new software tools for yourself. Speed compiling, find bugs
>> proactively, and fine-tune applications for parallel performance.
>> See why Intel Parallel Studio got high marks during beta.
>> http://p.sf.net/sfu/intel-sw-dev
>> _______________________________________________
>> jibx-users mailing list
>> jibx-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/jibx-users
>>
>>
>>    
>>     
>
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> jibx-users mailing list
> jibx-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jibx-users
>
>   

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic