Branch filtering: Impact on resource and key names
When map branches are cloned by a processor in order to support multiple condition sets, processors must manage conflicting resource and key names. The DITAVALref domain includes metadata elements that authors can use to specify how resource and key names are renamed.
<ditavalref>
element.When a map branch uses multiple condition sets, processors create multiple effective
copies of the branch to support the different conditions. This results in potential
conflicts for resource names, key names, and key scopes. Metadata elements inside of the
<ditavalref>
element are available to provide control over
these values, so that keys, key scopes, and URIs can be individually referenced within a
branch.
For example, the following map branch references two DITAVAL documents:
<topicref href="productFeatures.dita" keys="features" keyscope="prodFeatures">
<ditavalref href="novice.ditaval"/>
<ditavalref href="admin.ditaval"/>
<topicref href="newFeature.dita" keys="newThing"/>
</topicref>
In this case, the processor has two effective copies of productFeatures.dita and newFeature.dita. One copy of each topic is filtered using the conditions specified in novice.ditaval, and the other copy is filtered using the conditions specified in admin.ditaval.
If an author has referenced a topic using keyref="features"
or
keyref="prodFeatures.features"
, a processor cannot distinguish
which filtered copy is the intended target. The metadata elements in the DITAVALref
domain provide a way to control this scenario.