If your question refers to the *Marshaller* (which is used to generate
XML from Java object instances), yes, there is.
You can always use a mapping file to specify that a particular XML
artefact should be of type element, attribute or text (content).
Werner
Daniel Shilcock wrote:
> Thanks werner,
>
> Sorry to bother you again but is there a way to force the unmarshaller
> to output certain properties as xml attributes instead of elements?
>
> Many thanks,
>
> Dan.
>
>
> On 22 May 2008, at 18:28, Werner Guttmann wrote:
>
>> Okay, the way you load the mapping is just fine (as there's plenty of
>> folks using one of the static methods for unmarshalling).
>>
>> [EMAIL PROTECTED] wrote:
>>> Hi Werner,
>>>
>>> The unmarshaller is called like this:
>>>
>>> Mapping mapping = new Mapping();
>>> mapping.loadMapping("src-resource/castorMapping.xml");
>>>
>>> Unmarshaller unmarshaller = new Unmarshaller(clazz);
>>> unmarshaller.setMapping(mapping);
>>> obj = unmarshaller.unmarshal(reader);
>>>
>>>
>>> Am I right in thinking that I need only define the error class in the
>>> mapping file? I have not defined the container class and assumed that
>>> the error class fields will be overridden?
>> It depends; for completeness sake, can you please define a class mapping
>> for the container class as well, and check whether this makes a
>> difference ?
>>>
>>> I appreciate your help.
>>>
>>> Thanks,
>>>
>>> Dan.
>>>
>>> Quoting Werner Guttmann <[EMAIL PROTECTED]>:
>>>
>>>> Hmm, with the given mapping, this should work out of the box. How are
>>>> you actually calling the Unmarshaller ? What does the code sequence
>>>> look
>>>> like ?
>>>>
>>>> Werner
>>>>
>>>> [EMAIL PROTECTED] wrote:
>>>>> Hi all,
>>>>>
>>>>> I have a situation where my application may receive XML attributes
>>>>> with
>>>>> underscored names:
>>>>>
>>>>> <CONTAINER KEY="1"><ERROR _MSGNO="1002" _MSGTEXT="Message Text"
>>>>> /></CONTAINER>
>>>>>
>>>>> My Java objects are CONTAINER and ERROR, and although the error object
>>>>> is correctly set on the container, the attributed of the error object
>>>>> are always null.
>>>>>
>>>>> However if I modify the XML and remove the underscore from the
>>>>> attribute
>>>>> names both are set correctly.
>>>>>
>>>>> I have names my variables in the ERROR class variants of _MSGNO and
>>>>> MSGNO with no effect. I have also tried to manually map the fields
>>>>> like
>>>>> this:
>>>>>
>>>>> <mapping>
>>>>> <class name="my.package.ERROR">
>>>>> <map-to xml="ERROR" />
>>>>>
>>>>> <field name="MSGTEXT" type="java.lang.String">
>>>>> <bind-xml name="_MSGTEXT" node="attribute"/>
>>>>> </field>
>>>>>
>>>>> <field name="MSGNO" type="java.lang.String">
>>>>> <bind-xml name="_MSGNO" node="attribute"/>
>>>>> </field>
>>>>> </class>
>>>>> </mapping
>>>>>
>>>>> Am I missing something?
>>>>>
>>>>> Kind Regards,
>>>>>
>>>>> Dan
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> 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
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> 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
>>
>>
>
>
> ---------------------------------------------------------------------
> 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