Content models and information types
A content model is a framework that represents the structure of the information to be stored. In DITA, a content model is implemented as an information type, or topic type.
A content model is an architectural framework for a collection of content, representing the structure of the data to be stored. In a structured authoring sense, a content model is a high level plan of the types of information and an appropriate structure for its storage. For example, the content model for a Frequently Asked Question (FAQ) of a manual might describe a hierarchy of topics, broken down into title, question, background, and answer.
When we design an information architecture for storing information (or a structure to suit our documentation), we are creating a content (or information) model.
Top-level elements in DITA content models are topic types (or information types). A typical procedure manual may include procedure, explanation, glossary and error message information types.
DITA's base content model (that is, the standard, default DITA model) defines three information types: concept, task and reference. These three types all inherit characteristics of a proto information type, simply named topic. The following diagram shows the basic information types.
Information architects are able to
specialise
more types of topics, but must base their new information types on a base
information type. For example, a special
error list
topic might be a
specialised
type of reference topic, as shown in the following diagram.
In many cases, the DITA base content model may be adequate for your needs. In other cases, your model may require the base content model to be specialised.
One method of analysing your content model is to ask questions about your content:
- What type of topics do I need?
- Are the base information types adequate, or do I need specialised information types?
- Will I use compound topics?
- How will I associate concepts, tasks and references?
- What will my document skeleton look like?
- What single-sourcing will I do, and what metadata will I use for filtering and flagging?