Conditional Profiling Attribute Groups
Overview
Conditional processing attributes can be specified using grouped values. Groups organize the attributes into
subcategories. This is intended to support situations where an attribute applies to multiple
specialized subcategories. For example, suppose a company needs to filter content for
several internal teams (operations and support) and they use the
@audience
attribute with the values ops
and
support
, but the Support team has several levels of personnel (L1, L2,
and L3). They could use a group to define the levels (L1, L2, and L3)
as subcategories for the support
value. Using groups for these
subcategories allows each category to be processed independently.
A major advantage is that you do not need to add new profiling attributes using a DTD
specialization. You can re-use existing DITA profiling attributes (such as
@product
, @audience
, @otherprops
) and
specify multiple attribute subcategories.
Creating a Conditional Profiling Attribute Group
- Open the Preferences dialog box and go to .
-
To add new attributes and values, click the New button at the bottom of the Profiling Attributes table. To customize existing attributes and their values, select an attribute and click the Edit button.
Step Result: In either case, this opens a Profiling Attribute configuration dialog box where you can define attributes that exist in your schema.
-
Specify the appropriate values for the Document type, Attribute name, and Display name.
For information about the Profiling Attribute configuration dialog box, see Defining Profiling Attributes for DITA Content.
- Click the New button at the bottom of the attribute values table.
- In the Value field of the resulting dialog box, define groups
using the following format:
ParentAttrValue(SubAttrValue1 SubAttrValue2)
. For example:support(L1 L2 L3)
- Click OK and Apply to save and apply the changes.
Using Conditional Profiling Attribute Groups in Conjunction with a DITAVAL File
<val>
<prop action="include" att="support" val="L1"/>
<prop action="include" att="support" val="L2"/>
<prop action="exclude" att="support" val="L3"/>
</val>
That DITAVAL file could then be used for a condition
set to filter content in Author mode or during the
transformation stage to filter
content in the output and content profiled with the L1
and
L2
values would be included while content with the L3
value would be excluded.
L1
, L2
,
L3
) by simply excluding the support
value (since
L1
, L2
, and L3
are subcategories of
it).<val>
<prop action="exclude" att="support"/>
</val>
Defining Conditional Profiling Attribute Groups in a Subject Scheme Map
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE subjectScheme PUBLIC "-//OASIS//DTD DITA Subject Scheme Map//EN" "subjectScheme.dtd">
<subjectScheme>
<enumerationdef>
<attributedef name="product"/>
<subjectdef keys="productKeys">
<subjectdef keys="myGroup1(gr1v1)"/>
<subjectdef keys="myGroup1(gr1v2)"/>
<subjectdef keys="product1"/>
</subjectdef>
</enumerationdef>
</subjectScheme>
In the above example, myGroup1 is the profiling
attribute group for the @product
attribute and gr1v1
and gr1v2 in parentheses are the values.
Resources
For more information about advanced DITA profiling concepts, watch our Webinar: Working with DITA in Oxygen - Advanced Profiling and Reuse Strategies.