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]

Reply via email to