Subject: Re: XML config file
To: Iain Hibbert <plunky@rya-online.net>
From: Jason Thorpe <thorpej@shagadelic.org>
List: tech-userlevel
Date: 07/21/2006 14:47:59
On Jul 21, 2006, at 1:46 PM, Iain Hibbert wrote:

> On Tue, 4 Jul 2006, Jason Thorpe wrote:
>
>> ...and we can do this now, with proplib.
>
> Ok, I've started using some proplib functions for passing  
> information to
> and from the kernel and I like it so far.  Is there a good reason  
> why we
> can externalize a dictionary but not an array? or in fact, why not  
> just
> prop_object_externalize() ?

Because I modeled this somewhat after the CFPropertyList /  
NSDictionary stuff in OS X.  Specifically, NSDictionary has - 
writeToFile:atomically:, which takes a dictionary and serializes it  
to an XML plist file, as well as +dictionaryWithContentsOfFile: and - 
initWithContentsOfFile:.  NSObject itself has no such method.

I would be happy to add internalize / externalize routines for  
prop_array_t (NSArray in OS X has similar methods to NSDictionary's  
serialization support), but I don't want to add generic  
prop_object_externalize() / prop_object_internalize() because it's  
rather important, I think, to explicitly state in the code which  
you're expecting and let the parser return an error when it gets the  
wrong one.

> As to the utility of using XML for config files, it is handy having  
> the
> internalize/externalize function and I am going to use that, but after
> having looked at the output, my opinion is that its not very human
> friendly at all so better suited for private database files rather  
> than
> configuration files.

Perhaps I've simply grown so used to it... I now actively DISLIKE the  
flat config files that BSD uses, because of their lack of structure :-)

-- thorpej