Filtre d’une fiche

Une fiche contient en propre les éléments suivants :

Une fiche peut également contenir des éléments issus des liens de la fiche avec d’autres composants de la base de fiches, à savoir :

Un filtre de fiche est défini avec l’élément <fiche> La formulation la plus simple est la suivante :

<fiche/>

Ceci indique que tout le contenu de la fiche doit être extrait L’extraction s’affine en indiquant les différents éléments à l’intérieur de l’élément < fiche> Dans l’exemple suivant, seuls l’entête le liage sont extraits

<fiche>
  <entete/>
  <liage/>
</fiche>

Ensuite, chacun des sous-éléments de la fiche peut-lui même être affiné L’exemple suivant montre une extraction avec le titre, le sous-titre, les rédacteurs, la propriete de type « organisme » et l’information de type « adresse » uniquement dans l’entête, l’extraction du texte et de l’annexe de type « resume » dans le corps de fiche, dans la source

<fiche>
  <entete>
    <titre/>
    <soustitre/>
    <redacteurs/>
    <propriete type="organisme"/>
    <information type="adresse"/>
  </entete>
  <corpsdefiche>
    <texte/>
    <annexe type="resume"/>
  </corpsdefiche>
</fiche>

L’affinage peut bien sûr être différent suivant les éléments Dans l’exemple suivant, on prend tout l’entête ainsi que seulement l’annexe de type « decision » ainsi que l’indexation :

<fiche>
  <entete/>
  <corpsdefiche>
    <annexe type="decision"/>
  </corpsdefiche>
  <indexation/>
</fiche>

Les raccourcis

Il existe deux raccourcis, les éléments <idfiche> et <abregefiche> qui peuvent remplacer l’élément <fiche> et qui fixent les sous-éléments extraits de la fiche :

<idfiche> et <abregefiche> peuvent contenir des éléments issus des liens avec d’autres composants comme <indexation> ou <liage>

Les deux écritures suivantes obtiennent le même résultat au final :

<fiche>
  <liage/>
</fiche>
<idfiche>
  <liage/>
</idfiche>

Cependant, si le résultat est le même l’utilisation de l’élément <idfiche> permet de réduire le temps de traitement en facilitant les optimisations internes Il en va de même pour <abregefiche> Les deux écritures ci-dessous sont équivalents, <abregefiche> est plus rapide :

<fiche>
  <entete>
    <titre/>
    <soustitre/>
    <redacteurs/>
  </entete>
</fiche>
<abregefiche/>

Le liage

L’élément <liage> regroupe toutes les fiches qui sont liées à la fiche en cours Il est composé d’éléments <extraitcorpus> auxquels il est possible d’appliquer toutes les filtres et sélections possibles pour cet élément

Le raccourci :

<liage/>

correspond en fait à :

<liage>
  <extraitcorpus>
    <abregefiche/>
  </extraitcorpus>
</liage>

Il est donc possible de faire une sélection sur les fiches liées Dans l’exemple suivant, on ne prend que les fiches du corpus suivi

<liage>
  <extraitcorpus>
    <fiche-select>
      <corpus>suivi</corpus>
    </fiche-select>
    <idfiche/>
  </extraitcorpus>
</liage>

On peut aussi avoir plusieurs éléments <extraitcorpus> décrivant plusieurs extractions différentes Dans le cas suivant, on demande le contenu entier des fiches du corpus organisme alors qu’on ne prend que les identifiants des fiches du corpus suivi :

<liage>
  <extraitcorpus>
    <fiche-select>
      <corpus>organisme</corpus>
    </fiche-select>
    <fiche/>
  </extraitcorpus>
  <extraitcorpus>
    <fiche-select>
      <corpus>suivi</corpus>
    </fiche-select>
    <idfiche/>
  </extraitcorpus>
</liage>

La grande différence par rapport à un élément <extraitcorpus> normal c’est que quelque soit les critères de sélection, les éléments <extraitcorpus> compris dans <liage> ne comprendront que des fiches effectivement liée à la fiche considérée

Le groupement des éléments <extraitcorpus>

Par défaut, l’extraction crèe un élément <extraitcorpus> par corpus concerné, ces éléments possédant l’attribut @corpus qui permet de les distinguer

Il existe cependant la possibilité de regrouper des fiches de différents corpus dans un même élément <extraitcorpus> suivant les critères de poids Ce regroupement est souvent utile lorsque le poids représente un ordre particulier Il évite d’avoir à faire ce regroupement via la feuille de style XSLT, ce qui permet de ne pas trop l’alourdir

On signale qu’un élément <extraitcorpus> sert à un regroupement lorsqu’il possède l’attribut @group-name avec la valeur poids-asc (tri suivant le poids dans l’ordre croissant) ou la valuer poids-desc (tri suivant le poids dans l’ordre décroissant) Comme cet élément va contenir des fiches de différents corpus, ces fiches auront l’attribut @corpus qui permettra d’identifier le corpus de la fiche

Écriture simplifiée

L’écriture définie précédemment repose sur une correspondance entre le fichier d’extraction et le résultat final qui est un XML fortement structuré. Il est possible de simplifier l’écriture du fichier d’extraction de la façon suivante :

<fiche>
  <entete>
    <titre/>
    <soustitre/>
    <redacteurs/>
    <propriete type="organisme"/>
    <information type="adresse"/>
  </entete>
  <corpsdefiche>
    <texte/>
    <annexe type="resume"/>
  </corpsdefiche>
</fiche>

peut être écrit :

<fiche>
  <titre/>
  <soustitre/>
  <redacteurs/>
  <propriete type="organisme"/>
  <information type="adresse"/>
  <texte/>
  <annexe type="resume"/>
</fiche>

Lorsque la sélection via <fiche-select> ou <motcle-select> ne porte que sur des corpus et des thésaurus (c’est la sélection la plus courante), il est possible de remplacer ces éléments par des attributs @corpus et @thesaurus (ils peuvent contenir plusieurs corpus ou thesaurus séparés par des virgules).

<fiche>
  <liage>
    <extraitcorpus>
      <fiche-select>
        <corpus>suivi</corpus>
      </fiche-select>
      <idfiche/>
    </extraitcorpus>
  </liage>
  <indexation>
    <extraitthesaurus>
      <motcle-select>
        <thesaurus>geo</thesaurus>
        <thesaurus>thema</thesaurus>
      </motcle-select>
      <motcle/>
    </extraitthesaurus>

  </indexation>
</fiche>

peut être écrit

<fiche>
  <extraitcorpus corpus="suivi">
    <idfiche/>
  </extraitcorpus>
  <extraitthesaurus thesaurus="geo, thema">
    <motcle/>
  </extraitthesaurus>
</fiche>