<cRefPattern>

<cRefPattern> (Modèle de référence canonique) spécifie un modèle d’expression et des règles de remplacement pour transformer une référence canonique en URI. 2.3.5.3 Milestone Method 2.3.5 The Reference System Declaration 2.3.5.2 Search-and-Replace Method
Module header — 2 The TEI Header
En complément des attributs globaux
matchPattern spécifie une expression régulière à laquelle vont être comparées les valeurs des attributs cRef.
Statut Requis
Type de données

<rng:ref name="data.pattern"/>
data.pattern
Valeurs must be a regular expression according to the W3C XML Schema Language
Note
Les groupes parenthésés ne sont pas seulement utilisés pour établir un ordre de priorité et des unités de quantification, mais aussi pour créer des sous-modèles référencés par l'attribut replacementPattern.
replacementPattern spécifie une ‘règle de remplacement’ qui, après avoir opéré les substitutions prévues à chaque nœud, génère une URI.
Statut Requis
Type de données

<rng:text/>
text
Valeurs Devrait être le squelette d'un parent ou URI absolu, avec des références aux groupes dans matchPattern.
Note
Les chaînes ‘$1’ à ‘$9’ sont des références au groupe correspondant dans l'expression régulière spécifiée par l'attribut re (en incluant la parenthèse ouvrante, de gauche à droite). Les processeurs devraient remplacer ces groupes par les valeurs correspondant aux groupes dans l'expression régulière.
Si un chiffre précédé par un dollar est nécessaire dans le modèle de remplacement actuel (en opposition à ce qui a été utilisé comme référence antérieure), le signe dollar doit être encodé %24.
Utilisé par
Peut contenir
core: p
linking: ab
Declaration

<rng:element name="cRefPattern">
 <rng:ref name="att.global.attributes"/>
 <rng:attribute name="matchPattern">
  <rng:ref name="data.pattern"/>
 </rng:attribute>
 <rng:attribute name="replacementPattern">
  <rng:text/>
 </rng:attribute>
 <rng:zeroOrMore>
  <rng:ref name="model.pLike"/>
 </rng:zeroOrMore>
</rng:element>
element cRefPattern
{
   att.global.attributes,
   attribute matchPattern { data.pattern },
   attribute replacementPattern { text },
   model.pLike*
}
Exemple
<cRefPattern
  matchPattern="([1-9A-Za-z]+)\s+([0-9]+):([0-9]+)"
  replacementPattern="#xpath(//div[@type='book'][@n='$1']/div[@type='chap'][@n='$2']/div[@type='verse'][@n='$3'])"/>
Note
Le résultat de la substitution peut être la référence à une URI relative ou absolue. Dans ce dernier cas, il est combiné avec la valeur de l'attribut xml:base en vigueur à la place où apparaît l'attribut cRef pour former une URI absolue selon l'usage habituel indiqué par XML Base.