# Columns Page

The second step is to define the projection columns, their names, type, default values and other options.

The tree on the left shows a prototype node subtree and the corresponding output column names. Nodes in the tree displayed with italic font already have a corresponding column definition, the name of which is shown after the -> sign.

This tree is used to create a projection from XML data stored in the nodes and attributes into the table columns.

The table on the right allows to manage the column definitions:

- Create new output columns
- Remove existing columns
- Move up and down
- Adjust their:
  - Name it must be unique among the set of columns.
  - Type data type the destination column will have.
  - Default value value used in case none can be found at the path provided.
  - Path is a relative xPath, that is used to retrieve a column data for the given row.
  - Precision allows to set a precision for the data types that support it.
  - Scale allows to set a scale for the data types that support it.
  - Date format defines a custom date format used to parse values. For date, time and timestamp types only.

Once the columns are defined, the preview panel on the bottom shows the resulting table.

## Creating the output column

The wizard automatically generates output columns to reduce boilerplate operations. There are two ways of creating new columns:

- The simple way is to use the tree on the left side, simply using the context menu for the desired attribute or node. The wizard will automatically generate a column definition. All you need it to adjust the type. Multiple columns can be selected using
  Ctrl
  +Click or
  Shift
  +Click. There is a button between panels to facilitate creating columns even further.
- The Hard way of defining the output columns is to use add button above the definitions table. Then you need to set the name, data type and the xPath to retrieve the desired data.