One of DITA’s unique features is specialization. At its simplest, specialization is the process that enables writers to extend existing information types or to define new ones. Specialization allows technical writers to extend DITA to meet their needs and the needs of their organizations.
Anyone who has worked with HTML and Cascading Style Sheets (CSS) will have an idea of how specialization works. In CSS, a class can apply multiple styles to a single element. For example, a CSS class called indent might be applied to a paragraph, thereby indenting the paragraph 0.25 inches—the HTML code for that is <p class="indent">. DITA specializations work in a similar fashion.
A specialization that’s used quite frequently is one that extends references. In baseline DITA, a reference is very generic. It can mean anything to anyone. However, if a writer is documenting code, the code samples in the document probably need to be arranged and formatted in a particular way. So the writer could create a specialization for code references and make the necessary modifications so that the new reference fits his or her needs.
But a specialization can’t just be created out of thin air. It has to be based on an existing DITA element. For example, if a writer creates a three-column table with a title spanning the top row, that table needs to be based on the standard DITA table. Each time a specialization is created, the writer must add information to the DITA file to identify the element on which the specialization is based.