The purpose of the struct DTD is to specify and document general purpose data structures. The term data structure here must be understood in the meaning of the capabilities of programming language structures such as C struct, or Java class with attributes only.

As such, an instance of the struct DTD can specify a data structure as a set of named, typed fields.

The struct dtd has provisions to include extensive structured documentation for each data structure and each field in the data structure, with a short description (label) and an optional detailed documentation. Moreover, various constraints on field values can be expressed formally (such as cardinality, and data type-specific constraints such as patterns or maximum lenghts that string value must respect).

This documentation can be presented as HTML or other formats such as PDF.

In essence, the struct DTD is a special-purpose schema language that satisfies the messaging requirements of most e-commerce and business applications. As such, instance of the struct DTD can be converted to XML DTDs or W3C XML Schemas.

A primary design goal of the struct DTD is to specify data structures that can be mapped easily to common programming language data structures (such as C/C++ structs, or Java, Python, or Visual Basic classes). The mapping to programming languages is usually performed using code-generation that produce programming language classes or structures from the struct specifications. The generated code has the ability to serialize/deserialize to and from an XML representation.