# The eXtremeDB Data Definition Language (DDL)

> C/C++ applications require an external database schema defined in the eXtremeDB Data Definition Language (DDL). The schema is compiled to produce a generated API for the database objects defined in the schema which is then linked into the application. Each database has a DDL specification that identifies the database, defines each data class, its elements (fields), its relationship to other data classes, and data access methods. The DDL syntax, keywords and preprocessor are designed to be similar to elements of the C/C++ language to simplify learning and understanding.

> Please use the following links to view details of these DDL features:

> Base Data Types | The supported eXtremeDB data types
> Preprocessor | C language type preprocessor directives
> Declare Statement | The `declare` statement syntax and meaning
> Struct Declaration | The `struct` declaration syntax and usage
> Enum Declaration | The `enum` declaration syntax and usage
> Class Declaration | The `class` declaration - defining a database Class
> Element Statement | The element statement - defining fields of a Class
> Access Statement | The access statement - defining indexes for a Class
> Event Statement | The event statement - defining events for a Class
> Reserved Words | Reserved words for the DDL processor
> DDL Example | An example showing usage of the DDL features