Woodstox 3.1 (release candidate 1) just released
After taking almost a full year to get 3.0 release out, it took less than 2 months to get the first release candidate of Woodstox 3.1 out. Since this is the first "minor" release (there have been three major releases, and multiple patches, but only "pre-release minors", like 2.9), it may be interesting to know what is going on with Woodstox development.
The short answer is that the features of this release (described below) were ones that optimally would have made it into 3.0 release, but that needed more internal changes than dev team was prepared for during the end of 3.0 cycle. On the other hand, these changes did not need major API changes. This made them good candidates for being implemented right after 3.0, but before full (possibly backwards incompatible) 4.0 release.
So what are the new and improved features? There is only one completely new feature:
- Xml:id support was added. This allows for properly identifying the unique identifier of an element, without needing a DTD to specify attribute types. This is something that just makes sense, so I am happy it got finally added, and is enabled by default (check out XMLStreamProperties for the property to disable support, if for some weird reason that is needed)
In addition, 3 existing features were improved:
- XMLStreamWriter was ignoring namespace declaration calls, as well as prefixes for namespace URIs that were already bound: after changes repairing writer tries to honor prefix, and write out namespace bindings suggested by calls to XMLStreamWriter.writeNamespace(). This change was done to make it even more tempting use the repairing mode: it now does almost the same as non-repairing mode in most cases, and only uses different prefixes and adds automatic namespace bindings when it has to. Bit like having a well functioning automatic shifting.
- XMLStreamReader was only reporting SPACE in validating mode, but not in regular DTD-aware mode. Not any more: SPACE is now reported whenever DTD is handled, independent of validation.
- Missing validation checks for handling xml:space attribute were added: now it will verify type and enumrated values, in DTD-validating mode.
Additionally, the release will obviously contain all the fixes from 3.0.x maintenance branch.
So, what's next with Woodstox? There are 2 main alternatives: another minor release (to perhaps contain one or both of the most often requsted missing features: native XMLStreamWriter indentation [which, by the way, can be done using either StaxMate, or stax-utils, already], and W3C Schema Validation), or going straight to 4.0 development. Latter will mean some non-backwards - compatible changes (such as requiring JDK 1.4), but also allow actual API changes, and new version of Stax2 extension API.
ps. Regarding stable/maintenance branch, 3.0.2 patch was also released: it fixes couple of user reported problems.