From ... Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!news2.kpn.net!news.kpn.net!nslave.kpnqwest.net!nloc2.kpnqwest.net!nloc.kpnqwest.net!nmaster.kpnqwest.net!nreader2.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: The horror that is XML References: Mail-Copies-To: never From: Erik Naggum Message-ID: <3224504693262432@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 31 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 07 Mar 2002 15:44:44 GMT X-Complaints-To: newsmaster@KPNQwest.no X-Trace: nreader2.kpnqwest.net 1015515884 193.71.199.50 (Thu, 07 Mar 2002 16:44:44 MET) NNTP-Posting-Date: Thu, 07 Mar 2002 16:44:44 MET Xref: archiver1.google.com comp.lang.lisp:28047 * "Jeff Greif" | The intent of the approach I described is precisely that of having the | module writer prepare a DTD which describes the structure of the | configuration tree pertinent to that module only, with some leaf nodes | indicating where other content is to be or might be included. The approach you seem to want here, is an ex post facto DTD. In my view, that is a very sensible approach. They allow you to validate whatever you actually have. Constructing such a DTD is unfortunately not all that trivial, but it is quite doable. It is a pity that people do not use such a tool to construct DTDs that correspond to test documents instead of trying to do it by hand. That would make it possible to ensure that you "freeze" a configuration file format at a particular point without actual human intervention of the obnoxious silliness of DTD "design", but still allow your users to waste their time "validating" their configuration files and editing them with tools that have zero knowledge of their contents, only their syntax. Please remember that SGML and XML rely on an _application_ in order to imbue their syntactic verbosity with semantics of any kind. You have to use a large number of notations and notation validators to even approach correctness of a configuration file in a meaningful way. Structure is _nothing_ if it is all you got. Skeletons _spook_ people if thwy try to walk around on their own. I really wonder why XML does not. /// -- In a fight against something, the fight has value, victory has none. In a fight for something, the fight is a loss, victory merely relief.