|Content re-use / Advanced conref principles|
The conrefend attribute was introduced in DITA 1.2 to allow a group of adjacent elements to be transcluded as a group.
When you need to conref a series or sequence of elements in a structure like a set of steps, there is no parent structure to reference. For example, if the first three steps of the following sequence were to be re-used, there doesn't seem to be a structure to group just those three steps and not the following two.
<task id="proc"> ... <steps> <step><cmd id="A">Do this.</step> <step><cmd id="B">Then do that.</cmd></step> <step><cmd id="C">Do the other.</cmd></step> <step><cmd id="D">Do something different.</cmd></step> <step><cmd id="E">Then do something else.</cmd></step> </steps> ... </task>
The only obvious approach is to reference step elements A, B and C individually.
However, in DITA 1.2, the conref feature was enhanced to make this sort of construct possible. The new attribute which enables the feature is the conrefend attribute. You use the standard conref attribute to use that attribute to specify the id of the element at the start of the group of elements, and the conrefend attribute to specify the id of the last element in the group of elements. If a conrefend attribute is not specified, the conref behaves as a standard, single element transclusion.
<steps> <step conref="abc.dita#proc/A" conrefend="abc.dita#proc/C"><cmd/></step> <step><cmd>Do something entirely new.</cmd></step> </steps>
The content block has to be referenced at the step level, not at the cmd level, because the elements have to be adjacent (that is, siblings).