[XML-SIG] Re: [4suite] ReleaseNode interface in 4XSLT
Martin v. Loewis
martin@loewis.home.cs.tu-berlin.de
Sun, 13 May 2001 16:41:25 +0200
[yes, I indeed meant to cross-post to xml-sig]
> Wouldn't it be better to make up a Reader class for minidom which
> implements a releaseNode method similar to what you have above? The
> idea behind the reader architecture is to manage such things.
How would that work? Assume there was a reader class for minidom, and
the XSLT runtime had a node object. How can you release the node?
Or do you need to know the reader class which originally created that
node as well? That would be not so good: the node might not have been
created by a reader at all, as it might have come directly from the
DOM implementation.
> There might be some places in 4XSLT that don't properly call releaseNode
> on the reader instance itself, but I'd rather fix them to do so.
There is a number of those. Grepping for ReleaseNode in the public CVS
gives
Processor.py: pDomlette.ReleaseNode(rtfRoot)
Processor.py: xml.dom.ext.ReleaseNode(rtfRoot)
Processor.py: pDomlette.ReleaseNode(self._dummyDoc)
Stylesheet.py: pDomlette.ReleaseNode(imp.stylesheet.ownerDocument)
StylesheetReader.py: pDomlette.ReleaseNode(inc)
StylesheetReader.py: pDomlette.ReleaseNode(sheet.ownerDocument)
StylesheetReader.py: pDomlette.ReleaseNode(inc)
XsltContext.py: pDomlette.ReleaseNode(doc)
XsltContext.py: pDomlette.ReleaseNode(rtf)
XsltContext.py: xml.dom.ext.ReleaseNode(rtf)
> What's "minisupport" and "_XsltElementBase"?
minisupport is an emulation of pDomlette equivalents as used by 4XSLT,
implemented using pDomlette. There are various pieces that I found
necessary: readers, ReaderBase, and Element. The latter is there to
support pickling, and to support the __init__ signature expected from
XsltElement.
> Maybe we need a general Reader class for unknown DOM classes. This
> would require the unification of DOM factories we were discusing a few
> months ago, but the releaseNode method could just be a NOP, i.e. your
> (c) option.
I don't recall that discussion. Your comment seems to imply a
relationship between a DOM implementation and a Reader class, which I
can't find in the 4Suite code. What do I miss?
Regards,
Martin