Télécharger
    Installer
    Présentation
    Configuration
    Indexation
    Recherche
    OAI
    Javadoc
    Référence API-XSP
       Pages XSP
       Paramètres SDX
       Vue d'ensemble
         +Structure <-
          Paramètres et flux
          Identification
          Droits
          Localisation
          Pipelines
          Thesaurus
          Indexation
          Recherche
          Documents
       Liste alphabétique
    Migration
    Schemas
    Performances


SDX

Structure d'une XSP et généralités

Liste des actions décrites dans cette page :

sdx:page

Description

sdx:page est l'élément primaire de l'API-XSP de SDX. Il crée un document SDX (i.e. un élément sdx:document) dans laquelle seront traités n'importe quels éléments l'API-XSP ou autre — c'est le seul éléments de l'API-XSP de SDX qui le permet.

C'est sdx:page qui déclenche toutes les actions permettant d'initialiser les variables et les paramètres par défaut (comme hpp par exemple). Corollaire : il est possible de modifier certains comportements par défaut de SDX en changeant les paramètres par défaut dans le fichier sdx.xsl de la logicsheet.

Code implémentant cette actionsdx.xsl
Contexte d'utilisationElément fils de xsp:page.
Contenu éventuelN'importe quel élément sdx:* ou autre.

Paramètres

Tableau 1. Paramètres communs

NomDescriptionElément correspondant 
show Ce paramètre permet de définir le résumé des informations de l'environnement dans lequel la page SDX est utilisée. Les valeurs autorisées : session, get, post, put, headers, application, user. Par défaut, SDX renvoie les informations concernant l'utilisateur et les paramètres HTPP (show="user get").
session

Résume les paramètres Session dans des éléments sdx:parameter type="session", fils de sdx:parameters.

get

Résume les paramètres HTTP (e.g. index.xsp?base=docs) dans des éléments sdx:parameter type="get", fils de sdx:parameters.

post

Résume les paramètres envoyé par un formulaire avec la methode "POST" dans des éléments sdx:parameter type="post", fils de sdx:parameters.

user

Résume les informations sur l'utilisateur courant dans un élément sdx:user.

headers

Résume les informations de l'environnement dans lequel la page XSP est activée telles que le type de navigateur, l'adresse de l'hôte, la langue acceptée par le navigateur, dans des éléments sdx:parameter type="header", fils de sdx:parameters.

sdx:initFacultatif
langLe paramètre de la langue est très important dans SDX (voir le chapitre SDX et le multilinguisme pour approfondir cette notion). SDX contrôle d'abord la définition d'une langue en paramètre (sdx:parameter), sinon il emploie un élément xml:lang lang="" présent dans la page.sdx:initFacultatif

Exemple

Exemple 1. Une page SDX simple

Soit la page XSP suivante :

<xsp:page
 xmlns:xsp="http://appache.org/xsp"
 xmlns:sdx="http://www.culture.gouv.fr/ns/sdx/sdx"
 xmlns="http://www.culture.gouv.fr/ns/sdx/sdx"
 langage="java"
>

 <xsp:logicsheet
  location="sdxtest/conf/logicsheets/xsp-sdxtest.xsl"
 />
 <xsp:logicsheet
  location="sdxtest/conf/logicsheets/xsp-navigation.xsl"
 />

 <sdx:page langSession="l" langParam="l">
  <message_accueil/>
 </sdx:page>

</xsp:page>

L'XML virtuel généré et prêt à être transformé :

<sdx:document
 xmlns:xsp="http://appache.org/xsp"
 xmlns:sdx="http://www.culture.gouv.fr/ns/sdx/sdx" 	
 xml:lan="fr-FR"
 server="localhost:8080/sdx"
 api-url="http://localhost:8080/sdx/sdx/api-url"
 app="fr.culture.sdx.sdxtest"
 appbypath="sdxtest"
 uri="http://localhost:8080/sdx/sdxtest/accueil.xsp"
 version="2.1"
 build="20030603"
 date="Tue Jun 30 12:46:32 CEST 2003"
>

 <message_accueil/>

 <sdx:user
  id="utilisateur01"
  firstname="Nom"
  lastname="Prénom"
  admin="false"
  email="id@mail"
  app="fr.culture.sdx.sdxtest"
  ip="127.0.0.1"
  host="localhost"
  xml:lang="fr"
 >

  <sdx:group id="lecteurs />

 </sdx:user>

 <sdx:parameters>
  <sdx:parameter 
    type="session" 
    name="lang" value="fr"
  />
  <sdx:parameter 
    type="session"
    name="sdx_qi"
    value="q10"
  />
  <sdx:parameter 
    type="session"
    name="sdx_user"
    value="fr.gouv.culture.sdx.user.UserInformation@1469c9"
  />
  <sdx:parameter 
    type="session"
    name="sdx_q7"
    value="fr.gouv.culture.sdx.search.lucene.query.Results@141038c"
  />
  <sdx:parameter 
    type="header"
    name="accept"
    value="image/gif, image/x-xbitmap, image/jpeg, ..."
  />
  <sdx:parameter 
    type="header"
    name="referer"
    value="http://localhost:8080/sdx/sdxtest/accueil.xsp"
  />
  <sdx:parameter 
    type="header"
    name="accept-language"
    value="fr"
  />
  <sdx:parameter 
    type="header"
    name="user-agent"
    value="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"...
  />
  <sdx:parameter 
    type="header"
    name="host"
    value="localhost:8080"
  />
  <sdx:parameter 
    type="header"
    name="connection"
    value="Keep-Alive"
  />
  <sdx:parameter 
    type="header"
    name="cookie"
    value="edit-false; JSESSIONID=..."
  />
 </sdx:parameters>

</sdx:document>

Autrement dit, en-dehors d'un élément vide message_accueil, on trouve tout un panel d'information sur l'environnement dans lequel la page SDX est activée (voir la description du paramètre show).

sdx:debug

sdx:debug est une action importante de l'API-XSP de SDX pour tout développeur d'application. Chargée d'offrir des informations de débogage sur toutes les actions SDX, elle se veut une aide à la construction d'application. Son utilisation est des plus simples. Il suffit d'englober les actions que l'on souhaite déboguer avec sdx:debug dans la page XSP. Le flux XML (le XML virtuel généré par une page XSP) portera un surplus d'information sur les actions mentionnées.

Code implémentant cette actionsdx.xsl
Contexte d'utilisationN'importe où dans sdx:page. sdx:debug englobe les actions que l'on souhaite déboguer.
Contenu éventuelN'importe quel élément sdx:* ou autre.

sdx:debug ne comporte aucun paramètre en particulier. Elle en traite un très grand nombre, différents pour chaque action que l'on souhaite déboguer.

Exemple 2. Activer la mise en évidence sur une ancienne requête

Dans l'exemple suivant, on cherche à obtenir des informations de débogage sur l'action sdx:executeFieldQuery mise en oeuvre.

<sdx:page>
 <sdx:debug>
  <sdx:executeFieldQuery 
     field="sdxdocid" 
     valueParam="id" 
     hpp="1" 
     docs="true" 
     hiliteParam="qid"> 
 </sdx:debug>
</sdx:page>

Noter le caractère peu orthodoxe de l'emploie de sdx:executeFieldQuery dans cette page XSP. L'action est détournée de son utilisation d'origine (dresser la liste des documents contenant une certaine valeur dans un champ) pour inclure un document XML comme le ferait sdx:includeDocument.

L'intérêt d'employer sdx:executeFieldQuery est d'offrir au lecteur la possibilité de naviguer depuis n'importe résultat de requête vers n'importe quel autre résultat (du document numéro 2 de la requête q14 vers la document numéro 24 de la même requête). sdx:includeDocument, qui inclue également des outils de navigation, ne permet effectivement que de naviguer avec un pas supérieur à 1 (depuis le document numéro 2 de la requête q14, on ne peut se rendre qu'aux documents numéros 1 et 3 de cette même requête).



Auteur : Malo Pichot ( AJLSM ) - 2003-06-10