Hello Sean

thanks for Rexml. impressive work. I will download 2.7.0 and try
to play with it at the weekend. if I find any problems I will let you know.

Markus

Sean Russell wrote:

> Greetings,
> 
> This is to announce the release of REXML 2.7.0, AKA 3.0-beta.  This is a
> significant release, and includes architectural changes and rewrites of
> large portions of the REXML code.  This release is *mostly* backwards
> compatible with REXML <= 2.5.x, the only behavioral differences being
> in the handling of text nodes -- more specifically, how :raw is handled.
> 
> I'm rushing this release, because I want to start getting feedback and
> testing on it ASAP.  The main reason for this is because REXML is now
> part of the standard Ruby distribution.  That is, from Ruby 1.8 on,
> REXML will be included as a standard library.  Since we're expecting
> 1.8 to be released soon, I'd like the opportunity to slip in as many
> optimizations and bug fixes as possible before 1.8 goes out.  As a result,
> you'll notice that the documentation is a bit out-of-whack; the change
> log, in particular, has not been updated.  This email is supposed
> to address this issue, until I can get a chance to rewrite the
> documentation.
> 
> 
> Architectural changes
> 
> REXML is now broken down into three sections, by purpose.  The first are
> the parsers, the second are the user APIs, and the third are the
> utilities. The utilities use the objects in the user APIs, and include
> things like
> XPath and validation.  The user APIs use the parsers, and are things like
> the SAX2 API, the Pull API, and the (non-yet-existant) DOM API.  By
> segregating the various parts, fixing bugs is easier, speed improvements
> have broader impact, and extending REXML is vastly easier.
> 
> 
> Behavioral changes
> 
> If you use the original REXML tree API, your applications will be a little
> slower parsing documents; this is temporary.  I haven't applied any speed
> optimizations to the new parser yet.  However, if you are in the need for
> speed, there is a new, lighter API that is faster than the old REXML
> parser (even without optimizations) and also consumes only half the memory
> of the old
> tree.  XPath on the old tree is faster, and is much faster on the new
> light
> tree.  Most of these speed improvements are translatable to the old REXML
> API, and will be in the future.
> 
> As I mentioned, the old API hasn't changed.  I've left the packages,
> classes, and methods alone, so applications that use REXML should require
> minimal
> changes (if any) to work with the new API.  Your only concern is if you
> use the :raw property of text nodes; in this case, you definately want to
> check
> the Text class API for behavioral changes.  Text node behavior is much
> clearer now.
> 
> The new REXML passes all of the old unit tests, as well as the Oasis
> XML test suites.
> 
> 
> Future direction
> 
> All of these changes were made for one purpose: to make REXML easier to
> maintain.  This translates directly into benefits for the users -- all of
> the features I mention are *not* currently present in REXML, but will
> be rapidly appearing in future versions.
> 
> It is now easy to tack on a DOM API to the front of REXML without
> incurring
> significant overhead.  It is also possible to use XPath with a wider
> variety
> of APIs, such as the SAX2 API (with caveats).  Bug fixes in the parser
> code will now directly affect all of the APIs, so no API will be left
> behind.
> There is greater opportunity for speed and memory use optimizations. 
> Finally, adding plug-in modules to REXML should be significantly easier.
> 
> Thanks for your attention,
> 
> Sean