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

