When the program has started and is configured, there are four structural elements which cooperate to convert the input to the output. This arrangement can be seen in the diagram "Overall Architecture".
The input module reads and parses the input file(s) and
creates an instance of
XMLDocumentType which is the
Model Module. All of the input
modules are defined under the package
com.mcdermottroe.exemplar.input and every
input module implements the interface
InputModule.
The model module is not a module per
se but is rather a data structure
providing a standard representation of a DTD or schema
to allow a standard interface for both the input and
output modules to work on. All of the classes which
make up the model are defined in the package
com.mcdermottroe.exemplar.model and are
wrapped in an instance of
XMLDocumentType when being
passed between input and output.
The output module transforms the model into the relevant
output. This can either be one or more files or a Java
object, depending on the exact output module used. All
output modules are defined in sub-packages of the
package com.mcdermottroe.exemplar.output
and all are subclasses of
XMLParserGenerator.
The user interface module provides control options to the
user or calling process and provides localisation and
options configuration facilities to the rest of the
program. All user interface modules are defined under
the com.mcdermottroe.exemplar.ui package.
The "Data Flow" diagram shows the flow of data through the program.