You are welcome. I actually discussed with a colleague of mine whether
we should try to patch existing code, but came to realize that such a
change would actually introduce a conceptual break into Castor - which I
am not really keen to do, as there's a workaround available.

Regards
Werner Guttmann

pat wrote:
> Hi,
> 
> Yes, I've thought about creating classes for LEVEL-2 and LEVEL-3, but I was
> curious if there is a better way.
> 
> Why I need these empty levels, well, "rebuilding" old XML based application
> and that's its API :-(
> 
> Thanks a lot.
> 
>      Pat
> 
> On Mon, 29 Jan 2007 15:02:02 +0100, Werner Guttmann wrote
>> Hi,
>>
>> Creating XML such as ...
>>
>> <LEVEL-1>
>>    <LEVEL-2>
>>       <LEVEL-3/>
>>    </LEVEL-2>
>> </LEVEL-1>
>>
>> Does not really make sense if the underlying XML artefact (the 
>> element <str>) will not be created as a result of marshalling. By 
>> default, if the instance value of the String property 'str' equals 
>> to 'null', Castor will not marshal the element at all (unless you 
>> make the element required and nillable, in which case it will 
>> marshall an empty element <str/> within the location given).
>>
>> I guess it is important to to acknowledge that the XPATH specified 
>> within a location attribute is a prefix only, and as such follows 
>> the default rules of marshalling instance members (incl. Dealing 
>> with nulls). In other words, if the instance member will not be 
>> marshalled, the prefix won't be marshalled either.
>>
>> Having said that, you do not have to use a location attribute, even 
>> though it is very convenient, as it allows you to work with 
>> shortcuts. As this mechanism does not work for your scenario, why 
>> not create classes for <LEVEL-2> and <LEVEL-3> and map them 
>> accordingly ?
>>
>> Regards
>> Werner
>>
>>> -----Original Message-----
>>> From: pat [mailto:[EMAIL PROTECTED] 
>>> Sent: Montag, 29. Jänner 2007 13:52
>>> To: Castor Users
>>> Subject: [castor-user] keeping mapping elements when they are 
>>> not present
>>>
>>> Hi all,
>>>
>>> I have question about Castor XML mapping.
>>>
>>> Introduction:
>>> public class Clazz {
>>>  private String str;
>>>  public String getStr() {...}
>>>  public void setStr(String str) {...}
>>> }
>>>
>>> Clazz mapping xml fragment:
>>> <class name="Clazz">
>>>  <map-to xml="LEVEL-1"/>
>>>  <field name="str" type="java.lang.String">
>>>     <bind-xml name="str" node="element" 
>>> location="LEVEL-2/LEVEL-3"/>  </field> </class>
>>>
>>> Problem:
>>> When the str field isnot null, then the XML tree structure is 
>>> correct for me:
>>> <LEVEL-1><LEVEL-2><LEVEL-3><str>...</str></LEVEL-3></LEVEL-2><
>>> /LEVEL-1>
>>>
>>> But when the str field is null, then the structure is collapsed to:
>>> <LEVEL-1/>
>>>
>>> And I need to push Castor to this structure (and best of all 
>>> is to do it with mapping and without coding):
>>> <LEVEL-1><LEVEL-2><LEVEL-3/></LEVEL-2></LEVEL-1>
>>>
>>> How can I do this ???
>>>
>>> Thanks a lot for the response.
>>>
>>>    Pat
>>>
>>> ---------------------------------------------------------------------
>>> 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

Reply via email to