Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
serveurscrutari:config:fields [2017/11/04 13:56]
vincent créée
serveurscrutari:config:fields [2020/10/25 11:12] (Version actuelle)
vincent [Structure du format XML]
Ligne 5: Ligne 5:
 Effectuer la configuration du côté serveur avec //​fields.xml//​ simplifie la construction de la requête côté client, offre des possibilités de configuration plus vastes et permet de modifier le comportement par défaut. Effectuer la configuration du côté serveur avec //​fields.xml//​ simplifie la construction de la requête côté client, offre des possibilités de configuration plus vastes et permet de modifier le comportement par défaut.
  
-Le fichier //​fields.xml//​ permet de définir des « variantes ». Chaque variante a un nom, il suffit d'​indiquer ce nom dans le paramètre //​fieldvariant//​ disponible dans [[serveurscrutari:​json:​type_fiche|type = fiche]], [[serveurscrutari:​json:​type_qfiche|type = q-fiche]] et [[serveurscrutari:​json:​type_geojson|type = geojson]] pour indiquer la variante à utiliser. ​Trois variantes sont définies par défaut dans le logiciel avec les noms suivants :+Le fichier //​fields.xml//​ permet de définir des « variantes ». Chaque variante a un nom, il suffit d'​indiquer ce nom dans le paramètre //​fieldvariant//​ disponible dans [[serveurscrutari:​json:​type_fiche|type = fiche]], [[serveurscrutari:​json:​type_qfiche|type = q-fiche]] et [[serveurscrutari:​json:​type_geojson|type = geojson]] pour indiquer la variante à utiliser. ​Quatre ​variantes sont définies par défaut dans le logiciel avec les noms suivants :
  
   * //data// : variante utilisée pour [[serveurscrutari:​json:​type_fiche|type = fiche]]   * //data// : variante utilisée pour [[serveurscrutari:​json:​type_fiche|type = fiche]]
   * //query// : variante utilisée pour [[serveurscrutari:​json:​type_qfiche|type = q-fiche]]   * //query// : variante utilisée pour [[serveurscrutari:​json:​type_qfiche|type = q-fiche]]
   * //geo// : variante utilisée pour [[serveurscrutari:​json:​type_qfiche|type = geojson]]   * //geo// : variante utilisée pour [[serveurscrutari:​json:​type_qfiche|type = geojson]]
 +  * //empty// : aucun champ mis à part le code de la fiche ou du mot-clé
 +
 +Il suffit de définir dans //​fields.xml//​ des variantes avec le nom d'une variante par défaut pour la remplacer.
 +
 +
 +===== Structure du format XML =====
 +
 +L'​élément racine est l'​élément !!<​fields>​!!. Il peut contenir un nombre illimité d'​éléments !!<​variant>​!!,​ celui-ci doit posséde un attribut obligatoire,​ !!@name!!, qui est le nom de la variante. Le nom de la variante doit être un nom « technique », c'est à dire composé uniquement de minuscules non accentuées,​ de chiffres et du souligné //_//.
 +
 +Un élément !!variant!! possède les élements suivants :
 +
 +  * !!<​fiche>​!! : optionnel et unique, il possède un attribut !!@fields!! destiné à recevoir un contenu identique au paramètre //​fichefields//​ tel que décrit dans [[serveurscrutari:​json:​fiche_fields|Champs des fiches]]
 +  * !!<​motcle>​!! : optionnel et unique, il possède un attribut !!@fields!! destiné à recevoir un contenu identique au paramètre //​motclefields//​ tel que décrit dans [[serveurscrutari:​json:​motcle_fields|Champs des mots-clés]]
 +  * !!<​alias>​!! : en nombre illimité, permet de renommer un champ, voire de construire un champ concaténant des champs existants, il possède trois attributs :
 +    * !!@name!! : obligatoire,​ nom du nouveau champ, le nom est libre mais on évitera de le commencer par un souligné « //_// » (//_// préfixe les champs calculés dans ScrutariJs)
 +    * !!@fields!! : obligatoire,​ liste des champs composant le nouveau champ, il est similaire à l'​attribut //@fields// de l'​élément //<​fiche>//​
 +    * !!@separator!! : optionnel, il indique le séparateur à utiliser si le nouveau champ est composé de plusieurs valeurs
 +
 +
 +==== Exemple ====
 +
 +L'​exemple suivant montre les valeurs des trois variantes définies par défaut (//data//, //query//, //geo//).
 +
 +<code xml>
 +<​fields>​
 + <​variant name="​data">​
 + <fiche fields="​codecorpus,​titre,​soustitre,​complements,​year,​href,​icon"/>​
 + <​motcle fields="​labels"/>​
 + </​variant>​
 + <​variant name="​query">​
 + <fiche fields="​codecorpus,​mtitre,​msoustitre,​mattrs_all,​attrs,​mcomplements,​year,​href,​icon"/>​
 + <​motcle fields="​mlabels"/>​
 + </​variant>​
 + <​variant name="​geo">​
 + <fiche fields="​-codefiche"/>​
 + <​motcle fields="​labels"/>​
 + <alias name="​name"​ fields="​titre"/>​
 + <alias name="​url"​ fields="​href"/>​
 + </​variant>​
 + <​variant name="​empty">​
 + </​variant>​
 +</​fields>​
 +</​code>​
 +
 +Un autre exemple avec des alias sur les attributs. Un alias sur un attribut est particulièrement utile si l'​attribut est unique : il permet d'​accéder à la valeur plus facilement (par exemple, //​fiche.website//​ plutôt que //​fiche.attrMap["​sct:​website"​][0]//​)
 +
 +<code xml>
 +<​fields>​
 + <​variant name="​export">​
 + <fiche fields="​-codefiche"/>​
 + <​motcle fields="​labels"/>​
 + <alias name="​name"​ fields="​titre"/>​
 + <alias name="​description"​ fields="​soustitre"/>​
 + <alias name="​url"​ fields="​href"/>​
 + <alias name="​website"​ fields="​sct:​website"/>​
 + <alias name="​thumbnail"​ fields="​sct:​thumbnail"/>​
 + </​variant>​
 +</​fields>​
 +</​code>​
 +
 +===== DTD =====
 +
 +<code xml>
 +<​!ELEMENT fields (variant?​)>​
 +
 +<​!ELEMENT variant (fiche?​|motcle?​|alias*)>​
 +   <​!ATTLIST variant name NMTOKEN #​REQUIRED>​
 +   
 +<​!ELEMENT fiche EMPTY>
 +   <​!ATTLIST fiche fields NMTOKEN #​REQUIRED>​
 +
 +<​!ELEMENT motcle EMPTY>
 +   <​!ATTLIST motcle fields NMTOKEN #​REQUIRED>​
 +   
 +<​!ELEMENT alias EMPTY>
 +   <​!ATTLIST alias
 +        name NMTOKEN #REQUIRED
 +        fields NMTOKEN #REQUIRED
 +        separator NMTOKEN #IMPLIED
 +   >
 +
 +</​code>​
  
-Il suffit de définir dans //​fields.xml//​ des variantes avec le nom d'une variante par défaut pour la remplacer. ​ 
serveurscrutari/config/fields.1509800172.txt.gz · Dernière modification: 2017/11/04 13:56 par vincent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0