Never mind, I got it. Modified my mapping to this:
<field name="allergies" type="string" collection="array">
<bind-xml name="allergy" location="allergies" />
</field>
and now marshal and unmarshal both work. Thanks!
Ryan
On Mon, Jul 13, 2009 at 2:35 PM, Ryan Sutter<[email protected]> wrote:
> Lukas,
>
> Thanks, that did indeed generate the XML I need. Now I can marshal
> but on unmarshalling I get:
>
> Type conversion error: could not set value of
> allergies(java.lang.String) with value of type java.lang.String
> at
> org.exolab.castor.xml.Unmarshaller.convertSAXExceptionToMarshalException(Unmarshaller.java:794)
>
> Any ideas?
>
> Thanks in advance,
>
> Ryan
>
> On Mon, Jul 13, 2009 at 2:27 PM, Lukas Lang<[email protected]> wrote:
>> Hey Ryan,
>>
>> Castor XML supports the declaration of a 'location' attribute. The
>> marshalled data is put under this tag. Please try the following mapping
>> for your field:
>>
>> <field name="allergies" type="java.lang.String">
>> <bind-xml name="allergy" location="allergies" />
>> </field>
>>
>> The output in my case is:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <entity>
>> <allergies>
>> <allergy>a</allergy>
>> <allergy>b</allergy>
>> </allergies>
>> </entity>
>>
>> Hope that helps!
>>
>> Regards,
>> Lukas
>>
>> Ryan Sutter schrieb:
>>> Hi,
>>>
>>> I have a Java POJO with a String[] getAllergies() and
>>> setAllergies(String[] allergies) method. I need to produce XML that
>>> looks like this:
>>>
>>> <?xml version="1.0"?>
>>> <RxRefill>
>>> <MemberInquiryResponse>
>>> ...
>>> <allergies>
>>> <allergy>Allergy1</allergy>
>>> <allergy>Allergy2</allergy>
>>> </allergies>
>>> ...
>>> </MemberInquiryResponse>
>>> </RxRefill>
>>>
>>> My current mapping file looks like this:
>>>
>>> <field name="allergies" collection="array" type="strings"
>>> container="false">
>>> <bind-xml name="allergies" node="element">
>>> </bind-xml>
>>> </field>
>>>
>>> And produces XML like this:
>>>
>>> <?xml version="1.0"?>
>>> <RxRefill>
>>> <MemberInquiryResponse>
>>> ...
>>> <allergies>
>>> <string>Allergy1</string>
>>> <string>Allergy2</string>
>>> </allergies>
>>> ...
>>> </MemberInquiryResponse>
>>> </RxRefill>
>>>
>>> How to I configure a String[] mapping to specify the element name that
>>> will be used for each item so I can map to "<allergy>" instead of
>>> "<string>"?
>>>
>>> Thanks!
>>>
>>> Ryan
>>>
>>> ---------------------------------------------------------------------
>>> 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
>>
>>
>>
>
>
>
> --
> http://ryansutter.net
>
--
http://ryansutter.net
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email