This chapter describes in detail the XML structure of the register file format.

Root element of the register definition.

Elements of this type represents the root definition of a register.

This element determines mode or type of register being defined.

This element is used to define the register table.

This is the root element for defining views over the table defined in this register file.

This attribute is used to define the name of the register.

When the register table is created in the database it will be located in the reg schema. The table itself will be named after the register name.

In task guides, if a register external data source should map directly to the table then this name should be referenced.

Elements of this type represent weather of not the register can be edited via task guides.

This element represent that the register is static.

In essence this means that it cannot be edited via F2-Scripts defined in task guides.

This element represent that the register is editable.

In essence this means that it can be edited via F2-Scripts defined in task guides.

Elements of this type represent that the register is static.

In essence this means that it cannot be edited via F2-Scripts defined in task guides.

This element means that the register has a canonical Excel data file, which should be used to populate the register.

This element means that the register has a canonical CSV data file, which should be used to populate the register.

Elements of this type represent that the register is editable.

In essence this means that it can be edited via F2-Scripts defined in task guides.

This element means that the register has a canonical Excel data file, which should be used to populate the register.

This element means that the register has a canonical CSV data file, which should be used to populate the register.

Elements of this type mean that the register has a canonical Excel data file, which should be used to populate the register.

This attribute represents the path to an Excel data file, used to populate the current register table.

The path is relative to the path defined by the RegisterGenerator app setting Register.DataDir.

Elements of this type mean that the register has a canonical CSV data file, which should be used to populate the register.

This attribute represents the path to a CSV data file, used to populate the current register table.

The path is relative to the path defined by the RegisterGenerator app setting Register.DataDir.

This attribute represents the character used to separate CSV values.

Elements of this type represent the root element for defining views over the table defined in this register.

Repeatable element defining a view over the table defined in this register.

Elements of this type represent a view over the table defined in this register.

This element represents the root element for defining parameters for the view.

Note that if the view has no parameters then it's generated as an SQL view. If it has parameters then it's generated as an inline table valued function.

This element represents the ordering of the view results.

If not defined then the elements will be ordered based on the primary key of the table.

This element represents a view filter.

This is a task guide bool expression which determines if a row should be present in the output. The expression however only supports a subset of the full expression language.

The filter can refer to table columns and view parameters (if present).

This element represents the maximum number of row allowed in the view result.

This attribute represents the name of the view. Note that the view is always defined in the reg schema.

In the database the view will be named registerName#viewName where registerName is the name of the register and viewName is this name.

Elements of this type represent the root element for defining view parameters.

Repeatable element which defines a parameter for the current view.

Elements of this type is used to define parameters which can be used in parameterized views.

This attribute represents the name of the parameter.

This attribute defines the parameter type. The types are abstract meaning they are named after the task guide types. But translated to appropriate SQL types.

List of supported types:

bool
Boolean true/false value.
int
Integer value.
double
Floating point value.
decimal
Fixed point value.
string
String input. No upper length limit unless specified via MaxLength.
date
Date value.
datetime
Date and time value.
caseid
Reference to an F2 case.

Elements of this type represent 1 or more columns which the output should be sorted by.

The order of the columns matter. The elements will first be sorted by the first column. If 2 values are the same here then they are sub-ordered by the second column (if present) and so on.

This element means that the referenced column should be sorted ascending. Meaning smallest to largest.

This element means that the referenced column should be sorted descending. Meaning largest to smallest.

Elements of this type represent a reference to an existing table column.

This attribute refers to the name of an existing column defined in the table.

Elements of this type is used to define the physical table of a register.

This is the root element for defining columns for a register table.

This element represents the primary key definition for a register table.

If no primary key is defined, then the implicit uniqueidentifier column present in all register tables, will become the primary key.

This is the root element for defining non-clustered indices for a register table.

This element represents a full text index definition for a register table.

Elements of this type represent the root element of the columns for a register table.

Repeatable element which represents the column of the current table.

Elements of this type represent the definition of a register table column.

This attribute defines the name of the column.

This attribute defines the column type. The types are abstract meaning they are named after the task guide types. But translated to appropriate SQL types.

List of supported types:

bool
Boolean true/false value.
int
Integer value.
double
Floating point value.
decimal
Fixed point value.
string
String input. No upper length limit unless specified via MaxLength.
date
Date value.
datetime
Date and time value.
caseid
Reference to an F2 case.

This attribute is used to determine the maximum length of this column.

Note that only string columns can have a max length.

If not defined then the column will not have a maximum size.

Besides it usage as an invarant it is needed to use string columns as part of an index or primary key as there's a limit as to how wide index keys can be.

This attribute is used to determine if a columns should be an identity column.

Identity columns are columns where the value is auto-incremented by SQL server.

This means that you cannot assign a custom value to this column. The value is ALWAYS auto generated

Note that only intcolumns can be an identity column.

Each table can at most have 1 identity column

If not defined the default value is false.

Elements of this type represent the primary key of a table.

The primary key is a special index which is implicitly always unique. A table can only have a single primary key.

The primary key is usually used to determine the canonical identifier of a row.

Note that in the context of registers, the primary key is ALWAYS the clustered index. Which in short means that this key determines the physical layout of the table.

Special element which refers to the uniqueidentifier column which is implicitly present in all register tables.

Repeatable element which determines which columns should be included in the index. At least 1 column is required.

Note that the column order is respected when creating the index. And can very much affects which queries the index can be used for.

Elements of this type represent a reference to an existing table column.

This is usually used to determine which columns are included in an index.

This attribute refers to the name of an existing column defined in the table.

Elements of this type represent the root element for defining table non-clustered indices.

Repeatable element which defines a non-clustered index for the current table.

Elements of this type are used to define non-clustered indices for the register table.

Repeatable element which determines which columns should be included in the index. At least 1 column is required.

Note that the column order is respected when creating the index. And can very much affects which queries the index can be used for.

This attribute is used to define the name of an index.

If specified the index generated in the database will have this name. Additionally if the index is named it can be used as the base index for a full text index.

If not specified the index will receive an auto generated name.

This attribute defines if the index should be unique.

A unique index means that no 2 rows can exist in the table, where ALL columns included in the index are identical.

If not specified, the default is false.

Elements of this type is used to define a full text index for a register table.

Full text indices are special indices which allows for text searching which is more flexible than regular indices.

A register is REQUIRED to have a full text index, if it is to be used in the register autocompleter in a task guide.

This element contains a list of columns which should be included in the full text index. At least 1 column is required.

This attribute is used to determine which index should be the basis of the full text index.

It should either refer to a named index or use the special value Primary for the primary key.

Note that if a named index is referenced, it also needs to be unique.