David Brownell wrote: > > > > Re what to do ... changing the default behavior of a SAX2 parser isn't > > > something that could be done while retaining backwards compatibility. > > > > I don't think adopting this change will break backwards compatibility: > > the information that users get today will remain unchanged. > > The original Xerces bug report identified a backwards-incompatibility: > different values reported for "xmlns" and "xmlns:*" attribute values. > Even wrote that the empty string was preferred, as I recall ... that's > "information that users get today". How can you claim that? > > The change would be backwards-incompatible to every SAX2 driver. > It would instantly make conformant ones be nonconformant. (Nothing > in SAX2 r2 does that!!) And there's really no way to evaluate the
This brings up a related issue. It seems that there were a few minor method signature changes made between SAX2.0 final and subsequent sax2 bugfix releases. For example, DefaultHandler.resolveEntity() added an extra exception in its throws clause. This is the correct fix, however, it causes problems for application servers that want to be J2EE compliant. The reason is that J2EE 1.3 includes JAXP 1.1 which includes SAX2.0 final. To be J2EE compliant, app servers must pass signature tests. These tests fail with the latest versions of sax2r2. So to solve this our reference parser had to be modified to keep the old version of the signatures. As I understand it, the reasoning behind this is that J2EE certification is based on specs. The JAXP 1.1 spec says it includes SAX2.0 final and that distribution unfortunately had bugs in it, so we are stuck with the old signatures until the next major release. The fixes to AttributesImpl, for example, were included b/c those were implementation fixes to the SAX2.0 final spec. Here are the signature diffs that were found: + 3 SAXException-s had public no-arg constructors added + DefaultHandler.resolveEntity() added a throws IOException Not sure what SAX should do with this info b/c these can probably be considered SAX spec bugs. For xerces, this means that one could either conform to the latest bugfix SAX spec or to the JAXP 1.1 spec (b/c JAXP 1.1 froze at SAX 2.0 final), but not both. Hope this makes sense, let me know if it is unclear. -Edwin --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
