
XOM (XML Object Model) is an open source API for processing XML with
Java using a streaming tree model. Although it is open source, XOM was
implemented using the cathedral model of development (one designer's
vision) rather than the bazaar model. This JavaPolis talk by Elliotte
explores the design goals, basic API principles, XML principles, Java
restrictions and requirements, and testing techniques and tools that
have informed XOM's development. In the process, Elliotte identifies
some general principles of API design for all Java libraries and
systems.