Overview of DITA extension facilities

DITA provides three extension facilities: configuration, constraint, and specialization. In addition, generalization augments specialization.

Configuration enables the definition of DITA document types that include only the vocabulary modules that are required for a given set of documents. There is no need to modify the vocabulary modules. Configurations are implemented as document type shells.
Specialization enables the creation of new element types in a way that preserves the ability to interchange those new element types with conforming DITA applications. Specializations are implemented as vocabulary modules, which are integrated into document-type shells.

Specializations are implemented as sets of vocabulary modules, each of which declares the markup and entities that are unique to a specialization. The separation of the vocabulary and its declarations into modules makes it easy to extend existing modules, because new modules can be added without affecting existing document types. It also makes it easy to assemble elements from different sources into a single document-type shell and to reuse specific parts of the specialization hierarchy in more than one document-type shell.

Generalization is the process of reversing a specialization. It converts specialized elements or attributes into the original types from which they were derived.
Constraint enables the restriction of content models and attribute lists for individual elements. There is no need to modify the vocabulary modules. Constraints are implemented as constraint modules, which are integrated into document-type shells.