Austin Ziegler wrote: > > I'm not Chad, but as someone who liked what Chad did and wrote a > follow-up library that (mostly) conformed to his API, I can explain > exactly why I did it much the same way. Basically, Chad is > representing an object (a rich site summary, or a channel). That it > happens to correspond to an XML format is somewhat irrelevant. There > are actually four common variants on this, and two less common > variants. By designing channels as objects, it becomes relatively > easy to support those variant formats. And this extends perhaps more so to such things as RDF and (XML) Topic Maps. They both make extensive use of XML, but as a serialization format. The markup is not the model, just a handy way of expressing it. Once I've slurped in some XML I'm more interested in what role it's meant to play in a given context than in the specifics of angle brackets and nested text. Creating objects around the syntax allows the developer to focus more on the information set than on the serialization. Now, I can see the value in having an XML-centric syntax available when the XML-ness of something is the primary concern. This would be a great benefit to XML folks who (for whatever reasons) choose Ruby for their XML manipulation. They might rather focus on an XML view of the world, rather than adopt Ruby idioms, for DOM or text manipulation. Some of these ideas have been disccussed on the RubyGarden wiki: http://www.rubygarden.org/ruby?XMLinRuby I also proffered the idea of E4X-like syntax in Ruby, on the REXML mailing list (ser-rexml-help / germane-software.com). There was a bit of discussion, though overall it was not well recieved :). By and large, it seems relatively easy to add such behavior when and where you need it through the use of modules. I'm unconvinced there is such a compelling need for this syntax in the core language. (But such discussions may find there way into my presentation on the state of XML processing in Ruby at RubyConf 2003. Be there or be square.) James Britt jbritt AT rubyxml DOT com