Exporter
An exporter is an atomic adapter.
A personality in the Crawler system can be built around an exporter. It is not a requirement to do so, but using an exporter can make things easier by providing some useful pre-made functionality.
The exporter is a high-level adapter which coordinates parent-child relations between personalities. It is possible to create a new personality by tweaking an existing personality by overriding certain settings or adding to the existing settings. This 'personality-inheritance' mechanism is handled by the exporter adapter. For example, if the XHTML/CSS personality almost fits the bill, it's possible to derive a new personality from it, and enhance or change the way the derived personality behaves.
In many cases, personalities are built around a view exporter, which is a specialized exporter that supports multiple views.
Views are alternate data flows.
For example, an InDesign-to-XHTML/CSS conversion will use two separate views: an XHTML view and a CSS view.
The document will first be disassembled by a set of disassemblers, and the resulting output data flow will be duplicated into two separate data flows. One of the two data flows will be routed through the XHTML view, the other through the CSS view. The end result will be two separate data files: one file produced by the XHTML view, the other will be produced by the CSS view. Both files will be based on the same input data, but they will go through separate construction mechanisms.