> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# DocumentDefinition

> The DocumentDefinition object in Vantage JSON output describes the structure of extracted data and lists the fields a Document skill can extract.

**DocumentDefinition** contains an object of type **RootConcept**.

## DocumentDefinition

| Property      | Type      | Description                                    |
| :------------ | :-------- | :--------------------------------------------- |
| `RootConcept` | `Concept` | The root concept of the extracted information. |

Extracted elements are represented by concepts. Each concept corresponds to one type of object and has a unique name, ID, and fields description.

## Concept

| Property | Type              | Description                                             |
| :------- | :---------------- | :------------------------------------------------------ |
| `Id`     | `String`          | The ID of the concept.                                  |
| `Name`   | `String`          | The name of the concept.                                |
| `Fields` | `ConceptField []` | A description of the structure of the extracted fields. |

**ConceptField** describes the structure of the extracted fields. A field may contain values of different types, either simple (e.g. string, data, number, bool, or image) or combined (i.e. a child object).

## ConceptField

| Property          | Type                                                                   | Description                                                                                                                                                                                                                                                                                                                                             |
| :---------------- | :--------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Id`              | `String`                                                               | The ID of the field.                                                                                                                                                                                                                                                                                                                                    |
| `Name`            | `String`                                                               | The name of the field.                                                                                                                                                                                                                                                                                                                                  |
| `Type`            | `Enum {Concept / String / Image / ISOdate / Boolean / Decimal / Enum}` | The type of field data.                                                                                                                                                                                                                                                                                                                                 |
| `EnumValues`      | `EnumValue []`                                                         | The enumeration of the possible field values. **Note:** This property is not implemented.                                                                                                                                                                                                                                                               |
| `Cardinality`     | `Cardinality`                                                          | Whether the field recurs multiple time in the document.                                                                                                                                                                                                                                                                                                 |
| `ValueConcepts`   | `Concept []`                                                           | A description of the child concepts.                                                                                                                                                                                                                                                                                                                    |
| `ValueConceptIds` | `String []`                                                            | An array of the IDs of the child concepts. This property becomes available only if one concept is a child of multiple parent concepts. The child concept will be written in its entirety in the **ValueConcepts** property of one of its parent concepts. The other parent concepts will only get its identifier in their **ValueConceptIds** property. |

**EnumValue** describes the Enum element of the **ConceptField** object.

## EnumValue

| Property | Type     | Description              |
| :------- | :------- | :----------------------- |
| `Id`     | `String` | The ID of the element.   |
| `Name`   | `String` | The name of the element. |

<Info>
  The **EnumValues** property is not implemented.
</Info>

**Cardinality** specifies whether the field recurs multiple times in the document.

## Cardinality

| Property | Type      | Description                      |
| :------- | :-------- | :------------------------------- |
| `Min`    | `Integer` | The minimum number of instances. |
| `Max`    | `Integer` | The maximum number of instances. |

If Min=0 and Max=1, the field must not recur in the document. If Min=0 and Max= -1, the field may recur multiple times in the document.
