On 25/04/12 11:48, Noel Grandin wrote: > Looks like the code in > unoxml/source/dom/saxbuilder.cxx > converts the SAX event stream into a DOM tree.
true, but irrelevant here because this is not used when calling Reference< XDocument > SAL_CALL CDocumentBuilder::parse(const Reference< XInputStream >& is) > On 2012-04-25 08:34, Christina Rossmanith wrote: >> for the example without "x" and "y" attribute the "case XML_TEXT" block is never reached. That's why I'd like to understand where and how the tree is built. fortunately Marco has already identified that the problem is in the visitor, not the DOM construction (which would have surprised me); with the way unoxml works there is no explicit DOM construction when using the CDocumentBuilder, rather the parse() method calls a single libmxl2 method that creates the entire DOM as a libxml2 xmlDoc; the various CNode subclasses' instances wrap individual libxml2 xmlNodes and are created only on demand, e.g. when you ask the CDocument for its children the CElement instance for the root element is created, and it will be deleted again when you release the uno::Reference while the underlying libxml2 xmlNode survives as long as the entire document. _______________________________________________ LibreOffice mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice
