- APIs in development can have incompatible changes.
(SAX to date has been in development.)
- Once they are "final", all changes must be compatible.
(From now on ... )
For Java, see chapter 13 of the Java Language Specification:
http://java.sun.com/docs/books/jls/html/13.doc.html
That doesn't address the JDK 1.2 package versioning work, but it does
give some background that may be useful for non-Java systems.
It also doesn't address the compatibility with respect to serialized
objects; a parser API should have no need to worry about that stuff
though! I like the idea of never using serialization; instead, it's
safer to use Externalization, since developers must explicitly think
about such data interfaces. (Hmm, data interfaces ... "XML"? ;-)
- Dave