Les éléments <ptr> et <ref> servent uniquement pour des références croisées ou des liens dont les cibles se trouvent dans le même document SGML que leur source. En outre, ils ne peuvent indiquer que des éléments SGML. Les éléments présentés dans la présente section ne sont pas limités de cette façon.
En plus des attributs applicables aux pointeurs présentés dans Références croisées simples ci-dessus, ces éléments partagent les attributs supplémentaires suivants, dont le but est de spécifier la cible de la référence croisée ou du lien, au lieu de l'attribut target :
Une spécification complète du langage formel employé pour exprimer la cible des pointeurs étendus TEI dépasserait les limites de ce document ; nous nous bornerons donc à indiquer seulement quelques-unes des caractéristiques les plus généralement utiles. Pour plus de détails, il convient de consulter la version complète des recommandations de la TEI.
Un élément <xptr> (ou <xref>) peut indiquer l'ensemble d'un autre document simplement en donnant un nom d'entité comme valeur de l'attribut doc, comme dans cet exemple :
voir <xref doc=P3>The TEI Guidelines, passim</xref>
Cet exemple suppose qu'une entité système ou publique avec le nom P3 a été déclarée. Cette déclaration peut être placée dans le fichier d'extension litemods.ent ou effectuée par une autre méthode spécifique au logiciel auteur SGML employé -- voir Chiffres et Graphiques.
L'attribut from est employé pour préciser un emplacement donné au sein du document spécifié par l'attribut doc. La spécification utilise un langage spécial, appelé syntaxe du pointeur étendu TEI, dont seulement quelques détails sont donnés ici. Dans ce langage, les emplacements sont définis comme une série de pas (steps), chacun identifiant une certaine partie du document, souvent en termes des emplacements identifiés par le pas précédent. Par exemple, on pointera vers la troisième phrase du deuxième paragraphe du chapitre deux en sélectionnant le chapitre deux dans le premier pas, le deuxième paragraphe dans le deuxième pas, et la troisième phrase dans le dernier pas. Un pas peut être défini en termes de concepts SGML (tels que parent, descendant, précédant, etc.) ou, plus vaguement, en termes de structure de texte, de positions de mots ou de caractères. On peut également utiliser une notation étrangère (non-SGML), ou préciser un emplacement dans un graphique en termes de son système de coordonnées.
Les attributs from et to utilisent la même notation. Chacun indique une certaine portion du document cible ; le pointeur étendu dans son ensemble indique la section qui commence au début de from et qui se termine à la fin de to.
La première étape du chemin vers un emplacement sera souvent de spécifier l'identifiant d'un certain élément dans le document cible, comme dans cet exemple :
<xptr doc=P3 from='id (SA)'>
Ceci sélectionne l'ensemble de l'élément qui porte l'identifiant SA à l'intérieur de l'entité P3. Si une cible plus fine est nécessaire, d'autres pas peuvent suivre. Les mots clés suivants sont disponibles afin de permettre la sélection d'autres éléments en termes de leur relation avec un élément identifié lors du pas précédent :
éléments contenus par cet élément ;
Chacun de ces mots clés implique un ensemble particulier d'éléments (un ensemble d'enfants, un ensemble d'ancêtres, un ensemble de descendants, etc.). Afin de préciser lequel des éléments d'un ensemble est pointé, le mot clé peut éventuellement être suivi d'une liste entre parenthèses contenant :
En reprenant l'exemple ci-dessus, la référence suivante sélectionne le troisième élément <p> contenu directement par tout élément ayant l'identifiant SA :
<xptr doc=P3 from='id (SA) child (3 p)'>
De la même manière, en supposant que l'entité P3 est en fait une référence à la version SGML des recommandations de la TEI, alors la référence suivante sélectionne la section 14.2.2 de cette publication qui se trouve être celle où la syntaxe du pointeur étendu est formellement définie :
Pour plus de détails, voir <ref doc=P3 from='id (SA) child (2 div2) child (2 div3)'> TEI Extended pointer syntax definition </ref>
Normalement, l'étendue d'une référence croisée est suffisamment définie par l'attribut from. Pour certains documents cependant, il peut être plus commode de définir une plage de début et une plage de fin. Comme indiqué ci-dessus, l'attribut to est fourni dans ce but. Par exemple :
<xptr doc=P1 from='id (xyz)' to='id (abc)'>
est un pointeur étendu dont la cible est la séquence qui commence au début de l'un quelconque des éléments du document P1 ayant l'identifiant XYZ, et se terminant à la fin de n'importe quel élément du même document ayant l'identifiant ABC. Tout élément se trouvant dans l'intervalle est également inclus, indépendamment de sa structure. Le pointeur est erroné si la fin de ABC précède le début de XYZ.
L'utilisation de cette syntaxe permet la construction facile de spécifications très complexes. Par exemple, la référence suivante sélectionne l'élément <head> le plus proche ayant un attribut lang avec la valeur LAT, et apparaissant avant le début de l'élément ayant l'identifiant SA :
<xptr doc=P3 from='id (SA) preceding (1 head lang lat)'>
Si aucune valeur n'est fournie pour l'attribut doc , on suppose qu'il s'agit du document courant. Ainsi, les références suivantes sont sémantiquement équivalentes. Les deux indiquent l'élément ayant l'identifiant X1 dans le document courant :
<ptr target=X1> <xptr from='id (X1)'>