PAX is a framework for practical transformation of XML data into Java objects. It is built on top of SAX the Simple API for XML (see SAX Homepage). Therefore it can be used together with any public available SAX compliant Java XML parser.
SAX gives the programmer a hook to install only one ContentHandler in a parser. That is quite awful, because this object has to handle all callbacks for all different tags from an XML stream. The idea of PAX now is to handle each tag with a separate so-called tag interpreter ( interface XMLTagInterpreter ). Such an interpreter is responsible for exactly one type of tag. Its task is to create a reasonable business object out of the data it receives through the parser from the XML stream. On the one hand this approach will increase the number of classes ( one for each kind of tag ), but on the other hand maintenance, extensibility and clearness is much better.
The three main components of PAX are: