L’élément <extraitcorpus>

L’élément <extraitcorpus> sert à définir quelles fiches seront extraites, en précisant à la fois les critères de sélection (via un ou plusieurs éléments <fiche-select) et les champs des fiches qui doivent être récupérés (via le filtre d’une fiche).

L’élément <extraitcorpus> apparaît soit à la racine de l’extraction (premier fils de <extraction> pour l’extraction dynamique ou encapsulé dans l’élément <static>) soit à l’intérieur d’éléments <motcle> (il s’agit alors de fiches indexées par le mot-clé en question) soit à l’intérieur d’éléments <fiche> (il s’agit alors de fiches liées à la fiche en question).

 

L’élément <extraitcorpus> possède les attributs suivants :

L’élément <extraitcorpus> possède les éléments fils suivants (l’ordre n’a pas d’importance) :

Éléments <extraitcorpus> nommés ou anonymes

Un élément <extraitcorpus> peut être nommé via l’attribut @extrait-name, le nom est libre, il ne doit simplement pas y avoir plusieurs éléments <extraitcorpus> du même nom au même niveau.

Nommer un élément <extraitcorpus> permet de grouper dans un même élément des fiches appartenant à des corpus différents. C’est particulièrement utile en association avec une option de groupage.

Lorsqu’un élément <extraitcorpus> est anonyme, il sera en revanche généré un élément <extraitcorpus> par corpus pour lequel il y a des fiches. Cet élément aura alors l’attribut @corpus indiquant le nom du corpus.

Lorsque l’élément est anonyme, il peut comprendre l’élément <intitule> qui insère l’intitulé du corpus.

Tri avec l’attribut @sort

Un élément <extraitcorpus> peut posséder l’attribut @sort qui indique que le fiches doivent être triées suivant un critère précis. Cet attribut est plus simple d’emploi que l’élément <group> (avec moins de possibilités toutefois) et, surtout, les fiches sont comprises directement sous l’élément <extraitcorpus> et non regroupée au sein d’un élément <group>. L’intérêt de cet attribut est d’éviter de faire le tri en XLST.

Les valeurs possibles pour l’attribut @sort sont les suivantes :

En cas de présence à la fois de l’attribut @sort et d’un élément <group>, ce sont les caractéristiques de ce dernier qui prédomine.

 

Les éléments fils de l’élément <extraitcorpus>

 

 

 

Les premiers éléments fils sont zéro, un ou plusieurs éléments <fiche-select> qui définissent les critères de sélection des fiches (voir L’élément < fiche-select>). En l’absence d’éléments <fiche-select>, l’extraction se fera sur tous les corpus.

Un élément optionnel <group> indiquant les paramètres de regroupement des fiches.

Un élément <extraitcorpus> contient ensuite la définition du filtre appliqué aux fiches via un des éléments <fiche>, <idfiche> ou <abregefiche> (ce dernier à supprimer) (voir Filtre d’un mot-clé).

Le groupement avec l’élément <group>

Un élément <group> possède les attributs suivants : @type (obligatoire), @sort (optionnel), @params (optionnel ou obligatoire suivant le type du groupement, [v(@tag-name]] (optionnel).

Attribut @type

L’attribut @type indique sur quel critère le groupement sera fait. Les types disponibles sont les suivants :

Attribut @sort

L’attribut @sort indique l’ordre du tri. Il peut avoir les deux valeurs suivantes :

Si l’attribut est absent, le tri est fait dans l’ordre croissant.

Attribut @params

L’attribut @params permet de paramétrer le regroupement. Le paramétrage disponible dépend de chaque type de regroupement décrit ci-après. Lorsqu’un type n’est pas précisé, c’est qu’il ne possède pas de paramétrage particulier. Lorsque différents paramètres sont proposés, ils doivent être séparés par une virgule. Lorsqu’un paramètre repose sur une combinaison clé/valeur, la clé et la valeur sont séparées par un signe égal.

Enfin, si l’attribut est vide ou n’existe pas, c’est le paramétrage par défaut qui s’applique.

Paramètrage du type titre et fields

Ce type possède un seul paramètre : mode. Ce paramètre a une seule valeur possible actuellement :

Note : pour des raisons de compatibilité ascendante, le mode « alphabet » peut être indiqué en écrivant simplement alphabet alphabet sans que ce soit précédé par la clé mode=

Paramètrage du type fields

Ce type est une extension du type titre. Il possède les mêmes paramètres ainsi qu’un paramètre supplémentaires qui est obligatoire, le paramètre fields dont la valeur est une suite de noms de champs séparés par une espace.

Dans l’exemple suivant, les champs sont regroupés par la valeur du champ propriete_developpeen ou à défaut la valeur du champ propriete_developpefr et sera appliqué le mode alphabet.

<group type="fields" params="fields = propriete_developpeen propriete_developpefr, mode=alphabet">

Paramètrage des modes annee, lang et pays

Pour ces trois types de regroupement, le seul paramètre accepté pour le moment est le paramètre field qui a pour valeur le nom d’un champ de type Propriété (sous la forme « propriete_pays ») qui va servir au tri. Si le champ n’est pas défini, c’est la langue de la fiche qui est prise pour un tri par langue et c’est la date de dernière modification qui est prise pour un tri par année. Ce champ peut être aussi un champ Information et dans ce cas là, c’est la première valeur du champ qui est prise en considération.

Note : pour des raisons de compatibilité ascendante, le nom du champ peut être indiqué en écrivant simplement son nom sans que ce soit précédé par la clé field=

Le paquet de fiches avec <pack>

L’élément <pack> permet de faire des paquets de fiches, ce qui peut simplifier certains traitements quand il faut par exemple mettre trois fiches par ligne. Il possède les attributs suivants : @size (obligatoire), et @modulo (optionnel).

Attribut @size

Indique la taille d’un paquet, autrement dit le nombre de fiches qu’il contient

Attribut @module

Rajoute à l’élément <pack> dans le XML résultant un attribut |v[@modulo-val]] qui a pour valeur la position de l’élément <pack> modulo la valeur de @modulo. Autrement dit, si le modulo est 3, les paquets auront des valeurs 1,2,3,1,2,3,1,2,3,etc.. Cet attribut permettra de retrouver facilement la position relative du paquet.

Attribut @tag-name

Cet attribut permet de renommer la balise de regroupement (voir Renommer les balises dans le XML résultant). L’utilisation de la valeur NULL pour cet attribut permet de bénéficier du groupement sans le voir, autrement dit permet de trier les fiches.

Attributs présents dans le XML résultant

Sauf dans le cas où la valeur de l’attribut @tag-name est NULL, un élément <group> se traduit par une balise dans le fichier XML résultant. Les attributs @type, @sort et @params ne sont pas repris mais d’autres attributs sont introduits.

Quelque soit le type de regroupement, l’élément <group> se voit doté de l’attribut @name qui est le nom du groupement. Le groupement de nom « _ » regroupe les fiches dont les données ne répondent pas au critère de tri (par exemple, les fiches qui n’ont pas de pays de défini pour un tri par pays). Ce groupe spécial est toujours placé à la fin.

L’élément <group> peut avoir des attributs supplémentaires suivant le type de groupement.

Le groupement par première du titre introduit l’attribut @order qui est un chiffre servant au classement. En effet, dans le cas des groupements par première lettre du titre, il peut être créé jusqu’à 38 groupements qui sont les suivants :

Dans certains regroupements, l’élément <group> peut être immédiatement suivi d’un ou plusieurs éléments précisant le groupement.

Éléments supplémentaires dans les fiches

En outre, l’utilisation de tel ou tel mode peut introduire des éléments supplémentaires au sein des fiches elles-mêmes, éléments qui permettent de comprendre comment la fiche se retrouve dans son groupement.

Le mode alphabet introduit ainsi un élément <alphabet> au sein de la fiche, avant l’élément <titre>. Cet élément reprend le titre mais en extrayant l’article. Il a un attribut toujours présent : @titre qui contient le titre sans l’article (si le titre n’a pas d’article à l’origine, sa valeur est celle de l’élément <titre>). Si et seulement si le titre avait bien un article, l’élément <alphabet> a deux autres attributs : @article qui contient l’article et [@[espace]] dont la valeur est 0 ou 1 qui indique si un espace sépare ou non l’article du reste du titre (dans la plupart des cas, la valeur de [@[espace]] est 1 mais, par exemple, en français, l’article défini sous la forme du l apostrophe est « collé » au texte, l’attribut aura donc la valeur 0).