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.