REXML Architecture Overview REXML is separated into three main API layers, based on function: parsers, nodeset access APIs, and evaluators. The nodeset access APIs and the evaluators are what programmers interface with to use REXML. Architecture diagram Parsers REXML is based on a core set of parsers. There are currently two parsers: one for XML, and one for XPaths. Source for the parsers are located in src/rexml/parsers/. Nodeset Access APIs These are what most people see. The original REXML API, the SAX2 API, the Pull Parser API, a DOM API... these all belong in this category. They use the core parser API to do their work. All of these APIs should implement the abstract node API, if they want to be useable with the higher-level evaluators. Evaluators Evaluators are high-level workers, and include things like XML output writers and XPath interpreters. Evaluators use the parsers and the abstract node API; any XML access API that conforms to the abstract node API should be useable with the evaluators. The Abstract Node API The abstract node API is a minimal set of methods that must be implemented by a nodeset access API if it is to be used by evaluators.