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