Specialization can be broadly categorized into two types:
Defines new topic or map structures derived from base topics and maps, such as concept, task, or reference.
Defines markup for a specific information domain or subject area, such as programming or hardware.
To specialize an existing component, add the specialization statements to your DITA files, clearly identifying the ancestry or evolutionary path of your specialization. This way you can retain at least a minimum level of semantic structure during information reuse or interchange.
Structural specialization defines new types of structured information, such as new topic types or new map types. Structural specialization allows you to create new topic types and yet maintain compatibility with existing style sheets, transforms, and processes.
Structural specializations declare new top-level topic types and map types. You use structural specializations to define entirely new document structures. With structural specializations, you can specialize any base element type, including topic and map, as well as elements in any topic or map specialization.
Domain specialization defines new types of elements, such as a new type of the <paragraph> element. These element specializations can be specific to a particular information domain or subject area, such as programming or hardware. For example, you can specialize the <screen> element from the user interface domain to catalog all dialog boxes.
When implementing domain specialization, you define new elements for use within any topic or map type. Using domain specializations, you can specialize any base DITA element that is an allowed descendant of <topic>, <map> or any element in any other domain module.
For example, map-specific elements <topicref>, <topichead>, and <topicgroup> are defined as domain elements, even though you can expect them to be part of the base <map> type. Therefore, defining specializations of <topicref> or <topichead> is domain specialization, not map specialization.