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