conref: allow reuse of ranges of elements.
Allow conref of more than one element at a time, for example steps 2-4 in a task.
Major
<topic id="x"> ... <body> <ol> <li id="thing">A</li> <li id="foo">B</li> <li id="bar">C</li> <li id="stuff">D</li> <li id="also">E</li> </ol> </body> </topic>
<topic id="y"> ... <body> <ol> <li>My own first step</li> <li conref="target.dita#x/foo" conaction="pullstart"/> <li conref="target.dita#x/stuff" conaction="pullend"/> <li>And a different final step</li> </ol> </body> </topic>
<topic id="y"> ... <body> <ol> <li>My own first step</li> <li>B</li> <li>C</li> <li>D</li> <li>And a different final step</li> </ol> </body> </topic>
<li conref="target.dita#x/foo" conaction="pullstart"/> <li conref="target.dita#x/stuff" conaction="pullend"/>
As in 17b, the use of two elements to identify the start and end of the range ensures that the elements are being pulled into a context where a range of elements is in fact allowed.
Time to design, ca. 4 meetings; cost for implementation is higher.
Allows better match to reuse intent. If a reuser wants to grab a range, then grabbing the range by start and end values is much easier and much less risky than grabbing the range by pointing to each element individually. When a new element is added within the scope of the range, it is automatically picked up by default.
ca. 4 mtgs to confirm design; cost to implement is higher.