Transclure un groupe d'éléments en tant qu'ensemble

L'attribut conrefend a été introduit dans DITA 1.2 pour permettre la transclusion de plusieurs éléments adjacents en tant que groupe.

Lorsque vous devez réutiliser du contenu rédigé comme une suite ou une séquence d'éléments, par exemple un ensemble d'étapes, grâce à l'attribut conref, il n'existe pas de structure parente à référencer. À titre d'exemple, si les trois premières étapes de la séquence suivante doivent être réutilisées, il n'existe pas de structure permettant de regrouper uniquement ces trois étapes sans inclure les deux suivantes.

<task id="proc">
...
 <steps> 
   <step><cmd id="A">Faites ceci.</step>
   <step><cmd id="B">Puis ceci.</cmd></step> 
   <step><cmd id="C">Puis la chose suivante.</cmd></step>
   <step><cmd id="D">Faites autre chose.</cmd></step>
   <step><cmd id="E">Et encore autre chose.</cmd></step>
 </steps>
...
</task>

La seule approche évidente consiste à référencer individuellement les éléments A, B et C.

Dans DITA 1.2, la fonction conref a toutefois été améliorée pour rendre possible ce type de construction. L'attribut nouvellement créé est l'attribut conrefend. L'attribut conref standard permet de spécifier l'id de l'élément au début du groupe d'éléments et l'attribut conrefend permet de spécifier l'id du dernier élément du groupe. Si aucun attribut conrefend n'est spécifié, le conref effectue une transclusion standard en traitant un seul élément à la fois.

Pour réutiliser les trois premières étapes du bloc d'étapes pris en exemple plus haut et ajouter une quatrième étape, le code à adopter serait le suivant :
<steps>
  <step conref="abc.dita#proc/A" conrefend="abc.dita#proc/C"><cmd/></step>
  <step><cmd>Faites quelque chose de complètement différent.</cmd></step>
</steps>

Le bloc de contenu doit être référencé au niveau de l'élément step et non au niveau de l'élément cmd car les éléments doivent être adjacents (c'est-à-dire frères).

Remarque : Vous pouvez également utiliser l'élément bodyDiv, introduit dans DITA 1.2, pour réunir un groupe d'éléments en un seul élément, puis transclure l'élément bodyDiv comme vous le souhaitez.