Lier des blocs interdépendants

Lorsqu'un élément de type bloc est logiquement dépendant de celui qui le précède, il doit être imbriqué dans celui-ci. En d'autres termes, les blocs secondaires doivent être des nœuds enfants du bloc principal, et non des nœuds frères.

Lorsqu'un bloc de texte est lié à un second bloc de texte, ils deviennent interdépendants. Si seulement l'un des paragraphes est réutilisé, il y a un risque que le contexte ne soit pas pris en compte.

Par exemple, vous pouvez insérer un échantillon de code grâce à une phrase d'introduction. La phrase d'introduction fait partie d'un bloc paragraphe (p) et l'échantillon de code fait partie d'un bloc secondaire codeblock.

<p>L'exemple de code suivant montre la façon dont le JavaScript 
peut être utilisé dans un lien afin d'imprimer les pages en cours :</p>
<codeblock>
&lt;a href="#" onclick="window.print()"&gt; 
 Imprimer cette page 
&lt;/a&gt;
</codeblock>

Si le paragraphe contenant la phrase d'introduction est réutilisé en dehors de la rubrique en cours, le texte perdra tout son sens, sauf si l'élément codeblock suivant l'accompagne. De la même façon, un élément conref peut insérer un autre bloc entre le premier bloc (p) et le second bloc (codeblock), modifiant ainsi la signification de la phrase d'introduction.

Puisque les deux blocs sont logiquement liés, l'élément codeblock devrait être imbriqué dans le paragraphe (p). Le code qui en résulte est :

<p>Le code exemple suivant montre la façon dont le JavaScript 
peut être utilisé dans un lien afin d'imprimer les pages en cours :
<codeblock>
&lt;a href="#" onclick="window.print()"&gt; 
 Imprimer cette page 
&lt;/a&gt;
</codeblock></p>
Exemples de structures de contenu dans lesquelles les blocs secondaires sont généralement imbriqués :
les paragraphes dans des longues citations
<lq>
 <p>There was movement at the station...</p>
 <p>That the colt from Old Regret...</p>
</lq>
les longues citations dans des paragraphes
<p>Banjo Paterson a débuté sa chanson par :
 <lq>There was movement at the station...</lq>
</p>
les tableaux dans des paragraphes
<p>Des exemples de structures de contenu incluent :
 <simpletable>
 ...
 </simpletable>
</p>
les éléments codeblock dans des paragraphes
<p>Des variables client sont définies comme dans l'exemple suivant :
 <codeblock>Dim cli as String
  cli=43
 </codeblock>
</p>
les listes dans des paragraphes
<p>Il existe deux variantes XRW : 
 <sl>
  <li>XRW</li><li>XRW Super</li>
 </sl>
</p>

Il est possible que certains modèles de contenu ne permettent pas cette méthode d'imbrication, comme lorsque les deux blocs sont des éléments p. Toutefois, en terme d'objectif, préférez cette approche d'imbrication.

Remarque : Certaines exigences entrent en conflit lorsque le contenu doit être localisé. Insérer un bloc imbriqué dans un paragraphe, comme dans les exemples précédents, peut poser problème pour les traducteurs. Il s'agit d'un vrai dilemme, qui pourrait finalement être résolu grâce au développement des outils logiciels. Si vous rédigez un document qui sera traduit, évitez d'insérer du texte après un bloc imbriqué dans un autre. Lorsque vous rédigez un document qui sera traduit, suivez les lignes directrices du livre Best Practice for Leveraging Legacy Translation Memory when Migrating to DITA (Joseph & Raya, 2007) produit par le sous-comité d'OASIS consacré à la traduction.