20120301¶
xsd2py¶
Yesterday I started some with first concrete attempts for the tx25 project.
While watching the
XSD files I thought
“No, I won’t convert them manually to an xmlgen module, I’d rather write
a tool like generateDS, but one that produces Python code which uses
lino.utils.xmlgen
”.
I called it
xsd2py.
I then started to understand that Dave Kuhlmann’s work is not really trivial.
Yes, I admit I’m crazy: I’m even going to continue. Just because I percieve the code generated by generateDS as difficult to understand and maintain.
Ian Bicking writes about xml.dom.minidom: “a document model built into the standard library, which html5lib can parse to. (I do not recommend using minidom for anything — some reasons will become apparent in this post, but there are many other reasons not covered why you shouldn’t use it.)” (http://blog.ianbicking.org/2008/03/30/python-html-parser-performance/)
In that same post he also writes “I expected lxml to perform well, as it is based on the C library libxml2. But it performed better than I realized, far better than any other library. As a result, if it wasn’t for some persistent installation problems (especially on Macs) I would recommend lxml for just about any HTML task.”
So I’m going to use lxml.
After reading http://lxml.de/tutorial.html it was easy to write a new version xsd2py which produces the same output, but uses lxml instead of minidom.
But then, when I reached the E-factory <http://lxml.de/tutorial.html#the-e-factory>´_ section, I started to understand that this is the wheel my :mod:`lino.utils.xmlgen is reinventing!
Confirmation: I rewrote table2xhtml() using lxml instead of xmlgen.
Next step weill be to do the same with lino.utils.xmlgen.bcss
.
So my xmlgen is going to be deprecated because lxml is much better and faster.