Le fichier _import_fiche.xsl

Le fichier _import_fiche.xsl est le fichier qu’il suffit d’importer dans sa feuille de style pour bénéficier d’un grand nombre de règles déjà définies. C’est dans ce fichier que sont définis les principaux paramètres. Son analyse permet de comprendre le fonctionnement global et souvent sa simple modification permet de résoudre la plupart des questions posés par un balayage.

Le fichier se présente sous la forme suivante :

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:import href="_formats_.xsl"/>
  <xsl:import href="_common_ficheitem.xsl"/>
  <xsl:import href="_common_ficheblock.xsl"/>
  <xsl:import href="_common_field.xsl"/>
  <xsl:import href="_common_include.xsl"/>
  <xsl:import href="_common_intitules.xsl"/>
  <xsl:import href="_common_motcle.xsl"/>
  <xsl:import href="_common_compat.xsl"/>

  <xsl:param name="WORKINGLANG" select="'fr'"/>
  <xsl:param name="FORMATLOCALE" select="'fr'"/>
  <xsl:variable name="LOCALESTRINGS" select="document(concat('_localestrings_', concat($FORMATLOCALE,'.xml')))/localestrings"/>
  <xsl:variable name="LIBS_INTITULES" select="document(concat('_libs_special_intitules_', concat($WORKINGLANG,'.xml')))/libs"/>

  <xsl:template name="TEMPLATE_FICHEURL">
    <xsl:param name="PARAM_CORPUS"/>

    <xsl:param name="PARAM_IDCORPUS"/>
    <xsl:param name="PARAM_FRAGMENT" select="''"/>
    <xsl:text>http://localhost:8084/BaseDeFiches/</xsl:text><xsl:text>fiches/</xsl:text><xsl:value-of select="$PARAM_CORPUS"/><xsl:text>-</xsl:text><xsl:value-of select="$PARAM_IDCORPUS"/><xsl:text>.html</xsl:text>
    <xsl:if test="string-length($PARAM_FRAGMENT) &gt; 0">
      <xsl:text>#</xsl:text><xsl:value-of select="$PARAM_FRAGMENT"/>
    </xsl:if>

  </xsl:template>

  <xsl:template name="TEMPLATE_MOTCLEURL">
    <xsl:param name="PARAM_THESAURUS"/>
    <xsl:param name="PARAM_IDTHS"/>
    <xsl:param name="PARAM_FRAGMENT" select="''"/>
    <xsl:text>http://localhost:8084/BaseDeFiches/</xsl:text>Thesaurus?thesaurus=<xsl:value-of select="$PARAM_THESAURUS"/>&amp;idths=<xsl:value-of select="$PARAM_IDTHS"/>
  </xsl:template>

  <xsl:template name="TEMPLATE_VERSIONURL">
    <xsl:param name="PARAM_BASENAME"/>
    <xsl:param name="PARAM_EXTENSION"/>
    <xsl:text>http://ns38147.ovh.net:8080/basedefiches/</xsl:text>docs/<xsl:value-of select="$PARAM_BASENAME"/>.<xsl:value-of select="$PARAM_EXTENSION"/>
  </xsl:template>

  <xsl:template name="TEMPLATE_INSERTURL">
    <xsl:param name="PARAM_SRC"/>
    <xsl:text>http://www.basedefiches.net/images/</xsl:text><xsl:value-of select="$PARAM_SRC"/>
  </xsl:template>

</xsl:stylesheet>

La première partie comporte une série d’import de règles prédéfinies, certaines de ces règles s’appuient sur des variables et des règles définies dans à la suite du fichier.

Les fichiers d’import

_common_ficheitem.xsl

Ce fichier propose une règle par défaut pour toutes les données qui se retrouvent dans les champs Propriété et Information. Par exemple, il va interpréter un lien internet pour le rendre cliquable.

Il utilise le paramètre FORMATLOCALE.

Il possède deux règles particulières qui sont les suivantes :

<xsl:template match="*" mode="MODE_INLINE">
<xsl:param name="PARAM_SEP" select="', '"/>
<xsl:if test="position() &gt; 1"><xsl:value-of select="$PARAM_SEP"/></xsl:if>
<xsl:apply-templates select="."/>
</xsl:template>

<xsl:template match="*" mode="MODE_BLOCK">
<xsl:param name="PARAM_CLASS" select=""/>
<p class="{$PARAM_CLASS}"><xsl:apply-templates select="."/></p>
</xsl:template>

Ces règles peuvent s’appliquer à n’importe quel type d’items. Le mode MODE_INLINE s’utilise quand les items sont à la suite les uns des autres sur une même ligne, le séparateur étant défini par le paramètre PARAM_SEP. Le mode MODE_BLOCK s’applique quand les items sont placés ligne par ligne, une balise <p> est utilisée avec la classe définie par le paramètre PARAM_CLASS.

_common_ficheblock.xsl

Ce fichier propose une règle par défaut pour tous les éléments susceptibles d’être rencontrés dans un champ de type texte.

Ces règles font appel à la variable INSERTURL ainsi qu’aux règles TEMPLATE_FICHEURL et TEMPLATE_MOTCLEURL

_common_field.xsl

Ce fichier propose des règles par défaut pour tous principaux champs d’une fiche (Propriété, Annexe, etc.).

Deux modes sont proposés pour les champs de type information, le mode MODE_INLINE et MODE_BLOCK qui correspondent aux modes décrits dans _common_ficheitem.xsl.

<xsl:template match="information" mode="MODE_INLINE">
<xsl:apply-templates select="*" mode="MODE_INLINE"/>
</xsl:template>

<xsl:template match="information" mode="MODE_BLOCK">
<xsl:apply-templates select="*" mode="MODE_BLOCK"/>
</xsl:template>

_common_include.xsl

Ce fichier propose des règles pour tout ce qui touche à l’indexation par des mots-clés, au liage avec d’autres fiches, à l’association avec des documents ainsi qu’au traitement des deux informations techniques que sont la date de création et celle de la dernière modification.

Ce fichier utilise les paramètres WORKINGLANG et FORMATLOCALE, les variables LOCALESTRINGS et DOCURL ainsi que la règle TEMPLATE_FICHEURL et les modes MODE_INTITULE définis dans _common_intitule.xsl.

À valider pour PoidsFilter

_common_intitules.xsl

Ce fichier propose des règles avec le mode MODE_INTITULE pour les éléments <extraitcorpus>, <extraitthesaurus> et <fiche>. Ces règles affichent l’intitulé du corpus, du thésaurus ou de la fiche en question.

Ce fichier utilise la variable LIBS_INTITULES.

_common_motcle.xsl

Ce fichier propose une série de règles avec des modes différents spécifiquement pour les mot-clés : deux règles MODE_INLINE et MODE_BLOCK sur le même principe que pour les items décrits dans _common_ficheitem.xsl et une règle MODE_MOTCLELIB qui affiche le libellé du mot-clé en prenant en compte l’idalpha ainsi que les langues disponibles.

Autres paramètres

Tous les noms de variables, de règles et de paramètres sont en majuscules afin de rappeler qu’elles sont utilisées au delà du seul fichier _import_fiche.xsl (lorsqu’un paramètre n’a qu’une portée locale il est en minuscule).

<xsl:param name="WORKINGLANG" select="'fr'"/>
<xsl:param name="FORMATLOCALE" select="'fr'"/>

WORKINGLANG et FORMATLOCALE sont deux paramètres essentiels. Ils correspondent à la langue de travail et à la localisation de l’interface définie pour la personne qui utilise la transformation XSLT. Ces paramètres sont passés automatiquement lors de l’affichage d’une fiche. Dans le cas d’un balayage, il faudra les ddéfinir explicitement. Ces paramètres possèdent une valeur par défaut correspond à la langue de travail par défaut de la base de fiches.

Ces deux paramètres influent directement sur les deux variables suivantes :

<xsl:variable name="LOCALESTRINGS" select="document(concat('_localestrings_',concat($FORMATLOCALE,'.xml')))/localestrings"/>
<xsl:variable name="LIBS_INTITULES" select="document(concat('_libs_special_intitules_',concat($WORKINGLANG,'.xml')))/libs"/>

Ces deux variables sont de type XSLT NodeSet, elles correspondent au chargement d’un certain nombre d’information de localisation.

LOCALESTRINGS charge un fichier comprenant des informations telles que la règle de formatage d’un identifiant, l’abréviation de « Kilooctet », etc. Ces éléments de localisation sont utilisés en particulier dans _common_include.xsl.

<localestrings>
<string key="creation-date">Date de création
</string>
<string key="modification-date">Dernière modification
</string>
<string key="kilobyte">ko
</string>
<string key="megabyte">Mo
</string>
<string key="id-format">#&#x00A0;##0
</string>

<string key="filelength-format">0,#
</string>
</localestrings>

Exemple de _localestrings_fr.xml

LIBS_INTITULES charge un fichier comprenant les intitulés des différents corpus et thésaurus de la base. Il est très utilisé pour l’indexation et le liage.

<libs>
<lib corpus="apbudget" intitule-name="corpus">Fiche budgétaire 2006-2007</lib>
<lib corpus="apbudget" intitule-name="fiche.new">Nouvelle fiche budgétaire 2006-2007</lib>
<lib corpus="apbudget" intitule-name="fiche.existing">Fiche budgétaire 2006-2007 n°06-</lib>

<lib thesaurus="compta" intitule-name="thesaurus">Imputation compta</lib>
<lib thesaurus="destversement" intitule-name="thesaurus">Destination du versement</lib>

</libs>

exemple d’un fichier _libs_special_intitules_fr.xml

Les derniers éléments du fichier sont quatre règles : TEMPLATE_FICHEURL et TEMPLATE_MOTCLEURL, TEMPLATE_VERSIONURL et TEMPLATE_INSERTURL qui permettent de reconstituer les URL d’une fiche, d’un mot-clé, d’une version d’un document associé ou d’une ressource insérée dans une fiche (généralement une image). Ces règles sont utilisées dans l’indexation, le liage, les renvois au sein d’un texte, etc. Par défaut, les règles permettent d’accéder aux fiches et mots-clés au sein de la base de fiches. Ces règles sont à modifier en cas de balayage lorsque la localisation change.