Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
serveurscrutari:config:attributes [2012/09/10 13:43] – vincent | serveurscrutari:config:attributes [2017/11/02 11:54] (Version actuelle) – vincent |
---|
====== Fichier attributes.xml : définir les attributs utilisés====== | ====== Fichier attributes.xml : définir les attributs utilisés====== |
| |
Le format ScrutariData permet d'associer des attributs à une fiche avec la liberté d'indiquer la clé de l'attribut. Encore faut-il configurer le serveur Scrutari pour qu'il sache quoi faire avec ces attributs. C'est le rôle du fichier attributes.xml. | Le format ScrutariData permet d'associer des attributs à une fiche avec la liberté d'indiquer la clé de l'attribut. Encore faut-il configurer le moteur Scrutari pour qu'il sache quoi faire avec ces attributs. C'est le rôle du fichier attributes.xml. |
| |
Dans ce fichier, les attributs sont regroupés par groupe. Actuellement, les groupes sont les suivants : | Dans ce fichier, les attributs sont regroupés par groupe désignés par un nom. Scrutari considère trois groupes avec les noms suivants : |
* Les attributs du premier groupe : ce sont les attributs considérés comme « supérieurs » aux champs complémentaires : ils seront placés avant eux | * //primary// : attributs du premier groupe, considérés comme « supérieurs » aux champs complémentaires : ils seront placés avant eux |
* Les attributs du second groupe : ce sont les attributs secondaires placés après les champs complémentaires. | * //secondary// : attributs du second groupe, placés après les champs complémentaires |
| * //technical// : attributs techniques qui sont pas traités comme du texte, les recherches ne portent pas dessus mais ils peuvent servir pour des filtres |
| |
Le serveur Scrutari possède des attributs définis par défaut, leur espace de noms est sct. Les attributs par défaut sont : | Le moteur Scrutari propose des attributs prédéfinis avec l'espace de nom //ns//, avec leurs libellés dans plusieurs langues : |
* //sct:authors// : auteurs d'un document, cet attribut est toujours rajouté (meêm s'il n'est pas indiqué dans le fichier attributes.xml) dans le premier groupe (sauf si indiqué dans le second groupe dans le fichier attributes.xml) | * //sct:authors// : auteurs d'un document (cet attribut est typiquement placé dans le premier groupe) |
| * //sct:tags// : mots-clés libres |
| * //sct:thumbnail// : URL d'une image servant de vignette pour la fiche (cet attribut est typiquement placé dans le groupe des attributs techniques) |
| * //sct:website// : site web vers lequel renvoie la fiche (par exemple, la fiche d'un organisme) |
| |
| Ils ne sont cependant pas inclus par défaut. Il faut les indiquer spécifiquement (le moteur propose des libellés par défaut qui peuvent être modifiés). Il faut considérer ces attributs prédéfinis comme des suggestions, l'utilisation d'attributs communs permettant la réutilisation d'un fichier au format ScrutariData d'un moteur Scrutari à un autre. |
| |
| Outre son nom, il est possible d'indiquer le libellé de l'attribut dans différentes langues et son format. Le format sert surtout pour indiquer le mode d'affichage à utiliser de préférence pour les valeurs pour les attributs. L'impact d'un format est surtout visible pour les attributs multi-valués (avec plusieurs valeurs) |
| |
| Les formats possibles sont les suivants : |
| |
| * //inline// : les valeurs sont disposés sur une même ligne, séparé par une virgule (exemple des auteurs), c'est le mode par défaut |
| * //list// : les valeurs sont disposés sous la forme d'une liste à puce (par exemple, une liste d'URLs complémentaires) |
| * //block// : les valeurs sont disposés sous la forme de paragraphes disctincts, le format //block// est une indication que le contenu de l'attribut peut être conséquent (par exemple, le résumé d'un document) |
| |
===== Structure du format XML ===== | ===== Structure du format XML ===== |
L'élément racine est l'élément !!<attributes>!!, il contient un ou plusieurs éléments !!<group>!!. Un élément //<group>// possède l'attribut !!@name!! qui est le nom du groupe et contient un ou plusieurs élements !!<attr-def>!! qui sont les définitions des attributs. | L'élément racine est l'élément !!<attributes>!!, il contient un ou plusieurs éléments !!<group>!!. Un élément //<group>// possède l'attribut !!@name!! qui est le nom du groupe et contient un ou plusieurs élements !!<attr-def>!! qui sont les définitions des attributs. |
| |
Un élément //<attr-def>// possède deux attributs : !!@ns!! l'espace de noms de l'attribut et !!@key!! la clé locale de l'attribut (la clé complète de l'attribut est consitué de l'espace de noms et de la clé locale). Il peut contenir un ou plusieurs élements <lib> qui sont les libellés de l'attribut dans différentes langues. | Un élément //<attr-def>// possède deux attributs : !!@ns!! l'espace de noms de l'attribut et !!@key!! la clé locale de l'attribut (la clé complète de l'attribut est consitué de l'espace de noms et de la clé locale). Il peut contenir un ou plusieurs élements !!<label>!! qui sont les libellés de l'attribut dans différentes langues. Il peut contenir un élément !!<format>!! pour indiquer le format de l'attribut, cet élément ayant par ailleurs un seul attribut !!@type!! qui doit avoir comme valeur //inline//, //list// ou //block//. |
| |
==== Exemple ==== | ==== Exemple ==== |
| |
Dans cet exemple, le libellé de l'attribut par défaut //sct:authors// est renommé pour correspondre aux réalisateurs. | L'exemple suivant est celui d'une base de films. L'attribut //sct:authors// est activé dans le premier groupe avec un libellé renommé en //sct:authors//, un autre attribut est présent dans le premier groupe pour porter l'information du producteur. Le second groupe comprend un attribut //cine:resume// correspondant au résumé, comme il peut faire plusieurs paragraphes, son format est de type //block//. Enfin, l'attribut //sct:thumbail// est activé, son contenu sera l'URL d'une vignette reprenant l'affiche du film. |
| |
<code xml> | <code xml> |
<attributes> | <attributes> |
<group name="primary"> | <group name="primary"> |
<attr-def ns="sct" key="authors"> | <attr-def ns="sct" key="authors"> |
<lib xml:lang="fr">Réalisateurs</lib> | <label xml:lang="fr">Réalisateurs</label> |
</attr-def> | </attr-def> |
| <attr-def ns="cine" key="producteurs"> |
| <label xml:lang="fr">Producteurs</label> |
| </attr-def> |
</group> | </group> |
<group name="secondary"> | <group name="secondary"> |
<attr-def ns="cine" key="producteurs"> | <attr-def ns="cine" key="resume"> |
<lib xml:lang="fr">Producteurs</lib> | <format type="block"/> |
</attr-def> | <label xml:lang="fr">Résumé</label> |
| </attr-def> |
| </group> |
| <group name="technical"> |
| <attr-def ns="sct" key="thumbnail"/> |
</group> | </group> |
</attributes> | </attributes> |
<!ATTLIST group name NMTOKEN #REQUIRED> | <!ATTLIST group name NMTOKEN #REQUIRED> |
| |
<!ELEMENT attr-def (lib*)> | <!ELEMENT attr-def (format?|label*)> |
<!ATTLIST attr-def ns NMTOKEN #REQUIRED> | <!ATTLIST attr-def ns NMTOKEN #REQUIRED> |
<!ATTLIST attr-def key NMTOKEN #REQUIRED> | <!ATTLIST attr-def key NMTOKEN #REQUIRED> |
| |
<!ELEMENT lib (#PCDATA)> | <!ELEMENT format (EMPTY)> |
<!ATTLIST lib xml:lang NMTOKEN #REQUIRED> | <!ATTLIST format type NMTOKEN #REQUIRED> |
| |
| <!ELEMENT label (#PCDATA)> |
| <!ATTLIST label xml:lang NMTOKEN #REQUIRED> |
| |
</code> | </code> |
| |