Specialized content can be generalized to any ancestor type. The generalization process
can preserve information about the former level of specialization to allow round-tripping
specialized and unspecialized forms of the same content.
Elements are generalized by examining the @class attribute. When a
generalization process detects that an element belongs to one of the modules that
generalized, the element is renamed to a more general form.
Generalization processors convert elements from one or more modules into their less
specialized form. The list of modules can be supplied to a
generalization processor, or it can be inferred based on knowledge of a target document-type
DITA provides a syntax to generalize attributes that have been specialized from the
@props or @base attribute. Specialization-aware processors
SHOULD process both the specialized and
generalized forms of an attribute as equivalent in their values.
Dependencies across specializations limit generalization targets to those that either
preserve the dependency or eliminate them. Some generalization targets will not be
should be detected before generalization occurs.