Documentation SDX v 1.1
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 :
le format de fichier (XML ou HTML)
la localisation du fichier
l'utilisateur
le fait de remplacer un document existant ou non
le fait d'indexer le document ou non
le statut du document
les documents attachés
Ces éléments d'informations sont fournis de la façon suivante :
format
attribut format pour indiquer le format
attribut formatParam pour indiquer le paramètre de la requête qui identifie le format
fichier XML
attribut filename (chemin absolu, peu utile)
attribut fileParam indiquant le paramètre de la requête qui contient le fichier
attribut formParam indiquant le nom du paramètre de la requête HTTP qui contient le document XML complet et correctement encodé
utilisateur propriétaire : fourni par l'environnement SDX standard
remplacement :
attribut replace, toute valeur différente de 0 ou false ou faux ou no ou non indique le booléen vrai, sinon faux
attribut replaceParam indiquant le paramètre de la requête qui donne cette indication, selon les mêmes règles
indexation :
attribut index, toute valeur différente de 0 ou false ou faux ou no ou non indique le booléen vrai, sinon faux
attribut indexParam indiquant le paramètre de la requête qui donne cette indication, selon les mêmes règles
statut :
attribut status, on prend sa valeur telle quelle
attribut statusParam, on prend la valeur du paramètre ayant le nom indiqué par cet attribut
documents attachés :
attribut attParam indiquant le paramètre (répétable) de la requête qui contient les différents fichiers attachés. Dans ce cas, les noms de fichiers envoyés doivent correspondre à l'identifiant de fichiers attachés retournés par l'indexation du document XML.
sous-éléments sdx:attachedDocument, dont l'attribut id identifie l'identifiant du document attaché, l'attribut fileParam indique le paramètre de la requête qui contient le document attaché
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 :
Le fichier ZIP ou le dossier où trouver les documents
Le statut des documents
Le propriétaire des documents
Ces éléments d'informations sont fournis de la façon suivante :
localisation des fichiers
attribut dir indiquant le dossier où se trouvent les documents
attribut dirParam indiquant le paramètre de la requête qui détermine le dossier où se trouvent les documents
attribut zip indiquant le fichier ZIP où se trouvent les documents
attribut zipParam indiquant le paramètre de la requête qui détermine le fichier ZIP où se trouvent les documents
attribut zipUploadParam indiquant le paramètre de la requête qui contient le fichier ZIP où se trouvent les documents
statut des documents
attribut status indiquant le statut à donner aux documents
attribut statusParam indiquant le paramètre de la requête qui détermine le statut à donner aux documents
utilisateur propriétaire : fourni par l'environnement SDX standard
propriétaire des documents
attribut owner indiquant le propriétaire des documents
attribut ownerParam indiquant le paramètre de la requête qui détermine le propriétaire des documents
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 :
Préciser le nom du champ dont on veut obtenir les valeurs (obligatoire)
Préciser une valeur avec masque pour limiter les termes
Préciser le premier et le dernier terme à afficher dans la liste
Préciser des champs et valeurs dans le but de construire des sous-listes
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 :
Si l'attribut name est spécifié, alors on utilise l'attribut value s'il existe, et les sous-éléments sdx:filter s'il y en a
Si l'attribut name n'est pas spécifié, alors on utilise les attributs nameParam et valueParam ou leurs valeurs par défaut
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é |
Document précédent : Présentation de l'API XSP |
Table des matières | Document suivant : Présentation de l'API URL |