On Sunday 05 December 2004 22:13, Uche Ogbuji wrote: > On Mon, 2004-11-29 at 19:34 +0000, Frans Englich wrote: > > I need some guidance for the various XML implementations.
Hello Uche, Here's a late reply. I settled for libxml2 because it provides all functionality(I can unfortunately not switch to RNG), and I will have to live with its quirky API. Your reply was very informative, great to have some insight in this spurr of implementations. Cheers, Frans > > Well, at the minimum you'll get argument :-) > > > In my project I use the Python DOM classes for instantiations of my XML > > data, and I need XPath functionality, > > 4Suite has an XPath implementation that is very easy to use and makes > extending XPath with functions implemented in Python very simple. > > http://uche.ogbuji.net/tech/akara/nodes/2003-01-01/basic-xpath > > > WXS validation, > > 4Suite does not support WXS. Advantage libxml2 here. Then again, if > you have a choice in the matter you really should consider using RELAX > NG instead, which is superior to WXS and is supported by 4Suite. > > > and XSLT processing. > > 4Suite's XSLT processor is also easy to use and extend. > > http://uche.ogbuji.net/tech/akara/nodes/2003-01-01/basic-xslt > > > 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. > > Out of curiousity, by "Python's XML structures" do you mean minidom? If > so, what motivates this reservation? I should add the disclaimer that > 4Suitee's XPath and XSLT features require Domlette rather than minidom. > Domlette is very similar to minidom (much more so than libxml2's DOM- > like structures). Domlette is also IMO as pythonic as you can get and > still be DOM-like (more Pythonic and you're into the territory of > ElementTree and data bindings such as Anobind, GenerateDS and Gnosis > Objectify). > > > So, my plan is to get XPath somewhere, and perhaps be able to substitute > > libxml2 for something more Pythonic while I'm at it. > > You should at least give 4Suite a try if this is your bottom line. > > > 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?) > > 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? > > It's pretty robust and stable. It is based on very old code from > 4Suite's XPath and the latter has been optimized a great deal and has > added a lot of useful features. > > > * 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 it? > > Basing XSLT on plain DOM is a bit tricky, which is why in 4Suite we've > settled on Domlette-only. It will take a lot of work to get Python's > xml.xslt compliant and efficient while still using plain old minidom. > Again, it's based on old code from 4Suite which has been much optimized > and otherwise improved since then. > > > * 4suite has XPath(another implementation written by fourthought..?) and > > robust xslt. > > It's a much newer version of the XSLT in PyXML. > > > * 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. > > I suppose another option is to use Trang to convert WXS to RELAX NG and > then use XVIF or 4Suite. > > > 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. > > XPath is a little language, and XSLT a not-so-little one, so I'd expect > they're too much to stuff into core Pylib, even with the "batteries > included" philosophy. Add to that the fact that something a bit richer > than minidom would be needed for the data model (if the implementation > is to be at all efficient) and I'd say it's a stretch. > > > Yes, I'm new on the Python & XML front.. > > Welcome. _______________________________________________ XML-SIG maillist - [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/xml-sig