A method and apparatus for generating customizable documents comprising a datafile
including a data structure for defining relationships between elements of a document
and variations thereof. A parser for reading the datafile and for creating instances
of document-class data structures in accordance with general document class definitions.
A user interface for inputting purpose parameters specifying a document variation
and a selection engine for utilizing the current values of the purpose parameters
for generating customized versions of the document.