[XML-SIG] Future plans

uche.ogbuji@fourthought.com uche.ogbuji@fourthought.com
Mon, 20 Dec 1999 11:09:53 -0700


>      * I propose dropping the wstrop and xmlarch code from the CVS
>        tree: wstrop because Python 1.6 will have built-in Unicode
>        support of some strip, and xmlarch because architectual forms
>        are fairly rarely used, and don't need to be in the core.

Agreed, although we might want to wait until Python 1.6 is out before dropping 
the former.

>      * What about namespace support in SAX -- what's the status of SAX2?

Lars published a SAX2 module that pretty much covers the ground of the current 
status.  I've been cajoling the folks on XML-DEV to finish the SAX2 spec, and 
things are coming about slowly.  4DOM comes with a pretty complete SAX2 -> DOM 
reader, which is used by 4XSLT.

>      * The DOM needs more work.  I've fixed the braindamaged __getattr__
>        that was terribly slow; building a DOM tree of "The Winter's
>        Tale" now takes around 25 seconds, not 80.  (4DOM takes around
>        12 seconds for the same job.)  The accessor methods
>        need to be renamed to match the Python CORBA mapping, and the
>        code needs to be brought up to DOM Level 2, which will add
>        namespace support.

DOM Level 2 also updates Document factories so that most nodes can be created 
in a standard way.  The way they use DocumentType for the purpose is a bit 
dodgy, IMHO, but it's there.  DOM Level 2 also for practical reasons occupies 
an odd position between straight XML 1.0 behavior and XML with Namespaces 
behavior, but it does the job of adding namespace support.

>        I'm still wondering if it's worth maintaining a second DOM
>        implementation in parallel with 4DOM.  4DOM 0.9.0 already
>        implements Core Level 2 according to Uche's recent
>        announcement.  

I used to say that PyDOM and 4DOM addressed different users, but over time, 
changes to 4DOM have made this less clear.  4DOM is now far more pythonic and 
light-weight than when it started out.

>        I worry about 4DOM requiring you to do ReleaseNode() in order
>        to break cycles, envisioning tricky bugs where you forget to 
>        release a node and end up leaking memory, or where you release
>        too soon.  Perhaps this is just paranoia; for most common
>        applications, maybe you just create a DOM tree, rearrange it,
>        write it out, and then release the whole tree -- no tricky
>        business about keeping some nodes and releasing others.
>        Any 4DOM users/developers want to comment on this?

Yes, the ReleaseNode could be the source of memory leaks.  We experimented 
with a few automatic methods, and were very unsatisfied with all of them.  We 
haven't ever had any difficulty hunting down memory leaks when they occurred 
because of a missing "ReleaseNode", even without plumbo or cyclops.  We have 
installed 4DOM into some rather long-running systems, and some at rather large 
scale.


-- 
Uche Ogbuji
FourThought LLC, IT Consultants
uche.ogbuji@fourthought.com	(970)481-0805
Software engineering, project management, Intranets and Extranets
http://FourThought.com		http://OpenTechnology.org