XPath est le langage utilisé pour localiser, à l'intérieur de l'arbre ordonné que constitue un document XML, une ou plusieurs portions de ce document.
Une expression XPath est un chemin de localisation, semblable au chemin utilisé dans un système de fichiers, et représente une hiérarchie de noeuds XML. Ce chemin de localisation est constitué de pas de localisation, séparés par une barre oblique. Les expressions XPath utilisent la syntaxe suivante :
axe::test-noeuds[prédicat], où
Par défaut, lorsqu'aucun axe n'est précisé, c'est l'axe des enfants (child::) qui est implicitement sélectionné.
XPath utilise un certain nombre d'abréviations :
/ | Noeud document |
/* | Elément racine |
.. | Remonte au noeud parent |
. | Noeud courant |
* | Tout noeud élément |
@ | Noeud attribut |
@* | Tout noeud attribut |
//elem | Tous les noeuds éléments appelés elem dans le document |
XPath offre également un certain nombre de fonctions destinées à être utilisées dans les prédicats, pour effectuer des filtres précis. Les fonctions s'appliquant aux chaînes de caractères les plus susceptibles d'être utilisées dans le cadre d'un instrument de recherche en EAD sont :
Pour une description plus complète de XPath, se référer à :
Utilisation dans le cadre de l'EAD
Les éditeurs XML actuels comportent tous une fonctionnalité XPath qui permet de faire des requêtes simples et rapides au sein d'un fichier XML. Appliqué à un document EAD, XPath permet par exemple de repérer aisément toutes les mentions d'ancien possesseur, toutes les descriptions de reliures, tous les documents d'une certaine date ou période ou bien encore tous les accès contrôlés de type auteur-titre. Grâce à la notion de noeud courant, XPath permet également de restreindre aisément la recherche à une partie de l'instrument de recherche.
Exemples :
La fonctionnalité XPath varie selon les éditeurs, mais elle permet généralement de naviguer dans la liste des résultats, de repérer l'information souhaitée, et en cliquant dessus de se retrouver positionné immédiatement à l'endroit correspondant au sein du fichier XML. Ceci est particulièrement utile pour procéder à des vérifications ou corrections de données répétitives (recotation, modification d'un élément en fonction de son contenu, etc.).
Exemple d'utilisation dans l'éditeur <oXygen/>.
XSLT est un langage XML utilisé dans la transformation de documents XML. En particulier, XSLT sert à transformer les données d'un fichier XML en un autre fichier XML conforme à une DTD ou un schéma différents de celui de l'original, ou bien en un fichier non-XML (par exemple, HTML ou plein texte).
Pour la sélection des données XML, XSLT utilise les chemins XPath.
XSLT possède son propre vocabulaire d'éléments, qui correspondent pour la plupart à un ensemble de fonctions de manipulation.
Appliqué à un document EAD, XSLT permet par exemple, à partir d'un instrument de recherche décrivant l'ensemble des collections d'un établissement, de créer un fichier à utiliser pour un récolement, grâce à une transformation qui ne conservera que les informations importantes dans ce cadre-là :
Le document cible peut être un fichier HTML, un document csv, etc.
Par ailleurs, il est également possible d'appliquer en une seune opération une transformation ou extraction à un ensemble de fichiers, par exemple à plusieurs inventaires de fonds similaires, ou à plusieurs fichiers provenant de la rétroconversion du Catalogue général des manuscrits des bibliothèques publiques de France.
Pour une description plus complète de XSLT, se référer à :
XSL-FO est un langage XML qui permet de formater l'affichage et/ou l'impression d'un document XML. Il remplit un rôle similaire aux feuilles de style CSS, en y apportant des éléments supplémentaires de structuration.
Un fichier EAD peut être rendu en XSL-FO grâce à une transformation XSLT, en vue d'une publication au format PDF ou imprimé. Toutefois, des solutions plus légères et plus simples à mettre en oeuvre (transformation en XHTML et ajout de CSS et de scripts) sont bien souvent préférées.
XQUERY est un langage de requêtage qui permet d'extraire des données au sein d'un document XML ou d'un ensemble de documents XML, mais également d'effectuer des calculs sur ces données.
Les données EAD comportant peu d'éléments susceptibles d'être calculés, ce langage trouve surtout une utilité dans les très grands établissements détenteurs de plusieurs centaines ou milliers d'instruments de recherche en XML. Dans le travail courant, le catalogueur n'a guère besoin d'aller au-delà d'une connaissance de XPath.
Liens
[1] http://moodle.abes.fr/mod/resource/view.php?id=930
[2] https://www.w3schools.com/xml/xpath_intro.asp
[3] http://www.bonnespratiques-ead.net/sites/default/files/XPath-unitdate.jpg
[4] http://www.bonnespratiques-ead.net/sites/default/files/Xpath_0.jpg
[5] http://moodle.abes.fr/mod/resource/view.php?id=932
[6] https://www.w3schools.com/xml/xsl_intro.asp