Accueil > Développement d'applications SDX > Les API > L'API XSP


Documentation de l'API XSP

Dernière modification : 2001/11/02 15:04:39     Contact : Martin Sévigny

L'API XSP se présente sous la forme d'une série d'éléments ou de groupes d'éléments XML qui permettent d'effectuer des opérations. Nous allons les présenter un par un ici.

sdx:page

Il s'agit de l'élément qui doit contenir l'ensemble des informations à inclure dans le document XML dynamique, si l'on veut que l'environnement SDX soit correctement généré.

Cet élément permet de générer une structure de données qui commence avec l'élément sdx:document. De plus, il permet d'initialiser certaines variables globales comme l'environnement SDX, l'objet de configuration de la base de documents, etc.

Les instructions SDX ou XSP que l'on retrouve à l'intérieur de cet élément seront traitées, et les autres éléments seront copiés dans le document XML dynamique.

sdx:checkRights, sdx:userIsMember et sdx:fallback

Ces éléments permettent de construire une partie du document XML en fonction du droit de l'utilisateur en cours (sdx:checkRights) ou de son apprtenance à un groupe (sdx:userIsMember). Essentiellement, le contenu de cet élément sera traité seulement si l'utilisateur en cours a le droit d'effectuer l'action identifiée par son attribut action ou encore s'il fait partie du groupe identifié par l'attribut group ou le paramètre spécifié par l'attribut groupParam de l'élément sdx:userIsMember.

Si l'utilisateur n'a pas le droit d'effectuer cette action, alors seulement le sous-élément sdx:fallback de cet élément sera traité. Bien entendu, cet élément n'est pas traité dans le cas où l'utilisateur possède les droits requis.

Par ailleurs, certaines actions ont des droits qui dépendent du document XML concerné. C'est le cas, par exemple, de l'action de suppression ou de modification du document. Dans ce cas, l'identifiant du document doit être présent dans les paramètres de la requête, et le paramètre qui le contient doit être spécifié dans l'attribut param de l'élément. S'il n'est pas spécifié, alors on utilise le paramètre id.

Les actions associées à sdx:checkRights sont identifiées par des codes textuels. Voici les codes qui sont définis dans SDX :

superuser

Vérifie si l'utilisateur est un administrateur SDX. Il s'agit d'une action d'identification seulement.

anonymous

Vérifie si l'utilisateur est anonyme, donc non identifié. Il s'agit d'une action d'identification seulement.

add_db

Ajouter une base de documents dans cette installation SDX. Seuls les administrateurs peuvent le faire.

edit_db

Modifier une base de documents dans cette installation SDX (n'importe quelle base). Seuls les administrateurs peuvent le faire.

delete_db

Supprimer une base de documents dans cette installation SDX (n'importe quelle base). Seuls les administrateurs peuvent le faire.

add_document

Ajouter un document dans la base courante. On doit avoir les privilèges o ou w pour pouvoir le faire.

edit_document

Modifier un document dans la base courante. On doit avoir le privilège o ou encore avoir le privilège w tout en étant propriétaire du document.

delete_document

Supprimer un document dans la base courante. On doit avoir le privilège o ou encore avoir le privilège w tout en étant propriétaire du document.

view_document

Voir un document. Tous les utilisateurs peuvent le faire.

edit_user

Modifier un utilisateur. Seuls les administrateurs peuvent le faire.

add_user

Ajouter un utilisateur. Seuls les administrateurs peuvent le faire.

delete_user

Supprimer un utilisateur. Seuls les administrateurs peuvent le faire.

Pour les groupes, on peut utiliser une construction telle que :

<sdx:userIsMember group="administrateurs">
 <edition/>
 <sdx:fallback>
   <erreur/>
 </sdx:fallback>
</sdx:user>

sdx:insertXMLFile

Cet élément permet d'insérer un fichier XML dans le document XML dynamique en cours de construction. Ce fichier doit être accessible dans le répertoire de la base de documents ou dans l'un de ses répertoires.

Le chemin d'accès (relatif au répertoire de la base de documents) doit être spécifié dans l'attribut name.

sdx:handleLogout

Cet élément permet de vérifier si un utilisateur veut se déconnecter (c'est-à-dire devenir anonyme). Si oui, l'opération est effectuée, si non aucun changement n'est apporté. Cet élément ne génère jamais de contenu XML, il ne fait que modifier l'objet utilisateur (sdxUser).

On identifie un utilisateur qui veut se déconnecter par la présence d'un paramètre logout dans la requête dont la valeur est quelconque mais non nulle.

sdx:showTable

Cet élément permet l'insertion d'une partie du contenu d'une table externe de la base de documents. L'attribut tblParam contient le nom du paramètre identifiant la table, et l'attribut whereParam contient le nom du paramètre qui identifie la clause WHERE à utiliser pour sélectionner des enregistrements dans la table.

Par exemple, cet élément :

<sdx:showTable tblParam="t" whereParam="w"/>

utilisé pour une requête qui se termine par :

?t=ress&w=parent='c21'

permettra d'insérer tous les enregistrements de la table ress qui respectent la clause WHERE parent='c1'.

sdx:uploadDocument

Note : cet élément s'appelait autrefois sdx:uploadXMLFile. Cet ancien nom est toujours valide, mais ne doit pas être utilisé.

Cet élément permet de démarrrer l'ajout d'un document XML ou HTML et de ses documents attachés depuis un formulaire Web. Les informations qui sont gérées sont les suivantes :

Ces éléments d'informations sont fournis de la façon suivante :

A la fin, la variable sdx_uploadDocument_docId sera assignée à la valeur de l'identifiant du document chargé.

sdx:uploadDocuments

Cet élément permet de démarrrer l'ajout d'une collection de documents XML ou HTML et de leurs documents attachés depuis un fichier ZIP ou un dossier sur le serveur. Les informations qui sont gérées sont les suivantes :

Ces éléments d'informations sont fournis de la façon suivante :

A la fin, la variable sdx_ud_errors sera assignée à la liste des erreurs obtenues.

sdx:includeDocument

Cet élément permet d'inclure un document XML géré par SDX dans le document XML dynamique en cours de construction. C'est habituellement la façon d'afficher un document.

Ces attributs peuvent être utilisés :

id

L'identifiant du document, dans le cas où celui-ci est déjà connu.

idParam

Le nom du paramètre dans la requête qui identifie le document à retourner. S'il n'est pas présent, ce sera id.

qidParam

Le nom du paramètre dans la requête qui identifie la recherche qui a permis de trouver ce document. S'il n'est pas spécifié, ce sera q.

noParam

Le nom du paramètre dans la requête qui identifie le numéro de ce document dans les résultats de recherche. Par défaut, ce sera n.

sdx:deleteDocument

Cet élément permet de supprimer un document dans la base de documents en cours. L'attribut idParam indique le paramètre de la requête qui contient l'identifiant du document à supprimer.

sdx:buildXMLFromForm

Cet élément permet d'interfacer une classe externe à SDX avec le système d'alimentation d'une base de documents, dans le but de permettre la création de documents XML par un formulaire HTML.

L'attribut classname contient le nom d'une classe Java, disponible dans le CLASSPATH et respectant l'interface fr.gouv.culture.sdx.XMLBuilderFromForm, qui sera chargée de traiter le formulaire et de construire le document XML.

Par la suite, il se chargera d'alimenter la base de documents avec ce nouveau document.

sdx:selectSSH

Cet élément permet de facilement associer une feuille de style XSLT pour la présentation du document XML dynamique en cours de construction. De cette façon il est possible de choisir la feuille de style dynamiquement, par exemple par un paramètre de la requête HTTP.

Il peut recevoir ces attributs :

sshParam

Le nom du paramètre dans la requête qui identifie la feuille de style à utiliser. S'il n'est pas présent, ce sera le paramètre f.

defaultSSH

La feuille de style à utiliser si aucune n'est précisée dans la requête. S'il n'est pas spécifié, ce sera xsl/normal.xsl.

La référence à la feuille de style doit être relative au répertoire de la base de documents.

sdx:index

Ce tag permet d'obtenir une liste de termes issus d'un index. Il est relativement générique, les fonctions suivantes sont permises :

Les attributs possibles sont

name

Le nom du champ dont on veut consulter l'index

nameParam

Le paramètre pour le nom du champ (défaut: f) .

value

La valeur servant de filtre

valueParam

Le paramètre contenant la valeur servant de filtre (défaut: v)

id

L'identificateur de l'index, si déjà créé

idParam

Le paramètre contenant l'identificateur de l'index (défaut: id)

page

Le numéro de la page à afficher

pageParam

Le paramètre pour le numéro de la page à afficher (defaut: p)

hitsPerPage

Le nombre de résultats à afficher par pages

hppParam

Le paramètre pour le nombre de résultats à afficher par pages (défaut: hpp)

Les paramètres de nom de champ et de valeur peuvent être répétés, dans ce cas la requête sera identifiée comme une requête pour une liste de termes filtrée, par exemple pour sortir des listes hiérarchiques.

Ce tag peut aussi contenir des sous-éléments sdx:filter qui permettent de préciser des filtres, dans le but de créer des listes hiérarchisées par exemple. Cela revient au même que de répéter les paramètres f et v. Ces filtres sont précisés de la sorte:

<sdx:filter name="departement" value="*Loire*"/>

Il y a deux façons d'utiliser ces paramètres, soit on utilise les paramètres de la requête, soit on les spécifie dans la page XSP. Le test est effectué sur l'attribut 'name', donc :

Les attributs id, idParam, page, pageParam, hitsPerPage et hppParam peuvent être utilisés indiféremment dans l'une ou l'autre situation.

Les éléments reliés aux requêtes de recherche

Plusieurs éléments de l'API XSP sont reliés à l'exécution de requêtes de recherche et à la présentation de leurs résultats. Ces éléments partagent une structure semblable que nous allons d'abord expliquer, avant de les présenter un à un.

Les paramètres communs

La structure commune à tous les éléments de requête consiste en cette liste d'attributs :

pageNo

Le numéro de la page à afficher

pParam

Le paramètre de la requête pour le numéro de la page à afficher

hitsPerPage

e nombre de résultats à afficher sur chaque page de résultats

hppParam

Le paramètre pour le nombre de résultats à afficher sur chaque page de résultats

qid

L'identifiant d'une requête déjà effectuée, pour présenter d'autres résultats

qidParam

Le paramètre qui contient l'identifiant d'une requête déjà effectuée

getDocuments

Si vrai, les documents trouvés seront inclus dans les résultats

gdParam

Le paramètre qui indique si les document doivent être inclus dans les résultats

baseQuery

L'identiifant de la requête de base, pour combiner des requêtes

bqParam

Le paramètre qui contient l'identifiant de la requête de base

baseOperator

L'opérateur qui relie la requête avec la requête de base

boParam

Le paramètre qui contient l'opérateur qui relie la requête avec la requête de base

sfParams

Le paramètre (répétable) qui contient la liste des champs de tri

soParams

Le paramètre (répétable) qui contient la liste des ordres de tri

fifParams

Le paramètre (répétable) qui contient la liste des champs de filtre

fivParams

Le paramètre (répétable) qui contient la liste des valeurs de filtre

sdx:reSortResults

Cet élément permet de retrier des résultats de recherche, en fonction de nouveaux critères. Il reçoit les attributs et paramètres communs, mais seuls ceux reliés au tri et à l'identification d'une requête de recherche sont pris en compte.

Aucun attribut ou paramètre supplémentaire n'est associé à cet élément.

sdx:executeLinearQuery

Cet élément permet de déclencher une requête de type linéaire. En plus des attributs et paramètres communs, les attributs suivants sont permis :

queryParam

Le paramètre (répétable) qui contient les termes recherchés

connParam

Le paramètre (répétable) qui contient les opérateurs reliant les critères de recherche

fieldsParam

Le paramètre (répétable) qui contient les champs de recherche

sdx:executeSimpleQuery

Cet élément permet de déclencher une requête de recherche simple. En plus des attributs communs, il accepte :

queryParam

Le paramètre qui contient la requête de recherche

sdx:executeFieldQuery

Cet élément permet de déclencher une requête de recherche dans un champ. En plus des attributs communs, il accepte :

fieldParam

Le paramètre qui contient le champ où s'effectue la recherche

valueParam

Le paramètre qui contient le terme recherché

sdx:executeExactFieldQuery

Cet élément permet de déclencher une requête de recherche dans un champ en connaissant le terme exact. En plus des attributs communs, il accepte :

fieldParam

Le paramètre qui contient le champ où s'effectue la recherche

valueParam

Le paramètre qui contient le terme recherché

sdx:executeDateIntervalQuery

Cet élément permet de déclencher une requête de recherche par intervalle de dates. En plus des attributs communs, il accepte :

fieldParam

Le paramètre qui contient le champ où s'effectue la recherche

beginParam

Le paramètre qui contient la date de début d'intervalle

endParam

Le paramètre qui contient la date de fin d'intervalle

sdx:executeRestrictedQuery

Cet élément permet de déclencher une requête de recherche restreinte. En plus des attributs communs, il accepte :

fieldParam

Le paramètre qui contient le champ où s'effectue la recherche

valueParam

Le paramètre qui contient le terme recherché