[XML-SIG] Roadmap document - finally!

Uche Ogbuji uche.ogbuji@fourthought.com
Tue, 20 Feb 2001 08:47:59 -0700

> Lars Marius Garshol <larsga@garshol.priv.no> writes:
> > | A low-level Infoset API would be interesting
> > 
> > Personally I would prefer to see a nice tree-based XML API. My
> > personal opinion is that the DOM stinks and needs replacement.  Sean
> > McGrath's xTree looks far better, in my opinion.
> Orchard[1] exposes *just* the infoset in the simplest possible way[2]
> (that is, an element's attributes is a mapping, contents are
> sequences, other attributes are simple values).
> Orchard's nodes differ from DOM nodes in that they have no navigation
> methods or attributes (firstChild, nextSibling) or DOM-special
> manipulation (insertBefore, replaceChild) -- depending solely on
> Python's standard mapping and sequence interface.  Orchard also uses a
> (URI, LocalName) tuple for supporting XML Namespaces, instead of
> additional *NS methods.  Like Python's DOM binding, Orchard uses
> normal attribute accessors instead of (or in addition to) get/set
> methods.

Wow.  Sounds very clean and Pythonic.  I'll have to dig.

> "But Wait!!  That's not all!"  :-)
> As a last note, the C optimization is well underway.  Orchard/Mostly-C
> is about 3-10x faster than pure Python/Perl while still retaining
> attribute accessors (with overrides), garbage collection, and no
> problems with cycles.  Current status is that we have a pure Python
> prototype of the Orchard APIs, and the Python binding is scheduled for
> early post-1.0 (as always, volunteers can change that!).  We have
> ported Matt Sergeant's XPath step evaluator to C as an example of C
> optimization for higher language modules[5].

How is the memory footprint?

Uche Ogbuji                               Principal Consultant
uche.ogbuji@fourthought.com               +1 303 583 9900 x 101
Fourthought, Inc.                         http://Fourthought.com 
4735 East Walnut St, Ste. C, Boulder, CO 80301-2537, USA
Software-engineering, knowledge-management, XML, CORBA, Linux, Python