Specialisation

Specialisation allows you to construct your own types of documents without losing the benefits of working within a DITA framework; in particular, you can maintain interchangeability.

Although specialisation is a key part of DITA, it is not yet a widely used feature. It is often viewed as being complicated and technical. But while specialisation is often not used when it should be, the reverse is also true: specialisation is sometimes used needlessly by organisations.

Specialisation means defining your own information types and semantic elements and attributes to suit the needs of your particular content model (the nature of the type of information). A specialised element is always based on another DITA element, so that you only need to define how your element is different from what it is based on.

This specialisation can only occur within DITA's specialisation rules. In other words, it is a formal, defined process with specific rules. A specialisation is defined by DTD or XSD modules that extend the base DITA DTDs and XSDs.

Organisations choose to specialise DITA because they want their documents to follow an organisation-specific structure, or they want their documents to contain their own organisation-specific metadata.

An example of a specialisation to reflect a particular structure (or content model) is where you need a variation of a reference topic that contains part numbers, weight, wholesale price, and retail price. The base reference topic has a different structure, so you could specialise it with element names of part_no, unit_weight, wsale_price, and retail_price.

An example of a specialisation to contain metadata is where you want to store the staff number of the programmer responsible for the software module being documented within the topic, in an attribute named staff_number.

Any specialised element or attribute has to be specialised from another DITA element. This element becomes the specialised element's ancestor.

When you publish a specialised topic, and the processor is not aware of your specialised information type, it will treat the topic as it would its ancestor.

If you need to exchange topics with someone who doesn't use your specialisation, you might have to generalise the topics to return them to the structure of their ancestors. Generalisation can be wholly automated.

Specialisation rules in DITA include the following:
  • You cannot make your specialised DITA less restrictive (have looser rules) than the DITA base content model.
    • You cannot make a mandatory ancestor element optional, and you cannot make a mandatory attribute optional.
    • You cannot allow elements in positions that are not allowed by the base content model.
  • You cannot add new element-specific attributes. You can only create new global attributes (or attributes of elements in the base content model.

The DITA Style Guide focusses on base DITA.