What is a DITA specialization hierarchy?

A DITA specialization hierarchy is a structure that allows you to extend and customize the standard DITA elements to meet specific documentation requirements. It enables organizations to create their own domain-specific document types and reuse existing DITA components efficiently. The hierarchy typically consists of three main levels: base, domain, and topic types, which are used to organize the specialization. Let’s delve into each of these levels:

Base Types

The base types represent the standard DITA elements, which are typically used as building blocks for specialization. These can include elements like <topic>, <section>, and <figure>. Specializations are built upon these base types, allowing you to inherit their structure and functionality while adding your customizations.

Domain Types

Domain types are created by extending the base types. They are tailored to a specific industry or organization’s needs. For example, in manufacturing documentation, you might create domain types specific to assembly instructions or maintenance procedures. Domain types allow you to add industry-specific elements, attributes, and constraints to your DITA specialization hierarchy.

Topic Types

Topic types represent the highest level of specialization. These are created by extending domain types or base types and are tailored for specific content requirements. Topic types define the structure and semantics for different types of documents, such as product manuals, technical guides, or safety procedures. Specializations at this level are highly specific and can include unique elements and constraints.

Example:

Here’s an example of a DITA specialization hierarchy:


<!-- Base Types -->
<element name="base-figure" class="- topic/fig "><desc>Base Figure Element</desc></element>
<element name="base-topic" class="- topic/topic "><desc>Base Topic Element</desc></element>

<!-- Domain Types -->
<element name="domain-assembly" class="- topic/assembly " extends="base-topic"><desc>Domain Assembly Element</desc></element>
<element name="domain-maintenance" class="- topic/maintenance " extends="base-topic"><desc>Domain Maintenance Element</desc></element>

<!-- Topic Types -->
<element name="topic-product-manual" class="- topic/product-manual " extends="domain-assembly"><desc>Topic Product Manual Element</desc></element>
<element name="topic-safety-procedure" class="- topic/safety-procedure " extends="domain-maintenance"><desc>Topic Safety Procedure Element</desc></element>

In this example, we have a specialization hierarchy that extends base types to create domain and topic types, catering to specific content needs in manufacturing documentation.