For Win32 clients, IE4 contains an XML parser, so it should be available
on most systems. Certainly, all Win98 systems have it (MSXML.DLL).
If you want something cross-platform or MSXML doesn't work for you, then
Expat works great. I've been using it for mod_dav. It is a C library and
seems quite fast. Jim Clark, an SGML/XML guru wrote it.
http://www.jclark.com/xml/expat.html
The Expat library is available under the MPL, so it can be included
without a problem in clients (and servers). If you modify, then you must
open-source the changes. Otherwise, it is not viral like the GPL, so it
won't impose upon your client.
I just checked on my Linux box here. libexpat.a is 79k with symbols
stripped.
There are quite a few XML parsers implemented in Java, too, if that is
viable for your client. Python has interfaces to several C-based
parsers, and a couple written entirely in Python. The Perl world has a
bunch of XML stuff going, also, but I'm not familiar with the details.
The general question: is it worth the effort? I believe that is an
unqualified YES. XML provides a lot of extensibility, flexibility,
internalization support, and a well-defined format where we can reuse
parsing code. Throw in tools, the fact that many people know XML, and
nicely documented DTDs, and a whole bunch of support and people can come
to play in the sandbox. One-off formats simply serve to create one-off
solutions without a bright eye towards future changes.
> 2) Database
> I believe we should think hard before locking down on a database structure.
> We should be able to handle: multi-disc CDs, compilations, soundtracks,
> classic CD, operas... I believe bands/composers/performers should get their
> own table.
This is currently being discussed on the cdin-server nospam at cdin.org mailing
list. Please see http://mailman.cdin.org/mailman/listinfo/cdin-server
for subscription information. A link to the list's archives is also
available there.
There is also a copy of the database schema that I used in my initial
cut at a server. The schema is at http://www.cdin.org/impl/tables.html.
> 3) Posting CD information
> I am a bit worried about letting posts accepted unchecked on the site. I am
> not so worried about typos than people abusing and adding offensive material
> for example giving a title like "This CD sucks!".
The last I saw on this was "last person rules". In any case, it would be
a policy of the server (code and site maintainer).
It is kind of hard to know what the consensus on this aspect is... there
has been so much traffic that it is difficult to see thru it all :-).
Luckily, it only affects the people who are implementing the server
code, and those who desire to run a server. There is potentially an
impact system-wide if we decide on some stronger forms of authentication
(e.g. hashed mail addresses).
> 4) Categories
> We should come up with a better categorization of the music than CDDB. The
> simplistic breakdown ("Classic", "80's", "Alternative"...) is really
> worthless. We need somebody to do some research to compile a better but
> understandable categorization.
There has been plenty of discussion about genres. Please see the cdin
mailing list archive at http://mailman.cdin.org/pipermail/cdin/. The
discussion seems to be moving onto the cdin-server mailing list, where
we are fleshing out the database requirements and design.
Cheers,
-g
-- Greg Stein, http://www.lyra.org/