Subject: Re: XML config file
To: None <tech-userlevel@netbsd.org>
From: James K. Lowden <jklowden@schemamania.org>
List: tech-userlevel
Date: 07/08/2006 15:12:10
Iain Hibbert wrote:
> On Tue, 4 Jul 2006, Magnus Eriksson wrote:
> 
> >   In that case, go with XML all the way.  Convert all config files in
> >   the
> > whole system to XML, have command line tools that manipulate XML the
> > way we now use grep, awk, etc to manipulate text, include an XML
> > parser library in the base system that anyone can use in their
> > programs, include good documentation on all the above, etc.

I assume this is just castles in the air, that no one is seriously
considering converting /etc to a collection of XML files.  

But if one were to consider such a thing, would it not make better sense
to take advantage of 20-odd years of experience, and use a relational
database instead?  

I know, it's too much, too big, too heavy, too complex.  Fine, except
SQLite is in the public domain and has a tiny footprint.  SQL is certainly
better suited to manipulating sets of data than are awk & friends, and
better at describing constraints than plain text or a DTD.  Yes, XPath is
a query language with some nice features, but just try getting any file to
enforce any kind of consistency.  (Is the user's shell acceptable?  Are
all users in /etc/group also in /etc/passwd? Who is in group A and not in
group B?)  

I fully expect any suggestion of introducing an RDBMS into the base system
to be met with derision.  Maybe it should be.  But that at least would be
a system designed to store data, manipulate them, and present them in
human-readable form (without the need for a full-screen editor).  That's
more than I can say for XML.  

--jkl