Hi This is my first stab at using Castor...It has been good learning curve so far. I am presently stuck with something and would need your help in resolving it.
The output xml that I am looking for should be as below <my-response> <employee-wrapper> <manager/> </employee-wrapper> <employee-wrapper> <manager/> </employee-wrapper> </my-response> My mapping looks as below <class name="MyResponse" auto-complete= "true"> <map-to xml="my-response"/> <field name="employees" type="Employee" collection="array"> <bind-xml auto-naming="deriveByClass" location= "employee-wrapper" node="element"/> </field> </class> Employee is an abstract class. Manager and Worker are concrete classes that extend Employee class. The WSDL definition for employee-wrapper is <xs:element name="employeeWrapper"> <xs:complexType> <xs:choice> <xs:element name="manager" type="Manager"/> <xs:element name="worker" type="Worker"/> </xs:choice> </xs:complexType> </xs:element> So, the employeeWrapper can have either manager or worker or both But the problem that I am facing are of 2 kinds 1. When 2 managers are a part of the employeeWrapper , it fails with org.exolab.castor.xml.MarshalException: element "manager" occurs more than once. 2. If there is manager and worker, the output is as below which is different from what I expect. <my-response> <employee-wrapper> <manager/> <worker/> </employee-wrapper> </my-response> Any help would be appreciated. thanks Kind Regards Sarathi Balasundaram