The tool works as follows:

## Step 1: Uploading the files 

In the uploaded Document it searches for headings equal to:

* `6\tVNFD TOSCA model`
* `7\tNSD TOSCA model`
* `8\tPNFD TOSCA model`,
* `9\tCommon Definitions`,

## Step 2, generation of data types

For each of the section after the heading the tool searches for tables with the following properties:

* It contains only one cell (i.e. one row and one column) and
* the content matches the regular expression `^tosca\.[a-zA-Z\.:0-9\s]*$`, i.e. the text starts with `tosca.` and contains letters, numbers, `:` or white space.

## Step 3, generation of examples

Within Annex A, each example is identified by a set of lines starting with `tosca_definitions_version`. If the last text line before the start of the example contains the name of a YAML file, that name is used to name the generated file for the example. Otherwise a incremented, 2-digit integer number is used. Filename is prepended with the number of the clause where the example is found.

## Step 4: Generation of files

The four sets of generated definitions and all identified Annex A examples are written to files named:

* `generated_etsi_nfv_sol001_vnfd_types.yaml`
* `generated_etsi_nfv_sol001_nsd_types.yaml`
* `generated_etsi_nfv_sol001_pnfd_types.yaml`
* `generated_etsi_nfv_sol001_common_types.yaml`
* `example_<clause>_<examplename>.yaml`

## Step 5: Download

The files are archived in a zip file named `tosca_defs.zip` which is served as a response.

