Profiling with a Subject Scheme Map

A subject scheme map enables DITA users to create custom profiling values and to manage the profiling attribute values used in the DITA topics without having to write a DITA specialization.

Subject scheme maps use key definitions to define a collection of profiling values instead of a collection of topics. The highest level of map that uses the set of profiling values must reference the subject scheme map in which the profiling values are defined, for example:
<topicref href="test.ditamap" format="ditamap" type="subjectScheme"/>

A profiled value is a short and readable keyword that identifies a metadata attribute. For example, the audience metadata attribute may take a value that identifies the user group associated with a particular content unit. Typical user values for a medical-equipment product line might include therapist, oncologist, physicist, radiologist, and so on. A subject scheme map can define a list of these audience values:

<subjectScheme>
    <!-- Pull in a scheme that defines audience user values -->
    <subjectdef keys="users">
        <subjectdef keys="therapist">
        <subjectdef keys="oncologist">
        <subjectdef keys="physicist">
        <subjectdef keys="radiologist">
    </subjectdef>

    <!-- Define an enumeration of the audience attribute, equal to
       each value in the users subject. This makes the following values
       valid for the audience attribute: therapist, oncologist, physicist, radiologist -->
    <enumerationdef>
        <attributedef name="audience"/>
        <subjectdef keyref="users"/>
    </enumerationdef>
</subjectScheme>

When editing a DITA topic file in Text mode or in Author mode, the Oxygen application collects all the profiling values from the subject scheme map that is referenced in the current DITA map. In our example the values therapist, oncologist, physicist, radiologist and displays them in the content completion window as values for the audience attribute.