Profiling with a Subject Scheme Map
A subject scheme map allows you to create custom profiling values and to manage the profiling attribute values used in the DITA topics without having to write a DITA specialization.
<topicref href="test.ditamap" format="ditamap" type="subjectScheme"/>
A profiled value should be 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
surgeon, and so on. A subject scheme map can define a list of these
The following is an example of content from a subject scheme:
<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 keys="surgeon"> <subjectdef keys="neuro-surgeon"/> <subjectdef keys="plastic-surgeon"/> </subjectdef> </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, surgeon, neuro-surgeon and plastic-surgeon. --> <enumerationdef> <attributedef name="audience"/> <subjectdef keyref="users"/> </enumerationdef> </subjectScheme>
When you edit a DITA topic in the Text or Author mode, Oxygen XML Author plugin collects all the profiling values from the Subject Scheme Map that is referenced in the map that is currently opened in the DITA Maps Manager. The values of profiling attribute defined in a Subject Scheme Map are available in the Edit Profiling Attribute dialog box, regardless of their mapping in the Profiling/Conditional Text preferences page. They are also available as proposals for values in the Content Completion Assistant.
physicist, and so on, are displayed in the Content Completion Assistant as values for the
Consider that you have the following fragment in a topic:
<p audience="neuro-surgeon">Some text.. </p>
When you define a DITAVAL filter, you can, for instance, exclude anything that is profiled as
<val> <prop action="exclude" att="audience" val="surgeon"/> </val>
If you then transform the main DITA map specifying the DITAVAL filter file in the
transformation scenario, the
p element should be excluded from the output.
Therefore, excluding the
surgeon audience also excludes
plastic-surgeon from the output. More
details about how hierarchical filtering and Subject Scheme Maps should work are found in the