Text only | Skip links
Skip links||IT Services, University of Oxford

On va s’amuser un peu avec les langages XPath et XSLT.

Tout d’abord, XPath. Vous pouvez pour cela utiliser le document TEI que vous avez produit pendant le TP 3 ; s’il n’est pas très riche et/ou que vous n’êtes pas content(e) du tout de ce fichier, on vous propose d’utiliser le fichier ActeRoyal.xml qui est dans le dossier TP4. Ce document est une proposition d’encodage pour le bon du roi de 1763 sur lequel une des équipes a travaillé.

Pour voir un peu ce que l’utilisation de XPath tout seul peut apporter à un processus d’exploration, d’appropriation ou de vérification de document TEI, oXygen est très pratique. La ligne de saisie "XPath" que l’on voit en haut de la fenêtre, au-dessus des barres d’outils oXygen, permet de saisir des expressions XPath. Une fois fait "Entrée" au clavier, oXygen évalue l’expression et retourne le(s) résultat(s) - un ou plusieurs ensembles de nœuds, en donnant pour chaque nœud résultat l’expression XPath qui permet de l’atteindre. Si on clique avec la souris sur une des lignes de résultat, oXygen montre dans la fenêtre de saisie le nœud résultat, dans son contexte TEI.

Voici une petite liste de requêtes que vous pouvez exprimer au moyen du langage XPath. Elles sont finalement assez génériques pour que vous puissiez les exécuter sur un autre document, et elles permettent de comprendre la syntaxe d’expressions simples :
  • quel est l’élément racine du fichier XML ?
  • quel est le titre donné à ce fichier ?
  • qui sont les responsables de la création du fichier ?
  • quelle est la cote du manuscrit ?
  • combien de mains pour ce document ?
  • est-ce qu’on a indexé des noms de personnes dans la transcription ?
  • y a-t-il des noms de personne sans lien vers une notice d’autorité ?
  • le texte des segments supprimés
  • (question plus spécifique au document, et qui montre aussi bien ce que c’est qu’un nœud texte) : on veut le texte des ordres du roi

Des réponses sont proposées dans le fichier Questions-XPath.txt.

XSLT maintenant.

Pour commencer on va voir comment associer un document XML avec un programme XSLT. Dans le dossier TP4, il y a un programme XSLT, appelé TEIActeRoyal2HTML.xsl. Ce programme a été écrit pour, devinez quoi, produire une page Web à partir du document TEI dont on vient déjà de se servir. Pour l’associer concrètement avec ce document, on va devoir ajouter, dans le prologue du fichier TEI, une instruction de traitement :

On peut taper directement cette instruction. On peut aussi demander oXygen de s’en occuper  ; il suffit d’utiliser, dans le menu, la commande Document > Document XML > Associer une feuille de style XSL/CSS, et d’indiquer dans la boîte de dialogue l’emplacement de la XSLT, puis faire OK.

Une fois ceci fait, on peut enregistrer le fichier XML. Pour transformer le document TEI en HTML grâce à la XSLT, on va pouvoir suivre deux scénarios :
  • On va se servir d’un simple navigateur, et ouvrir le fichier TEI dans le navigateur directement. C’est simplissime, très pratique quand on n’a pas d’autre processeur XSLT sous la main, mais pas forcément recommandé dans la vie réelle, pour plusieurs raisons.
  • On va utiliser oXygen pour générer la page Web. Pour cela, suivre la recette ci-après :
    • revenir dans oXygen, réouvrir le document TEI ;
    • utiliser la fonction Document > Transformation > Configurer un scénario de transformation ;
    • choisir "Xml-stylesheet processing instruction", cliquer sur le bouton "éditer" ;
    • onglet XSLT : cocher "utiliser la déclaration xml-stylesheet" puis, pour le processeur, Saxon 6.5.5 ;
    • onglet Sortie : choisir Demander un fichier, ou Enregistrer sous et donner un nom de fichier ;
    • Cocher Accepter, puis Transformer maintenant

Est-ce que le résultat vous plaît ?

Quelques détails sur ce résultat. Le code HTML, c’est la XSLT qui l’a généré (en plus de XSLT, il faut donc connaître au moins un peu TEI et HTML pour écrire un programme XSLT). La mise en forme est réalisée grâce à une feuille de style CSS très sommaire qui est dans le dossier TP4 et qui s’appelle tei.css. CSS (Cascading Style Sheets) est une norme du W3C (encore une), qui définit un langage pour contrôler la présentation des pages Web. Les instructions de mise en forme CSS peuvent être embarquées dans le fichier HTML, ou être réunies dans un fichier *.css. Aujourd’hui une bonne pratique de développement Web consiste à externaliser les instructions de mise en forme : c’est plus facile à maintenir, à modifier, c’est réutilisable, le Web design peut être confié à un... Web designer tandis que quelqu’un d’autre va s’occuper du code HTML, la séparation de la structure et de la mise en forme est claire.

Un petit coup d’œil sur le programme XSLT montre de quoi il est fait.

Quelques petites suggestions de modification pour mieux comprendre comment ça marche :
  • il manque l’information sur la langue du texte dans la page Web (dans le fichier TEI source, il y a un élément <textLang>)
  • par contre on ne veut pas que l’adresse du responsable de la publication (l’ENC) soit incluse dans la page Web
  • on voudrait afficher, avant chacune des réponses du roi, une étiquette "Réponse : "
  • on voudrait que les retours à la ligne, marqués par des éléments <lb>, soient aussi indiqués dans la page Web
  • etc... On est prêts à répondre à vos questions !


Florence Clavaud (École nationale des chartes). Date: juin et septembre 2010
Copyright University of Oxford