Traitement de documents XML Exercices Philippe Rigaux 6 décembre 2005 1 Environ
Traitement de documents XML Exercices Philippe Rigaux 6 décembre 2005 1 Environnement et documentations La plupart des exemples sur lesquels s’appuient ces exercices sont sur le site : http ://www.lamsade.dauphine.fr/rigaux/web Votre environnement est constitué d’une partie serveur et d’une partie client. La partie client est consti- tuée des outils permettant de dialoguer avec les modules du serveur. Un client est forcément un ordinateur connecté à l’Internet et disposant des outils suivants : 1. un navigateur web (FireFox recommandé) ; 2. un navigateur WAP (Deckit recommandé : fourni sur le site) ; 3. un lecteur de documents PDF (Acrobat Reader recommandé). Commencez par installer Deckit pour visualiser des documents WML (sous Linux). – récupérez le fichier deckit.tar.gz (sur le site, dans XML) ; – décompressez-le quelque part : tar xvfz deckit.tar.gz – allez dans le répertoire deckit et lancez-le avec ./deckit.bin. La partie serveur est la plus complexe : elle comprend l’ensemble des logiciels suivants, installés pour vous par l’enseignant : 1. du parseur XML Xerces qui contient les API DOM et SAX ; 2. du processeur XSLT Xalan pour appliquer des transformations aux documents XML ; 3. de la servlet XSQL d’ORACLE qui permet de publier dynamiquement des documents à partir de fichiers XML, d’une base de données ORACLE et de programmes XSLT ; 4. du serveur web Tomcat qui permet de faire de la programmation web/java. 5. d’une base de données relationnelle (MySQL). Xerces et Xalan sont des librairies Java qui permettent d’effectuer de la programmation et des transfor- mations par des commandes en ligne. Ils sont déjà installés sur le serveur, mais vous pouvez les trouver à l’adresse suivante pour les mettre sur le client : 1. http ://xml.apache.org/dist/xerces-j/ 2. http ://xml.apache.org/dist/xalan-j/ XSQL vous servira à créer votre site et est déjà installé. 1 2 PREMIÈRE SÉANCE : TEST DES OUTILS 2 Première séance : test des outils Connectez-vous au serveur avec la commande : ssh -X pcrigaux -l <login> Vous disposez d’un compte sous Tomcat, situé dans le répertoire suivant sur le serveur : /usr/local/jakarta-tomcat-5.5.4/webapps/<login> Ce compte consiste en un ensemble de fichiers constituant un mini-site web rassemblant les exemples vus en cours. Vous pouvez accéder à ce mini-site à l’URL : http ://pcrigaux.lamsade.dauphine.fr :8080/<login> La première chose à faire est de créer un lien, depuis votre répertoire HOME, vers ce compte : cd ~ ln -s /usr/local/jakarta-tomcat-5.5.4/webapps/<login> tomcat Il suffit maintenant de faire cd tomcat pour accéder à vos fichiers. Vous pouvez faire les tests suiv- ants. 2.1 Transformation statiques avec XSLT Il s’agit de transformer un document XML en document HTML avec une commande en ligne : java org.apache.xalan.xslt.Process -in Vertigo.xml -xsl Film.xsl -out Vertigo.html La commande devrait produire un fichier Vertigo.html. En principe vous devriez obtenir le même résul- tat en passant par Mozilla qui effectue des transformations XSLT. Il faut alors inclure l’instruction suivante pour indiquer quel est le programme XSLT à appliquer : <?xml-stylesheet type="text/xsl" href="Film.xsl"?> Regardez les différents fichiers et essayez de comprendre comment ça marche. 2.2 Transformation dynamiques avec XSQL On peut effectuer des transformations XSLT dynamiques avec la servlet XSQL. Tout fichier dont l’ex- tension est .xsql est traité par cette servlet. Vous disposez de l’ensemble des exemples vus en cours : faites-les tourner, et regardez les fichiers pour étudier le mécanisme de publication. Attention : tout ce qui comprend la chaîne WML produit un document WML qui doit être lu par le simulateur Deckit. 2.3 Transformations depuis la base de données Maintenant on va ajouter des transformations depuis des données stockées dans une base relationnelle. Vous devriez disposer d’une base MySQL. Suivez les instructions du site pour créer des tables avec un échantillon de base de données. Les fichiers Films.xsql et FilmsXSLT.xsql montrent repectivement comment intégrer une requête SQL dans un document XSQL, et comment enchaîner l’exécution d’une requête et une transformation XSLT. Quand tout fonctionne, vous êtes prêts à commencer les exercices détaillés. 2 3 CRÉATION DE DOCUMENTS À BALISES 3 Création de documents à balises Ces premiers exercices doivent permettre de se familiariser avec la création de documents « à balise », d’abord HTML, puis XML. Dans un deuxième temps ces documents sont manipulés sous leur forme ar- borescente avec l’API DOM. Une pratique minimale du langage java est nécessaire. Les premiers exercices servent essentiellement à prendre en main l’environnement. Si vous ne connais- sez rien au Web et à ses langages, un chapitre explicatif est fourni sur le site. Exercice 3.1 Si vous ne connaissez pas HTML, voici quelques manipulations qui vous permettront de vous familiariser avec l’essentiel des balises. 1. Allez sur le site www.lamsade.dauphine.fr/rigaux/mysqlphp et récupérez les quelques exemples qui sont donnés. 2. Installez-les dans votre répertoire et testez-les. 3. Éditez ces fichiers et faites diverses modifications. Exercice 3.2 Créez votre page personnelle en HTML (pas trop longue), présentant des informations comme : 1. votre état civil (nom, prénom, date de naissance, etc) ; 2. une description de votre formation (diplômes, études) ; 3. vos hobbies ; 4. en vrac : vos sites, vos livres, vos disques, vos films préférés, avec les liens vers les URL. Présentez cette page comme vous le souhaitez, en vous inspirant au besoin des exemples que vous pou- vez trouver absolument partout sur le Web. Faites en sorte que dans cette page on trouve les principaux éléments de présentation de HTML, à savoir – un ou plusieurs tableaux ; – des ancres vers d’autres sites ; – des listes ; – éventuellement une image ; – etc. Exercice 3.3 Reprenez le contenu du document précédent, et créez cette fois un document InfosPerso.xsql avec XML. Veillez à ce que chaque constituant du contenu soit balisé de manière à ce qu’il soit possible de le traiter spécifiquement par la suite (par exemple marquez les URL avec un balisage spécifique). Inspirez- vous des exemples fournis si nécessaire. Faites en sorte que dans le document XML on trouve (au moins) les types de nœuds suivants : 1. des éléments et du texte ; 2. des sections littérales ; 3. des commentaires. Exercice 3.4 Appliquez à votre document XML le programme XSLT generic.xsl que vous pourrez trouver avec les exemples. Ce programme affiche en HTML l’arborescence de n’importe quel document XML. Il suffit de placer une instruction de traitement dans le prologue du document : <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet href="generic.xsl" type="text/xsl"?> <!-- Suite du document --> L’application de ce programme XSLT est également l’occasion de vérifier que votre document est bien formé. 3 5 XPATH 4 Transformation depuis une base de données Vous devez disposer d’une base, dans laquelle vous créez des tables et insérez des données. Ensuite, par des requêtes SQL placées dans des documents XSQL, vous pouvez extraire des données de la base et les placer dans des documents XML. Voici quelques étapes permettant de contrôler l’environnement XSQL. Exercice 4.1 Structurez votre CV (ou tout autres base de votre choix) sous la forme d’une base de données relationnelle. Créez les tables et insérez les données. Créez ensuite le document XSQL qui recherche ces données, les place dans un document XML. Affichez ce document. Exercice 4.2 Appliquez une transformation XSLT au document extrait de la base. Prendre d’abord generic.xsl, puis essayez de faire votre premier petit programme XSLT. Exercice 4.3 Maintenant structurez le site en plusieurs documents, et placez des liens pour naviguer de l’un à l’autre. Chaque document correspond à une requête dans la base, à laquelle on applique une trans- formation XSLT. 5 XPath Vous pouvez exécuter des intructions XPath avec le programme ApplyXPath fourni avec Xalan. Récupérez le fichier ApplyXPath.java (sur le site) et compilez-le avec la commande : javac ApplyXPath.java On obtient un fichier ApplyXPath.class qui peut être exécuté par une machine java avec la commande1 : java ApplyXpath fichierXML "expressionXPath" Pour faciliter la tâche du programmeil est préférable d’encadrer expressionXPath par des guillemets doubles (") et les chaînes de caractères par des guillemets simples, ou l’inverse. Exercice 5.1 Expliquez la différence entre les deux expressions suivantes, et donnez un document pour laquelle on n’obtient pas le même résultat : – //B[position() = 1] – /descendant : :B[position() = 1] Dans le premier cas, la notation étendue est /descendant-or-self : :node()/B[1]. On a donc le premier fils de type B d’un des éléments du document. Dans le second cas on obtient le premier élément de type B rencontré dans le document. Exemple d’une instance : /A[C[B][B]D[B]]. Exercice 5.2 Expliquez la signification des expressions suivantes : – //COURS[INTITULE=’XML’] – //COURS[INTITULE=XML] Donnez une instance pour laquelle le résultat est identique. La première donne les éléments de type COURS ayant un élément fils INTITULE dont la valeur textuelle est XML. La seconde donne les éléments de type COURS ayant un élément fils INTITULE et un élément de type XML dont les valeurs textuelles sont identiques. On en déduit facilement une instance pour laquelle l’évaluation donne le même résultat. Exercice 5.3 Récupérez sur le site le document Films.xml qui contient un ensemble d’informations sur des films. Appliquez à ce document des expressions XPath pour rechercher les informations suivantes. 1. La liste des uploads/s1/ exos.pdf
Documents similaires










-
37
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Sep 21, 2022
- Catégorie Administration
- Langue French
- Taille du fichier 0.0652MB