Hi Werner,
Many thanks for your reply. My mapping file now looks like this:
<class
name="com.xx.service.web.SetStatusRequest">
<map-to xml="SetStatusRequest"
ns-uri="http://xx.com/xxx/serversession" />
<field name="errorCode" type="int">
<bind-xml name="errorCode" node="element" type="int" />
</field>
<field name="status" type="com.xx.xxx.tecommon.Pair"
collection="array" >
<bind-xml name="status" node="element" />
</field>
</class>
<class name="com.xx.xxx.tecommon.Pair" xmlns="http://xx.com/xxx/tecommon" >
<map-to xml="pair" />
<field name="name" type="string">
<bind-xml name="name" node="element" type="string" />
</field>
<field name="value" type="string">
<bind-xml name="value" node="element" type="string" />
</field>
</class>
However the status field is still null :-(
Any ideas?
Thanks again,
Kevin.
On Thu, Dec 16, 2010 at 12:59 PM, Werner Guttmann <[email protected]> wrote:
> Hi Kevin,
>
> There's a few things I noticed when looking - especially - at the mapping
> file.
>
> a) Please supply the namespace definition to the class mapping for the Pair
> class as well.
>
> That should actually do it.
>
> For the sake of completeness, please change the field mapping for the
> 'status' member of 'SetStatusRequest' to
>
> <field name="status" type="com.xx.xxx.tecommon.Pair" collection="array">
> <bind-xml name="status" node="element" />
> </field>
>
>
> Regards
> Werner
>
> On 16.12.2010 13:13, Kevin Kilroy wrote:
>>
>> Hi,
>>
>> I'm having great difficulty unmarshalling some XML into an array
>> object in Java. Here is my mapping file:
>>
>> <class
>> name="com.xx.service.web.SetStatusRequest">
>> <map-to xml="SetStatusRequest"
>> ns-uri="http://xx.com/xxx/serversession" />
>> <field name="errorCode" type="int">
>> <bind-xml name="errorCode" node="element"
>> type="int" />
>> </field>
>> <field name="status" type="com.xx.xxx.tecommon.Pair"
>> collection="array">
>> <bind-xml name="status" node="element"
>> type="com.xx.xxx.tecommon.Pair" />
>> </field>
>> </class>
>>
>> <class name="com.xx.xxx.tecommon.Pair">
>> <map-to xml="pair" />
>> <field name="name" type="string">
>> <bind-xml name="name" node="element" type="string"
>> />
>> </field>
>> <field name="value" type="string">
>> <bind-xml name="value" node="element" type="string"
>> />
>> </field>
>> </class>
>>
>> And the Java Classes
>>
>> public class SetStatusRequest {
>>
>> private int errorCode;
>>
>> private com.xx.xxx.tecommon.Pair[] status;
>>
>> public com.te.amptrac.tecommon.Pair[] getStatus() {
>> return status;
>> }
>> public void setStatus(com.te.amptrac.tecommon.Pair[] status) {
>> this.status = status;
>> }
>> }
>>
>> public class Pair {
>> private String name;
>>
>> private String value;
>>
>> public java.lang.String getName() {
>> return name;
>> }
>>
>> public void setName(java.lang.String name) {
>> this.name = name;
>> }
>>
>> public java.lang.String getValue() {
>> return value;
>> }
>>
>> public void setValue(java.lang.String value) {
>> this.value = value;
>> }
>>
>> }
>>
>> And the XML That I am trying to unmarshall looks like this:
>> <SetStatusRequest xmlns="http://xx.com/xxx/serversession">
>> <errorCode>0</errorCode>
>> <status>
>> <name>status</name>
>> <value>1</value>
>> </status>
>> <status>
>> <name>status</name>
>> <value>1</value>
>> </status>
>> </SetStatusRequest>
>>
>> The errorCode field is loaded into the object correctly, however the
>> status array field is always null.
>>
>> I'm using Castor 1.2.0
>>
>>
>> Any help would be greatly appreciated.
>>
>> Thanks in advance,
>>
>> Kevin.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>> http://xircles.codehaus.org/manage_email
>>
>>
>>
>
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email