Brett Williams <brett_williams / agilent.com> wrote in message news:<1084203997.803240 / cswreg.cos.agilent.com>... > The write() method for CData nodes ignores the transitive flag. This > snippet of code illustrates the example: This is fixed; it'll be in CVS before the end of the day, and will be in REXML 3.0.7. CData is supposed to ignore the transitive flag, but other things were occurring that caused errors and other misformattings. CData sections will not be formatted, because they "raw" data, and whitespace in CData sections is always significant. Therefore, REXML will not add whitespace to CData sections; also, since the "magical" markup of the CData end, namely "]]>" is a block of characters, we can't apply the normal trick of inserting a CR before the close '>'. The only place to insert whitespace would be before the "]]>" (which would be adding whitespace to the CData section, which is illegal), or after the "]]>", which would add a Text node to the tree, which would be illegal for transitive documents. Therefore, the XML document: <a><![CDATA[ Lalalala ]]></a> will be transitively printed as: <a ><!CDATA[ Lalalala ]]></a > Which is about as good as we can get. This is still better than what REXML was doing before, which was crashing :-). --- SER