Producing different deliverables from a single source

Darwin Information Typing Architecture (DITA) Version 1.2

DITA is designed to produce multiple deliverable formats from a single set of DITA content. This means that many rendition details are specified neither in the DITA specification nor in the DITA content; the rendition details are defined and controlled by the processors.

Like many XML-based applications for human-readable documentation, DITA supports the separation of content from presentation. This is necessary when content is used in different contexts, since authors cannot predict how or where the material that they author will be used. The following features and mechanisms enable users to produce different deliverable formats from a single source:
DITA maps
Different DITA maps can be optimized for different delivery formats. For example, you might have a book map for printed output and another DITA map to generate online help; each map uses the same content set.
Specialization
The DITA specialization facility enables users to create the XML elements needed by a particular information set in order to provide appropriate rendition distinctions. In XML-based systems where presentation details are defined as styles bound to elements, the more precise and detailed the markup, the easier it is to define presentation rendering. Because the use of arbitrary specializations does not impede interchange or interoperability, DITA users can safely create the specializations demanded by their local delivery and rendition requirements, with a minimum of additional impact on the systems and business processes that depend on or use the content. While general XML practices suggest that element types should be semantic, specialization can be used to define element types that are purely presentational in nature. The highlighting domain is an example of such a specialization.
Conditional processing
Conditional processing makes it possible to have a topic or DITA map that contains delivery-specific content.
Content referencing
The conref mechanism makes it possible to construct delivery-specific maps or topics from a combination of generic components and delivery-context-specific components.
Key referencing
The keyref mechanism makes it possible to change variables for volatile content, redirect links, and reap the benefits of indirect addressing.
@outputclass attribute
The @outputclass attribute provides a mechanism whereby authors can indicate specific rendition intent where necessary. Note that the DITA specification does not define any values for the @outputclass attribute; the use of the @outputclass attribute is, by nature, processor specific.

While DITA is independent of any particular delivery format, it is a standard that supports the creation of human-readable content. As such, it defines some fundamental document components including paragraphs, lists, and table. When there is a reasonable expectation that such basic document components be rendered consistently, the DITA specification defines default or suggested renderings.