Thanks for reply Werner !
Actually I did couple of changes to make it work.
One change I did is I am creating an instance (new) of Unmarshaller
now,earlier I was using XMLContext for that.
As I understand from documentation, if mappings are being used then
Marshal/unmarshal should be created using XMLContext. Is there any issue I
will be facing due to creation Unmarshaller instance going forward?
Please advice.

Thanks,
Sam


Werner Guttmann-6 wrote:
> 
> Hi Sam,
> 
> can you please change the class mapping for the Parent class as follows:
> 
> OLD:
> 
> <class name="com.demo.Parent">
>     <map-to xml="Parent" />
>     <field name="partners" type="com.demo.Partner"
>            collection="arraylist">
>        <bind-xml name="Partner" node="element" location="Parent" />
>     </field>
> </class>
> 
> NEW:
> 
> <class name="com.demo.Parent">
>     <map-to xml="Parent" />
>     <field name="partners" type="com.demo.Partner"
>            collection="arraylist">
>        <bind-xml name="Partner" node="element" />
>     </field>
> </class>
> 
> I simply removed the location attribute from the above <bind-xml/>. That 
> should remove your problem (as far as I can tell).
> 
> Cheers
> Werner
> 
> On 10.02.2010 15:36, Sam-1234 wrote:
>>
>> Hi All-
>> I am a newbie to castor and facing an issue where in my arraylist is
>> empty
>> after unmarshal.
>> This is how my xml looks like,
>> 1. Demo xml
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <Parent>
>>      <Partner>
>>              <person>
>>                      <firstname>Jason</firstname>
>>                      <lastname>Bong</lastname>
>>                      <gender>M</gender>
>>              </person>
>>              <address>
>>                      <line1>Addres 1</line1>
>>                      <city>City1</city>
>>                      <state>LA</state>
>>                      <zip>14323</zip>
>>              </address>
>>      </Partner>
>>      <Partner>
>>              <person>
>>                      <firstname>Bong</firstname>
>>                      <lastname>Jason</lastname>
>>                      <gender>M</gender>
>>              </person>
>>              <address>
>>                      <line1>1000 Drive</line1>
>>                      <line2>Address 2</line2>
>>                      <city>CIty2</city>
>>                      <state>LA</state>
>>                      <zip>12334</zip>
>>              </address>
>>      </Partner>
>> </Parent>
>>
>> 2. Mapping xml
>> <?xml version="1.0" encoding="UTF-8"?>
>> <mapping>
>>      <class name="com.demo.Parent">
>>              <map-to xml="Parent" />
>>              <field name="partners" type="com.demo.Partner" 
>> collection="arraylist">
>>                      <bind-xml name="Partner" node="element" 
>> location="Parent" />
>>              </field>
>>      </class>
>>      <class name="com.demo.Address">
>>              <map-to xml="address"/>
>>              <field name="line2" type="java.lang.String">
>>                      <bind-xml name="line2" node="element" />
>>              </field>
>>              <field name="line1" type="java.lang.String">
>>                      <bind-xml name="line1" node="element" />
>>              </field>
>>              <field name="zip" type="java.lang.String">
>>                      <bind-xml name="zip" node="element" />
>>              </field>
>>              <field name="state" type="java.lang.String">
>>                      <bind-xml name="state" node="element" />
>>              </field>
>>              <field name="city" type="java.lang.String">
>>                      <bind-xml name="city" node="element" />
>>              </field>
>>      </class>
>>      <class name="com.demo.Partner">
>>              <map-to xml="Partner"/>
>>              <field name="address" type="com.demo.Address">
>>                      <bind-xml name="address" node="element" />
>>              </field>
>>              <field name="person" type="com.demo.Person">
>>                      <bind-xml name="person" node="element" />
>>              </field>
>>      </class>
>>      <class name="com.demo.Person">
>>              <map-to xml="person"/>
>>              <field name="gender" type="java.lang.String">
>>                      <bind-xml name="gender" node="element" />
>>              </field>
>>              <field name="lastname" type="java.lang.String">
>>                      <bind-xml name="lastname" node="element" />
>>              </field>
>>              <field name="firstname" type="java.lang.String">
>>                      <bind-xml name="firstname" node="element" />
>>              </field>
>>      </class>
>> </mapping>
>>
>> Code snippet which I am using for  unmarshal,
>>      Unmarshaller um = xmlcontext.createUnmarshaller();
>>              Parent parent=(Parent) um.unmarshal(new InputSource(new
>> FileReader("xml/Demo.xml")));
>>
>>      The exception which I am getting is, Class for root element 'parent' not
>> found.
>>      If I use static method 'unmarshal' (Parent.class,"read xml from
>> stream"),the arraylist is empty.
>>
>> Do I need to use descriptor classes here?
>>
>> I guess I am missing something obvious.
>> Any help is appreciated.
>>
>> Thanks,
>> Sam
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
> 
>     http://xircles.codehaus.org/manage_email
> 
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Collections-arraylist-empty-tp27532141p27540285.html
Sent from the Castor - User mailing list archive at Nabble.com.


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

    http://xircles.codehaus.org/manage_email


Reply via email to