[XML-SIG] PyXML, 4suite, libxml2... what should I choose?

Frans Englich frans.englich at telia.com
Mon Nov 29 20:34:44 CET 2004


I need some guidance for the various XML implementations.

In my project I use the Python DOM classes for instantiations of my XML data, 
and I need XPath functionality, WXS validation, and XSLT processing. 
Currently, I pipe out my structures to libxml2/libxslt's xmllint/xsltproc for 
doing validation, and XSLT processing. libxml2 is capable, but the solution 
is ugly, and slow(de-serialization/serialization). In addition, I lack XPath 
functionality. I have no intentions to skip Python's XML structures, and use 
for example libxml2's.

So, my plan is to get XPath somewhere, and perhaps be able to substitute 
libxml2 for something more Pythonic while I'm at it.

From what I can tell, there is three major packages to keep an eye on: 1) 
standard Python; 2) PyXML; 3) 4suite. Let me see if I got this straight:

* Python have _no_ XPath implementation (right?)

* PyXML install an XPath implementation(written by fourthought) into Python's 
package xml(xml.xpath). Is it version 1.0? Is it robust and stable?

* PyXML has xml.xslt; not an option since it's not stable/production quality, 
according to the docs -- or what is its status? How much "experimental" is 

* 4suite has XPath(another implementation written by fourthought..?) and 
robust xslt.

* Neither PyXML nor 4suite has a W3C XML Schema stack, so I'll have to look 
elsewhere; one alternative is XSV but it brings in addition a dependency on 
PyLTXML. Looks like continuing to pipe to libxml2's xmllint(or link) is still 
the best alternative.

What is the best option(s) for me? With my interest of keeping the 
dependencies down, should I go for PyXML-XPath + PyXML-XSLT _if_ it's good 
enough or libxslt + libxml2-WXS? I could use 4suite's XSLT, but since I 
nevertheless will have a dependency on libxml2/libxslt for WXS I can use 
that(and eat the speed penalty).
Important is it has a future(maintained..) and is stable/trustable.

What should I go for, and what have I missed?

BTW, is there any plans to merge any XSLT/XPath stack into vanilla Python? 
(when?) It's functionality often needed, AFAICT.

Yes, I'm new on the Python & XML front..



More information about the XML-SIG mailing list