The model of an application can be loaded into the repository from a pair of files: a control file `<application code>_metadata_repository.ctl` and a data file of the same name ending in `.dat`. The files are loaded with Oracle SQL\*Loader. The repository of Invantive Studio itself is delivered this way. ## Data File The data file holds every kind of row of the model in one file: - A row starts with the code of its kind followed by a vertical bar, such as `tbe|` for a table, `tcn|` for a table column, `viw|` for a business object and `are|` for an attribute rule. - The values are separated by vertical bars. A value that contains a vertical bar or a line break is enclosed in `<data>` and `</data>`. - A row ends with three hashes followed by a line break, so a row may span several lines. ## Control File The control file says for each kind of row into which business object of the repository it is loaded and in which order the values come. Every row is loaded through a [[Invantive Studio/Repository/Concepts/Business Object|business object]], so every rule of the repository applies to it. ## Control Rows The data file starts with rows of the kind `pld|` that perform an action instead of storing a row: they log on to the repository, switch the loading to update a row with the same [[Invantive Studio/Repository/Concepts/Natural Key|natural key]] instead of inserting it twice, and clean up. A model can therefore be loaded again over an earlier version of itself. ## Producing the Files The files can be written by hand, generated from a spreadsheet, or exported from Invantive Studio with the command "SQL*Loader" on an application.