Great. That's unfortunately a frequent error with the usage of Castor XML.

Regards
Werner

darrickc wrote:
> I figured out why the unmarshalling wasn't working. I was using this to
> unmarshal...
> 
> unmarshaller.unmarshal( c, new StringReader( source ) 
> 
> Which is the static call which basically uses interpolation to figure out
> how to unmarshal. When I took out the class type (non-static call) it
> starting working.
> 
> 
> 
> 
> 
> darrickc wrote:
>> Using version 1.2
>>
>> I am getting the UserRightsMessage object back from the unmarshal, but the
>> userRights map of maps is empty... Here is my class and mapping file.
>>
>> Note: UserPartitionRights is just a class with 3 booleans and appropriate
>> getters/setters. 
>>
>>
>>  public class UserRightsMessage extends Message
>>     {
>>             private Map<String, Map<String, UserRights>> usersRights;
>>            
>>             public UserRightsMessage()
>>             {
>>                     usersRights = new HashMap<String, Map<String,
>> UserRights>>();
>>             }
>>            
>>             public void setUsersRights(Map<String, Map<String,
>> UserPartitionRights>> newUserRights)
>>             {
>>                     usersRights = newUserRights;
>>             }
>>            
>>             public Map<String, Map<String, UserPartitionRights>>
>> getUsersRights()
>>             {
>>                     return usersRights;
>>             }
>>     }
>>
>> And my mapping xml file looks like this:
>>
>>  <?xml version="1.0" encoding="UTF-8"?>
>> <!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
>>                          "http://castor.org/mapping.dtd";>
>>
>> <mapping>
>> <class name="UserRightsMessage" auto-complete="true">
>>      <field name="usersRights" collection="map">
>>              <bind-xml name="usersRights">
>>                      <class name="org.exolab.castor.mapping.MapItem">
>>                              <field name="key" type="java.lang.String">
>>                                      <bind-xml name="string1" 
>> node="attribute"/>
>>                              </field>
>>                              <field name="value" collection="map">
>>                                      <bind-xml name="nested">
>>                                              <class 
>> name="org.exolab.castor.mapping.MapItem">
>>                                                      <field name="key" 
>> type="java.lang.String">
>>                                                              <bind-xml 
>> name="PartitionName"/>
>>                                                      </field>
>>                                                      <field name="value" 
>> type="UserPartitionRights">
>>                                                              <bind-xml 
>> name="UserPartitionRights"/>
>>                                                      </field>
>>                                              </class>
>>                                      </bind-xml>
>>                              </field>
>>                      </class>
>>              </bind-xml>
>>      </field>
>> </class>
>> </mapping>
>>
>> When I marshal the object I get (what looks to me to be) a proper XML
>> representation of the class:
>>
>> <UserRightsMessage>
>>    <usersRights string1="user">
>>      <nested>
>>         <PartitionName>Partition A</PartitionName>
>>             <UserPartitionRights change-status="true" see-status="true"
>> change-sets="true"/>
>>       </nested>
>>    </usersRights>
>> </UserRightsMessage>
>>
>> But when I call unmarshal on this the HashMap within UserRightsMessage is
>> empty. Here is how I'm creating my marshal and unmarshal objects:
>>
>> mapping = new Mapping();
>> mapping.loadMapping( filename );
>> XMLContext context = new XMLContext();
>> context.addMapping( mapping );
>>
>> unmarshaller = context.createUnmarshaller();
>> marshaller = context.createMarshaller();
>>
> 

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to