1. A method comprising: a) defining a document definition based on a plurality of predefined data elements arranged in a tree-like data structure; b) editing one or more of the predefined data elements using content-specific selection menus to generate data elements; c) storing the data elements in a relational database to store a customized document; and d) automatically synthesizing text from the data elements by compiling the data elements according to the structure defined by the document definition to generate the customized document.