XQuery/HelloWorld

Un livre de Wikilivres.

Script XML[modifier | modifier le wikicode]

xquery version "3.0";
let $message := 'Hello World!'
return
<results>
   <message>{$message}</message>
</results>

Pour exécuter ce script sur le serveur installé en introduction, le coller :

Sinon il est possible de le lancer sur un serveur distant : http://www.cems.uwe.ac.uk/xmlwiki/helloWorld.xq.

Résultat attendu[modifier | modifier le wikicode]

<results>
   <message>Hello World!</message>
</results>

Discussion[modifier | modifier le wikicode]

Le programme crée une variable temporaire appelée $message, et lui assigne la valeur chaine de caractère Hello World!. Le résultat représente la valeur de cette variable dans un XML de résultat.

Remarques[modifier | modifier le wikicode]

Texte brut[modifier | modifier le wikicode]

XQuery peut renvoyer du texte brut grâce aux options de sérialisation qui définissent le type MIME.

Par exemple pour afficher un message dans un fichier texte .xq, spécifier la méthode de sérialisation "text" et le type "text/plain" :

xquery version "3.0";
declare option exist:serialize "method=text media-type=text/plain";
let $message := 'Hello World!'
return
$message

Résultat : http://www.cems.uwe.ac.uk/xmlwiki/Basics/helloWorld_3.xq.

Résultat attendu[modifier | modifier le wikicode]

Selon le navigateur, cela va proposer de télécharger le fichier, ou l'afficher directement :

Hello World!

Méthodes d'exécution[modifier | modifier le wikicode]

  • Dans l'IDE oXygen cela peut être réalisé en sélectionnant l'icône "transform" de la barre d'outils.
  • Dans eXist, le fait de copier un fichier via l'OS dans C:\eXist-db\webapp\WEB-INF\data\fs\db ne l'ajoutera pas au serveur. Il faut cliquer depuis le tableau de bord du logiciel dans "Collection", puis sur l'icône "Upload resources". Par exemple avec le fichier téléchargé précédemment, une fois importée on peut y accéder via : http://localhost:8080/exist/rest/db/helloWorld_3.xq.
    Cette URL est composée de trois éléments importants :
    1. Il s'agit du chemin par défaut de la configuration eXist.
    2. Le mot "rest" figurant avant "/db" dénote l'utilisation de l'interface REST (par opposition à WebDAV, Atom ou SOAP). Pour les modifier il faudrait utiliser l'URL rewriting du serveur web.
    3. Par contre, le port "8080" suivi du contexte "exist" peuvent être changés en éditant le fichier $EXIST_HOME/tools/jetty/etc/conf.xml, puis en redémarrant le serveur logiciel. Par exemple en forme courte : http://localhost/rest/db/helloWorld_3.xq.
  • Dans BaseX, il faut créer une base, l'ouvrir, puis y ajouter du contenu :
create database test
open test
add /temp/MonDocumentTest.xml

Mais sur Windows, pour éviter les conversions de chemin avec le système de fichier, mieux vaut passer par le menu Database, puis New....

Utilisation de BaseX