L’élément racine est l’élément <balayage> : il contient un élément <metadata>, un ou plusieurs éléments facultatifs <global-fiche-select> et une série d’éléments définissant des « unités de balayage » qui portent sur parties différentes de la base de fiches : <corpus-balayage>, <fiche-balayage>, <thesaurus-balayage>, <motcle-balayage>, <unique-balayage>.
L’élément <metadata>
Cet élément contient trois attributs :
@root : indique le point de départ dans l’arborescence des fichiers locaux, il y a deux point de départ par défaut : « context » et « www » . « context » désigne le répertoire de l’application Web, « www » est configurable par l’administrateur et désigne souvent un répertoire accessible via internet.
@path : indique le chemin relatif à partir du point de départ
@transform : attribut facultatif, prend comme valeur « true » (valeur par défaut) ou « false » . Si la valeur est « false » , le balayage générera les fichiers Xml issus de l’extraction sans faire de transformation XSLT
@langs : indique les langues à utiliser pour les libellés des langues, des pays ; plusieurs langues sont séparées par un point-virgule ; si l’attribut est absent, le balayage se basera sur toutes les langues de travail de la base.
@default-lang-option : option des langues qui s’applique par défaut (voir l’attribut @lang-option de l’élément output).
Il peut également contenir des éléments <mode>. Ces éléments servent à définir des modes de balayages différents (permettant ainsi de ne déclencher que certains balayages). Un élément <mode> possède deux attributs :
@name : cet attribut est obligatoire et désigne le nom du mode, c’est ce nom qui permettra d’identifier quels balayages appartiennent au mode
@limit : cet attribut est facultatif et a comme unique valeur date
, il n’est utilisé que dans les balayages de fiches et limite le balayage aux fiches modifiées le jour même.
L’élément <global-fiche-select>
L’élément <global-fiche-select> permet de définir un critère global de sélection des fiches qui s’appliquera à toutes les extractions. La syntaxe de <global-fiche-select> est la même que celle de <fiche-select>. Comme <fiche-select> on peut mettre plusieurs éléments <global-fiche-select> à la suite qui auront ou comme relation conditionnelle.
Seules les fiches sélectionnées par <global-fiche-select> seront apparaîtront dans les extractions, par exemple dans le liage d’une fiche, l’indexation d’un mot-clé ou la liste des fiches d’un corpus. L’élément <global-fiche-select> permet de définir un critère de publication, l’exemple classique est celui d’un thésaurus avec le mot-clé « Public » qui permet de marquer les fiches susceptibles d’être publiées.
Si une unité de balayage possède son propre critère de sélection, il y a addition entre les critères de la sélection globale et celle de l’unité de balayage. Ce comportement peut être évité avec l’attribut @global-select (voir ci-dessous).
Les unités de balayage :
Toutes très similaires, elles se distingue par un préfixe qui indique ce qui va déterminé le nombre d’extraction :
<unique-balayage< : une seule extraction sera effectuée.
<corpus-balayage> : une extraction par corpus sélectionné
<fiche-balayage> : une extraction par fiche sélectionnée
<thesaurus-balayage> : une extraction par thésaurus sélectionné
<motcle-balayage> : une extraction par mot-clé sélectionné
<document-balayage> : l’extraction des documents associés
<illustration-balayage> : une extraction par illustration selectionné
ces éléments peuvent posséder les attributs facultatifs suivants :
@extraction qui indique le chemin à partir du répertoire extraction du fichier donnant les paramètres d’extraction. Si cet attribut est manquant, c’est le format d’extraction par défaut qui est appliqué.
@mode : indique le mode (ou les modes séparés par une virgule) auquel appartient le balayage.
@global-select : si l’attribut existe et a comme valeur false
, les critères de sélection imposés par d’éventuels éléments <global-fiche-select> sont ignorés.
Ils comprennent principalement des éléments <output> qui indique les sorties faites à partir de l’extraction.
Un élément <output> possède les attributs factultatifs suivants :
@xslt : donne le nom de la feuille de style xslt à appliquer, ce nom doit correspondre à un fichier du sous-répertoire xslt ; si l’attribut @xslt est absent, une feuille de style par défaut est appliqué
@path : indique le chemin relatif du répertoire où doit être enregistré le fichier, en cas d’absence le fichier est enregistré dans le répertoire de balayage
@pattern : indique le modèle à appliquer pour construire le nom du fichier
@clean : si l’attribut est présent et a pour valeur 1
, le répertoire de destination est nettoyé de tous les fichiers pré-existants (ce nettoyage n’est effectué que lors d’un balayage global, aucun suppression n’est faite lors du balayage suivant un mode).
@lang-option : s’il a la valeur dir
, il y aura un fichier généré par langue et ils seront placés dans des répertoires différents du nom de la langue, ces répertoires sont placés avant le chemin relatif indiqué par @path (autrement dit, les répertoires de langue sont placés directement dans le répertoire de balayage), si cet attribut est absent, c’est la valeur de @default-lang-option qui s’applique. @lang-option peut donc avoir également la valeur none
pour annuler l’effet de @default-lang-option.
@langs : cet attribut facultatif permet de modifier les langues du balayage spécifiquement pour cet élément <output>
Un élément <output> peut également comprendre un nombre illimité d’éléments <param> qui décrivent des paramètres qui seront passés à la feuille de style XSLT (en plus des paramètres passés automatiquement, voir Paramètres passés automatiquement). Un élement <param> a comme attribut @name et @value.
Si on a le paramètre suivant :
<param name="Lang" value="fr"/>
Il sera récupéré dans la feuille XSLT via :
<xsl:param name="Lang"/>
<fiche-balayage> peut comprendre, avant tout élément <output> des éléments identiques à ceux de l’élément fiche-select afin de limiter l’étendue des fiches sur lequel se fait l’extraction.
Par exemple :
<fiche-balayage extraction="fiche.xml">
<corpus>site</corpus>
<range>1</range>
<output xslt="index.xsl" pattern="index"/>
</fiche-balayage>
Cette unité de balayage fait un balayage sur les fiches en prenant comme modèle d’extraction « fiche.xml » , elle ne portera que sur la fiche « 1 » (<range>1</range>) du corpus « site » (<corpus>site</corpus>) et le fichier généré aura pour nom index.html (ou index.xml s’il n’y a pas de transformation) après transformation par la feuille de style « index.xsl ».
Un élément <fiche-balayage> est également sensible aux critères de la sélection globale pour déterminer quelles fiches seront réellement extraite sauf si cet élément possède l’attribut global-select avec la valeur false.
De la même manière un élement <motcle-balayage> peut comprendre avant tout élément <output> des éléments identiques à ceux de <motcle-select>, là aussi à fin de réduire l’étendue de l’extraction.
Enfin, <corpus-balayage> et <thesaurus-balayage> peuvent comprendre avant tout élément <output> respectivement des éléments <corpus> et <thesaurus> afin de restreindre l’extraction aux corpus et thésaurus indiqués.
Cas particulier de @path="_inc_"
Il peut arriver que le premier balayage serve à générer un fichier xml qui sera utilisé dans les feuilles de style XSLT des balayages qui suivent (par exemple, la construction d’un menu qui se trouve dans toutes les pages à partir d’un thésaurus). Ce fichier xml est un fichier transitoire qui ne sert qu’au moment du balayage.
Il est possible de placer ce fichier xml dans un répertoire particulier en donnant _inc_ comme valeur de l’attribut @path d’un élément <output>. Ce répertoire particulier se trouve dans le répertoire du balayage lui-même et s’appelle _inc_. Les fichiers qui s’y trouvent sont alors accessibles par les fichiers XSLT qui se trouvent, eux, dans le répertoire xslt par une commande de type :
document('../_inc_/menu.xml')
Cas particulier de <document-balayage>
L’extraction sur les documents consiste simplement en une copie des documents associés dans la base de fiches vers un répertoire accessible de l’extérieur. Il y a pas de transformation apportée au document. Autrement dit, l’attribut @extraction de <document-balayage> et l’attribut @pattern des éléments <output> n’ont pas d’importance. En outre, ce balayage n’est pas affecté par les options de langues (attribut @lang-option et @lang-option).
Les éléments <output> utilise l’arguments supplémentaire :
@mode : a comme valeur ln
,ls
ou cp
, ln
et ls
sont réservés aux systèmes Unix et indiquent qu’il ne faut pas faire une copie des fichiers mais, respectivement, des liens « dur » ou « symboliques ».
Un balayage de documents peut être limité à certaines extensions (par exemple, ne balayer que les fichier pdf). Pour cela, il suffit d’inclure dans l’élément <document-balayage> des éléments <extension>, qui comprennent les extensions à conserver.
Si un ou plusieurs éléments <global-fiche-select> a été défini, seuls les documents associés aux fiches sélectionnées sont extraits. Dans le même ordre d’idée, un élément <document-balayage> accepte les mêmes éléments que <fiche-balayage> permettant de sélectionner les fiches : seuls les documents associés à des fiches seront extraits.
<document-balayage>
<extension>pdf</extension>
<extension>odt</extension>
<corpus>bip</corpus>
<range>100-200</range>
<output path="docs" mode="ln" clean="1"/>
</document-balayage>
Extraction des documents pdf et odt associés aux fiches bip de numéro compris entre 100 et 200
L’élément <sitemap>
La présence de l’élément <sitemap> permet de produire un fichier XML au format SiteMap, format conçu pour enregistrer toutes les URLs d’un site à destination des moteurs de recherche. Le fichier produit va contenir toutes les liens vers les fichiers HTML générés par les différents balayages.
Point important : seuls les fichiers avec l’extension .html
sont inclus dans le fichier SiteMap.
L’élément <sitemap> possède trois attributs optionnels :
@file-name : nom du fichier SiteMap généré, si l’attribut est absent, le fichier est appelé sitemap.xml
,
@path : chemin d’enregistrement du fichier relativement à la racine du balayage
@base-url : URL de base correspondant à la racine du balayage (l’URL d’un fichier est construit de la façon suivante : Url de base + chemin relativement à la racine du balayage + nom du fichier).