Profiling and conditional processing

Conditional attributes let you tailor the same document for different requirements.

DITA CMS supports the DITA conditional processing attributes. These attributes let you hide portions of text—or even entire topics—to produce versions of the document to meet specific needs. This lets you make comparatively minor edits to a single document, instead of producing duplicates of the document for each need.

Almost all DITA elements support conditional attributes. If you're using a text editor, you can simply enter them as you would enter any other attribute. DITA CMS records the attribute values that you enter. These same values are presented as choices during output generation.

There are a few points to keep in mind when you make a topic conditional.
  • If the topic has any children, then the condition will apply to all its children as well. You don't need to apply conditions to every topic in the sub-tree.
  • If you conditionalize a topic, then every reference in the map file must be conditional as well.
    For example, if you've made a concept topic conditional for Linux, as shown below:
    <concept id="per1245699224969" platform="Linux" xml:lang="eng">
    then all the corresponding <topicref> statements in the map file must also be conditional as well:
    <topicref href="per1245699224969.xml" platform="Linux">
    And you must do the same for every reltable reference to this topic, as well.
    Note: It is considered good practice to use top level conditions on topicrefs instead of the topic root element. If information needs to be kept concerning the audience or product of the topic, using the prolog is the preferred method.

Fortunately, the CMS includes several utilities that give you a more intuitive interface for applying these conditions and for identifying the objects to which they have been applied.