MlView is a generic XML editor that can edit all types of xml documents. MlView's design is organized around the Model/View/Controller paradigm. The model a.k.a "document model" is an in memory representation of the XML document. The views are the things (namely widgets) that allow the user to edit the document Model. In other words, views are what allows the user to perform editing actions on the document model. Controllers are somehow what does the glue between the document model and the editing views.
Each type of view "exports" the editing actions that it allows. Some view may allow the user to work on the structure of the document, other views may allow her to work in a more textual form, for example. These two hypothetical types of views would obviously "export" to different sets of edition actions.
The MlView editor can then be seen as a container of views and documents. Each view being "connected" to one document model. When a view issues an editing action on a document model, this model emits signals to reflect its new state. View that are connected to that document can then receive these signals and update themselves to reflect the new state of the document they are connected to.