Generalization is the process of reversing a specialization. It converts specialized elements or attributes into the original types from which they were derived.
In this section:
- Overview of generalizationSpecialized content can be generalized to any ancestor type. The generalization process can preserve information about the former level of specialization to allow round-tripping between specialized and unspecialized forms of the same content.
- Element generalizationElements are generalized by examining the @class attribute. When a generalization process detects that an element belongs to one of the modules that is being generalized, the element is renamed to a more general form.
- Processor expectations when generalizing elementsGeneralization 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 shell.
- Attribute generalizationDITA 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.
- Generalization with cross-specialization dependenciesDependencies across specializations limit generalization targets to those that either preserve the dependency or eliminate them. Some generalization targets will not be valid and should be detected before generalization occurs.