Table des matières

Champs des fiches

Les champs des fiches constituent la masse la plus importante de données susceptibles d'être transmise par les différentes requêtes. La liste des champs à transmettre est indiquée soit par le paramètre fichefields, soit par la variante de champs à utiliser indiquée par le paramètre fieldvariant. Dans le cas d'absence des deux paramètres, c'est la variante par défaut qui est utilisée (voir la configuration des variantes de champs côté serveur avec le fichier fields.xml.

La valeur du paramètre fichefields ou de l'attribut @fields de l'élément <fiche> dans fields.xml est une liste de champs séparés par une virgule avec les valeurs suivantes :

Chaines marquées

Une chaine marquée est une chaine découpée pour indiquer la position des sous-chaines correspondant à la séquence de recherche. Ce découpage permet par exemple de surligner ces sous-chaines pour les mettre en évidence. Une chaine découpée se présente sous forme d'un tableau qui contient soit des chaines (parties non marquées), soit des objets avec deux propriétés : i pour la position de de la chaine recherchée correspondante dans la chaine de recherche et s pour la chaine elle-même.

Exemple : la séquence de recherche est durab dev, le titre trouvé est « définition du Développement Durable », la propriété mtitre retournée sera le tableau suivant :

mtitre: [
  "définition du ", // début du titre
  { //objet correspondant à la présence de la deuxième séquence : dev
    i: 2, 
    s: "Dév"
  },
  "eloppement ", // suite du titre
  { //objet correspondant à la présence de la première séquence : durab
    i: 1;
    s: "Durab"
  },
  "le" // fin du titre
]

Cela permettra de l'afficher ainsi : définition du Développement Durable

Note : dans le cas d'une chaine qui est non marquée mais tout de même incluse (cas de mtitre), le résultat sera un toujours tableau qui contiendra simplement une unique chaine

Renommage des noms des champs dans l'objet résultant

Cette fonctionnalité peut être utile quand l'objet JSON est traité directement par d'autres outils (dans l'export au format GeoJSON notamment).

Le moyen le plus efficace est de renommer un champ est d'utiliser les variantes de champs définies du côté serveur avec le fichier fields.xml et les éléments <alias> (qui permettent notamment la concaténation de plusieurs champs en un seul).

Pour des raisons historiques et pratiques, il est possible de renommer certains champs directement avec les paramètres suivants :

Structure de l'objet résultant

Note : même si un champ est indiqué dans fichefields, la propriété peut être absente dans l'objet JSON correspondant si la valeur est nulle.

Version 3

{
  codefiche:, // code de la fiche, toujours présent sauf si -codefiche (entier > 0)
  codecorpus:, // champ 'codecorpus' (entier > 0)
  codebase:, // champ 'codebase' (entier > 0)
  authority:, //autorité productrice de la base tel que dans l'URI (chaine)
  basename:, //nom technique de la base tel que dans l'URI (chaine)
  corpusname:, //nom technique du corpus tel que dans l'URI (chaine)
  ficheid:, // champ 'fiche-id' (chaine)
  titre:, // champ 'titre' (chaine)
  soustitre:, // champ 'soustitre' (chaine)
  href:, // champ 'href' (chaine)
  lang:, // champ 'lang' (chaine, code ISO de la langue)
  year:, // champ 'year' (entier)
  date:, // champ 'date' (chaine)
  ficheicon:, // champ 'ficheicon' (chaine)
  icon:, // champ 'icon' (chaine)
  lat:, // latitude si champ 'geo' (chaine)
  lon:, // longitude si champ 'geo' (chaine)
  complementArray: [ // tableau des champs complémentaires si champ 'complements'
    {
      number:, // numéro du champ complémentaire (entier > 0)
      value:// texte du champ complémentaire (chaine)
    }
  ],
  attrMap: { // si champ 'attrs', tableau associatif des attributs
    (clé): [ // la clé est celle de l'attribut, la valeur est le tableau des valeurs de l'attribut
 
    ]
  },
  mtitre: [ // tableau du titre marqué
    // voir ci-dessus chaines marquées
  ],
  msoustitre: [ // tableau du soustitre marqué
    // voir ci-dessus chaines marquées
  ],
  mcomplementArray: [ // si champ 'mcomplements', tableau des compléments marqués
    {
      number:, // numéro du champ complémentaire (entier > 0)
      mvalue: [ // tableau du complément marqué 
      // voir ci-dessus chaines marquées
      ]
    }
  ],
  mattrMap: { // si champ 'mattrs', tableau associatif des attributs marqués
    (clé): [ // la clé est celle de l'attribut, la valeur est le tableau des valeurs de l'attribut
         // voir de ci-dessus chaines marquées
    ]
  },
  bythesaurusMap: { // si champ 'bythesaurusmap', tableau associatif des mots-clés regroupés par thésaurus
    code_(code): [ // code du thésaurus
         // liste des codes des mots-clés
    ]
  },
  score: [] // score de la fiche sous la forme d'un tableau de trois réels entre 0 et 1
}

Version 2 et inférieures

{
  codefiche:, // code de la fiche, toujours présent sauf si -codefiche (entier > 0)
  codecorpus:, // champ 'codecorpus' (entier > 0)
  codebase:, // champ 'codebase' (entier > 0)
  basename:, //nom technique de la base tel que dans l'URI (chaine)
  corpusname:, //nom technique du corpus tel que dans l'URI (chaine)
  ficheid:, // champ 'fiche-id' (chaine)
  titre:, // champ 'titre' (chaine), le nom de la propriété peut être modifié avec field-titre
  soustitre:, // champ 'soustitre' (chaine), le nom de la propriété peut être modifié avec field-soustitre
  href:, // champ 'href' (chaine), le nom de la propriété peut être modifié avec field-href
  lang:, // champ 'lang' (chaine, code ISO de la langue)
  annee:, // champ 'annee' (entier) , le nom de la propriété peut être modifié avec field-annee
  date:, // champ 'date' (chaine)
  ficheicon:, // champ 'ficheicon' (chaine)
  icon:, // champ 'icon' (chaine)
  lat:, // latitude si champ 'geo' (chaine)
  lon:, // longitude si champ 'geo' (chaine)
  __ attribut __:, // attribut correspondant avec les valeurs concaténées suivant le format de l'attribut (chaine)
  complementArray: [ // tableau des champs complémentaires si champ 'complements'
    {
      num:, // numéro du champ complémentaire (entier > 0)
      comp:// texte du champ complémentaire (chaine)
    }
  ],
  mtitre: [ // tableau du titre marqué
    // voir ci-dessus chaines marquées
  ],
  msoustitre: [ // tableau du soustitre marqué
    // voir ci-dessus chaines marquées
  ],
  mcomplementArray: [ // si champ 'mcomplements', tableau des compléments marqués
    {
      num:, // numéro du champ complémentaire (entier > 0)
      mcomp: [ // tableau du complément marqué 
      // voir ci-dessus chaines marquées
      ]
    }
  ],
  mattrMap: { // si champ 'mattrs', tableau associatif des attributs marqués
    (clé): [ // la clé est celle de l'attribut, la valeur est le tableau des valeurs de l'attribut
         // voir de ci-dessus chaines marquées
    ]
  },
  score: [] // score de la fiche sous la forme d'un tableau de trois réels entre 0 et 1
}