21. A computing system for enabling a software application in a computing device to manipulate data through logical views, comprising: a memory; a definitions file having a plurality of sections that define a correspondence between stored data in a plurality of data sources and one or more logical views, the plurality of data sources containing at least one data source that is not a relational database, each of the plurality of data sources storing data; and a join engine stored on the memory and configured, when executed, to automatically interface between at least one logical view and a corresponding plurality of stored data sources, including the at least one data source that is not a relational database, such that, when an operation is performed on the at least one logical view, underlying stored data is automatically manipulated in the corresponding plurality of stored data sources.
21. A computing system for enabling a software application in a computing device to manipulate data through logical views, comprising: a memory; a definitions file having a plurality of sections that define a correspondence between stored data in a plurality of data sources and one or more logical views, the plurality of data sources containing at least one data source that is not a relational database, each of the plurality of data sources storing data; and a join engine stored on the memory and configured, when executed, to automatically interface between at least one logical view and a corresponding plurality of stored data sources, including the at least one data source that is not a relational database, such that, when an operation is performed on the at least one logical view, underlying stored data is automatically manipulated in the corresponding plurality of stored data sources. 23. The computing system of claim 21 wherein the at least one data source is an XML file.