Phobos Proposal: replace std.xml with kxml.
Graham Fawcett
fawcett at uwindsor.ca
Mon May 3 15:31:16 PDT 2010
On Tue, 04 May 2010 09:18:46 +1200, Bernard Helyer wrote:
> When I first started using D, one of the things I needed quite early on
> was a way of writing and reading XML. Naturally, when I saw std.xml in
> Phobos, I was quite pleased.
>
> That was of course, until I started to use it.
>
> http://d.puremagic.com/issues/show_bug.cgi?id=3088
> http://d.puremagic.com/issues/show_bug.cgi?id=4069
> http://d.puremagic.com/issues/show_bug.cgi?id=3201
>
> I vented my frustation on IRC, where opticron mentioned he had an XML
> library of his own. I find it superior to std.xml, especially
> considering how it actually works, and is maintained.
>
> http://opticron.no-ip.org/svn/branches/kxml/
>
> It is already under the Boost License, and opticron has said
>
> "<opticron> ... if they really want to snag mine and clean it up for use
> in phobos, that's fine
> <opticron> I'd even relicense the code if I have to"
>
> I'm going to keep on using kxml regardless, but I thought it would be
> nice if Phobos had a working XML library. What say you?
I haven't looked at kxml -- but why not just wrap libxml2? It's widely
regarded as a fast, stable, portable and *correct* XML library. I wrote a
partial libxml2 wrapper (mostly the tree.h stuff, and some libxslt) in
under an hour as a learning exercise; someone with real D chops could
turn out a polished interface in short time.
The fact that libxml2/libxslt support not only XML parsing and DOM
building, but also XSLT, XPath, XPointer, XInclude, RelaxNG, etc., means
that any homegrown library will be hard-pressed to cover the same range
of tools and features.
There are too many half-baked XML libraries in the world. No disrespect
intended to opticron or anyone else; it just doesn't make a lot of sense
to reinvent such a complex wheel (and believing that XML processing isn't
complex is a sure sign that your homegrown library's design is
incomplete!).
Graham
More information about the Digitalmars-d
mailing list