[XML-SIG] No parents in cloned node?

Uche Ogbuji uogbuji@fourthought.com
Sun, 16 Jul 2000 11:27:23 -0600


Brad Chapman:

>     From your example, it looks like you are using the DOM that comes 
> with the pyXML XML-SIG package, right? This is probably actually the 
> biggest problem -- that is official deprecated (I don't believe anyone 
> is maintaining it any longer) and the 4Suite DOM 
> (http://fourthought.com/4Suite/4DOM/) is becoming the new DOM that 
> will be included in the XML-SIG package. Things are in a transition 
> state right now, so it is kind of a mess. The most recent 4DOMs do 
> have the xml/dom namespace, so you'll need to install the XML-SIG 
> package, and then rm -rf the dom directory from this (the dom you've 
> been using) then install 4DOM (4DOM also has rpms without xml/dom on 
> their site to make it easier, I believe).
>     4DOM is a very nice DOM implementation and is actively being 
> developed. The developers are also very responsive to bug reports and 
> questions. I think it would be very worthwhile to try this out -- you 
> might find it'll work better for you.

Thanks for the kind words, Brad, but we do really need to sort out the current 
package mess.

I think 4DOM is all integrated into the PyXML CVS.  It's at least one tag 
behind our internal version, but we'll update it before our next 4Suite 
release (RSN).  I think this means that CVS users do have 4DOM.

However, please correct me if I'm wrong or let me know if anyone has had 
problems with the package.

4XPath and 4XSLT have been a rather more complex matter.  We agreed to add 
them to the package as xml/xpath and xml/xslt.  I started this process last 
week, but a key problem immediately ocurred to me.

These packages do require C compilation and they are not integrated into the 
current distutils installer for PyXML.  Internally, we build them as follows:

BisonGen source -> lex/yacc -> C -> .dll/.so

BisonGen is our special tool to take a grammar specified in XML and create the 
lex, yacc and makefiles required to build a Python parser.

We usually do step one before releasing source, just to spare people from 
having to download BisonGen (even though we think it's pretty nifty: all you 
need to know is python and XML to make a pretty efficient parser: all C is 
auto-generated).

So how do we integrate this stuff into PyXML?  I've noticed that the C parts 
are separated from the Python parts and Windows .dll/.pyds are checked in 
wholly.  We could do the same thing, but this would make the PyXML tree look 
quite different from our internal tree.  Not hard to get around with a simple 
script, but worth noting.

We're probably going to incorporate PyXML into our next 4Suite release, and 
that might be a good integration test.

-- 
Uche Ogbuji                               Principal Consultant
uche.ogbuji@fourthought.com               +01 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