8.1 Références croisées simples

 

Une référence croisée reliant deux endroits situés dans le même document peut être codée au moyen de l'un ou l'autre des éléments suivants :

<ref>
 

référence à un autre emplacement dans le document courant, en termes d'un ou plusieurs éléments identifiables, le tout pouvant éventuellement être modifié par un commentaire ou du texte supplémentaire ;

<ptr>
 

  pointeur vers un autre emplacement dans le document courant, en termes d'un ou plusieurs éléments identifiables.

Ces éléments partagent les attributs suivants :

target
 

indique la destination du pointeur en termes d'un ou plusieurs identifiants SGML ;

<type>
  catégorise le pointeur d'une manière quelconque, au moyen de tout ensemble de catégories approprié ;

<targType>
  indique le ou les types d'éléments désignés par ce pointeur ;

<crDate>
 

indique la date de création du pointeur ;

<resp>
 

indique le créateur du pointeur.

La différence entre ces deux éléments est que <ptr> est un élément vide qui marque simplement un endroit à partir duquel un lien est à créer, tandis que <ref> peut contenir également du texte -- typiquement le texte de la référence croisée elle-même. L'élément <ptr> serait plutôt employé pour une référence croisée signalée par des dispositifs non-verbaux tels qu'un symbole ou une icône, ou dans un texte électronique par un bouton. Il sert également dans des systèmes de production de document, où le logiciel de formatage a la possibilité de générer la forme verbale correcte de la référence croisée.

Les deux formes présentées ci-après, par exemple, sont logiquement équivalentes (en supposant que nous avons documenté ailleurs la forme verbale exacte des références croisées représentées par les éléments <ptr>) :

 Voir notamment  <ref target=SEC12>la section 12, page 34</ref>.
 
 Voir notamment <ptr target=SEC12>.

la valeur de l'attribut target doit être un identifiant SGML dans le document SGML courant. Ceci implique que le passage ou l'expression pointé doit porter un identifiant, et donc être balisé comme un élément d'un certain type. Dans l'exemple suivant, la référence croisée pointe vers un élément <div1> :

     ...
     voir notamment <ptr target=SEC12>.
     ...
     <div1 id=SEC12><head>En ce qui concerne les identificateurs 
     ...

Puisque l'attribut id est global, tout élément dans un document peut être pointé de la même façon. Dans l'exemple suivant, un paragraphe a été pourvu d'un identifiant pour qu'on puisse pointer sur lui :

    ...
    on en reparlera dans <ref target=pspec>la section sur
    les liens</ref>
    ...
    <p id=pspec>Les liens peuvent être composés de n'importe
    quel type d'éléments 
    ...

Il est possible d'utiliser l'attribut targType pour préciser que l'élément pointé doit être d'un type particulier, comme dans l'exemple qui suit.

   ...
   on en reparlera dans  <ref target=dspec targType='div1 div2'>
   la section sur les liens</ref>

Cette référence devrait échouer si l'élément portant l'identifiant dspec n'est ni un <div1> ni un<div2>. À noter cependant que cette vérification ne peut être effectué par un analyseur syntaxique SGML seul puisque ce dernier ne peut que vérifier l'existence d'un élément dspec donné.

L'attribut type peut être employé pour catégoriser le lien représenté par le pointeur, par tout moyen approprié. Les attributs resp et crDate peuvent également être utilisés pour identifier la personne ou l'entité responsable de la création du lien, ainsi que la date de création de ce dernier, comme dans l'exemple suivant :

 on en reparlera dans
 <ref type=xref resp=auto crDate=950521 target=dspec 
  targtype='div1 div2'>
 la section sur les liens</ref>

Selon toute vraisemblance, ces attributs seront les plus utiles dans des systèmes hypertextes contenant de nombreux pointeurs ayant de multiples fonctions et créés par toute sorte de moyens.

Parfois, la cible d'une référence croisée ne correspond à aucune caractéristique particulière d'un texte, et ne peut donc pas être balisée comme étant d'un certain type d'élément. Si la cible désirée est simplement un endroit dans le document courant, la façon la plus facile de le marquer est d'introduire un élément <anchor> à l'endroit correspondant. Si la cible est une séquence de mots non balisée autrement, l'élément<seg> (segment) peut être introduit pour la marquer. Ces deux éléments sont décrits comme suit :

<anchor>
  indique un emplacement ou un endroit sur lequel on peut pointer dans un document ;

<seg>
  identifie un passage ou un segment de texte au sein d'un document, sur lequel on peut pointer ; exemple d'attribut :
<type>
 

catégorise le segment.

Dans l'exemple (imaginaire) suivant, des éléments <ref> ont été employés pour représenter des points dans le texte devant être attachés d'une certaine manière à d'autres parties du texte, un point précis dans le premier cas et une séquence de mots dans le second :

    
  Si je reviens sur <ref target=ABCD>le passage sur lequel je
  me suis endormi</ref>, je note que <ref target=EFGH>trois
  mots</ref> ont été entourés de rouge par un précédant lecteur.

Ce codage nécessite que des éléments ayant les identifiants spécifiés (ABCD et EFGH dans cet exemple) existent quelque part ailleurs dans le document courant. En supposant qu'aucun élément n'existe déjà pour porter ces identifiants, les éléments <anchor> et <seg> (segment) peuvent être employés :

   .... <anchor type=bookmark id='ABCD'> ....
    ....<seg type=target id='EFGH'> ... </seg> ...

L'attribut type devrait être employé (comme ci-dessus) pour préciser les différents rôles de ces éléments généraux dans un texte. D'autres applications sont présentées ci-après en Attributs de liaison.



Association GUTenberg - BP 10, 93220 Gagny principal   - Tél. et Fax (33) 01 30 87 06 25
e-mail : gut@irisa.fr   et   tresorerie.gutenberg@ens.fr