From ... Path: archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!npeer.kpnqwest.net!nreader1.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: XML and lisp References: <3B85106D.C0EFD770@cfmu.eurocontrol.int> <3207626455633924@naggum.net> Mail-Copies-To: never From: Erik Naggum Message-ID: <3207655030850317@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 25 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 24 Aug 2001 15:17:11 GMT X-Complaints-To: newsmaster@Norway.EU.net X-Trace: nreader1.kpnqwest.net 998666231 193.90.207.159 (Fri, 24 Aug 2001 17:17:11 MET DST) NNTP-Posting-Date: Fri, 24 Aug 2001 17:17:11 MET DST Xref: archiver1.google.com comp.lang.lisp:14729 * Tim Bradshaw > I'm curious about your syntax though: If I want to go from Lisp to > something (rather than from something to Lisp), it seems that the syntax > you give is amiguous because of this (I cut the lines that don't seem > relevent). > > > XML Enamel (NML) CL > > > (foo (bar "zot")) > > zot > (foo (bar "zot")) The key to this is the relationship between foo and bar. Whether bar is an attribute or a sub-element of foo is irrelevant to processing them, but when you need to turn this back into SGML/XML/Enamel, you need to know which it is. This is why I said: As for writing SGML/XML/HTML/whatever, I have a simple way to get rid of the annoying verbosity of these stupid languages while _retaining_ that mistake between attribute values and elements, because it is quite hard to make simple regular expression-based conversions retain enough data about an element to decide what should be attribute and element. ... implying that I would normally have such information and use it when generating attribute/value or sub-element/contents. ///