# The INTERLIS-Compiler

## System Requirements

For the current version of ili2c, you will need a JRE (Java Runtime Environment) installed on your system, version 1.6.0 or later.

## Installing ili2c

To install ili2c, choose a directory and extract the distribution file there.

## Running ili2c

There is currently no launcher. ili2c can be started with

`java -jar ili2c.jar [options]`

If you run the compiler without any options, a GUI (Graphical User Interface) will appear.

## Graphical User Interface

### Menus

#### File

New
  create a new, empty compiler configuration
Open..
  opens an existing, previously saved compiler configuration
Save
  saves the current compiler configuration
Save as...
  saves the current compiler configuration to a different file
Exit
  exits the compiler

#### Tools

Model Repositories...
  opens a dialog to edit the settings that are used to access model repositories. Multiple entries can be seperated by semicolon (';').
  %JAR_DIR is a placeholder to refere to the folder named "standard" in the folder where ili2c.jar is located.
  %ILI_DIR is a placeholder to refere to the folder with the given ili-file.

#### Help

ili2c Help...
  shows this help
About...
  shows the current version of the compiler

### Input tab

Use this tab, to define options, that the compiler will read while running.

#### auto complete fileset

If this is checked, the compiler will try to find missing models from the files with extension .ili that are in the folders of the files in the `Files` list.

If this is unchecked, all directly or indirectly imported models, need to be in the `Files` list in the correct ordering.

#### Files

This contains the list of INTERLIS schema files, that the compiler will read and check. If the model imports other models, or is a a translation of another model, all these directly or indirectly referrenced models need to be in the list, if the `auto complete fileset` is not checked. The ordering of the entries is significant, if the `auto complete fileset` is not checked. Use the `Move up` and/or `Move down` buttons to reorder the list.

#### Add Model (.ili)...

Use this button to add a new INTERLIS schema file to the list of files, that the compiler should check.

#### Remove

Use this button to remove the selected entry from the list of files.

#### Move up

Use this button to move the selected entry one line up. The ordering of the entries is significant.

#### Move down

Use this button to move the selected entry one line down. The ordering of the entries is significant.

### Output tab

Use this tab to provide options, that control the files that the compiler will generate.

#### Kind of output

Defines the kind of output, that the compiler will generate. If you just like to check your INTERLIS schemas, select `Generate no output`.

Generate no output
  writes no output
Generate an INTERLIS 1 model
  writes an INTERLIS 1 model (ili-file)
Generate an INTERLIS 2 model
  writes an INTERLIS 2 model (ili-file)
Generate an XML-Schema
  writes an XML schema according to INTERLIS 2 encoding rules (xsd-file)
Generate an ILI1 FMT-Description
  writes an XML schema according to ILIGML (eCH-0118) encoding rules. The resulting schema is a valid GML application schema.
Generate Model as IlisMeta-Transfer
  writes an XML data file according to the meta-model IlisMeta07.
deprecated (IOM)
  writes an XML data file according to a deprecated meta-model.
deprecated (ETF)
  writes an experimental XML schema. Note that the encoding rules will change without notice

#### Filename

Enter the name of the file, that the compiler will write, if you didn't choose to generate no output.

#### Report Errors and warnings

Select this button, if you like to see errors and warnings.

#### Report only errors

Select this button, if you like to see only errors.

#### Include the predefined MODEL INTERLIS

The INTERLIS language includes a predefined base model (see Annex A in the language definition). Select this button, if you like to include it in the generated output. This option is normally not useful.

### lower area

#### Compiler messages

If your INTERLIS schema does not follow the INTERLIS language description, you will see here messages that point you to the problems.

#### Run compiler

Use this button to start a new compiler run. The compiler will then check any INTERLIS schema files, that you have added to the files list and generate the output file, that you defined on the output tab.