Modules XQuery

  • Nombreux modules disponibles

  • Vérifier s'ils sont activés dans conf.xml avant de les utiliser

  • Modules XQuery purs ou wrappers autour d'une librairie Java

  • Tous les modules / fonctions sont décrits dans la documentation en ligne

    Attention aux fonctions marquées Deprecated dans la documentation car elles peuvent disparaitre dans le futur

  • Pour les modules wrappers Java le code source se situe souvent dans

    {EXIST-HOME}/extensions/modules/src/org/exist/xquery/modules

http://exist-db.org/xquery/request

  • Donne accès à la requête HTTP

    • URL
    • headers
    • corps de la requête
  • request:get-parameter

    Récupérer les paramètres soumis par un GET ou un POST

  • request:get-data

    Récupérer le contenu d'un POST

    Récupère directement un document-node() si le Content-type est XML

  • request:get-attribute et request:set-attribute

    Partager des clefs / valeurs entre plusieurs scripts XQuery via l'objet request

  • request:get-uploaded-file-name et request:get-uploaded-file-data

    Récupérer (format base64) les fichiers soumis avec un formulaire (par ex. des documents ou des images renseignés à l'aide d'un élément input de type file)

http://exist-db.org/xquery/response

  • Donne accès à la réponse HTTP

    Pratique pour la modifier

  • Le résultat du script XQuery (ou du dernier script dans le pipeline) est retourné dans le corps de la réponse, le module response permet d'autres modifications

  • response:redirect-to

    Envoyer un code de statut 302 au client et un Location header pour qu'il charge une nouvelle page

  • response:set-status-code

  • response:set-header

  • response:stream-binary

    Renvoyer un fichier binaire (si des images ou des documents sont stockés dans la BD)

    Doit être en dernier dans le script qui l'exécute

À suivre....

  • Ce module se poursuit avec les transparents suivants :

  • http://exist-db.org/xquery/util

  • Exemple

  • http://exist-db.org/xquery/xmldb

  • http://exist-db.org/xquery/image

  • http://exist-db.org/xquery/mail

  • Plus de modules