Thanks Martin. Not a major issue to handle the change. Just wanted to determine if the change was on purpose or a bug.
<if size-of variable="_.contents > 0"> or <if variable="_.contents is ?*"> are fine to handle what we require both pre and post 5.0 Cheers. On Tue, Apr 27, 2010 at 10:18 AM, Martin Stjernholm <[email protected]> wrote: > David Hunter <[email protected]> wrote: > >> <define container="tag"> >> <if variable="_.contents">"&_.contents;"</if> >> </define> >> >> <tag/> -> 5.0.403 returns nothing . 5.0.449 returns "". >> <tag></tag> -> 5.0.403 returns nothing. 5.0.449 returns "". >> <tag> </tag> -> 5.0.403 returns " ". 5.0.449 returns " ". >> >> can someone confirm if this is an expected change or a bug that >> required fixing. > > That specific problem is unexpected, but it is an effect of that the > handling of empty containers has been cleaned up (rxml tags no longer > has to cope with RXML.nil or "" interchangeably - they always get ""). > > Disregarding the compatibility aspect, I think the 5.0.449 behavior is > the correct one - the content is really "" in <tag></tag>, and <tag/> is > simply an abbreviation of that form, according to xml. > > It's worth noting that the old behavior was not reliable - both 4.5 and > 5.0.403 behaves like 5.0.449 if the rxml is compiled. The behavior > you're seeing only occurred in uncompiled code. That means that trying > to keep bug compatibility is messy. > > What ideally should have been the case here is that all 5.0 releases > behaved like the current one. Unfortunately the changed RXML.nil > handling wasn't quite correct in the first 5.0 releases. > > Perhaps there also ought to have been kludges to keep bug compatibility > in compat level 4.5, but since the buggy (i.e. old) behavior isn't > consistent I'm not sure that would have been implemented in any case. > > So the bottom line is, you should have encountered that problem already > in the first 5.0 release and not now. I apologize for that, but I don't > think there's much that can be done about it now that wouldn't just make > matters worse. > > Is it a serious problem for you? You can get the behavior you want > simply by using <if sizeof="_.contents > 0"> instead. >
