INF600A: Laboratoire #6 Analyse (simplifiée) de fichiers XML

Documents pareils
Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Programmation Web. Madalina Croitoru IUT Montpellier

SII Stage d informatique pour l ingénieur

Gestion Électronique de Documents et XML. Master 2 TSM

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Programmation Internet Cours 4

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

TP JAVASCRIPT OMI4 TP5 SRC

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Formation : WEbMaster

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

PROSOP : un système de gestion de bases de données prosopographiques

Les services usuels de l Internet

Sana Sellami. Licence Professionnelle SIL

BES WEBDEVELOPER ACTIVITÉ RÔLE

Petite définition : Présentation :

Automatisation de l administration système

STID 2ème année : TP Web/PHP

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

XML et travail collaboratif : vers un Web sémantique

Malgré son aspect spartiate, Freeplane offre de nombreuses fonctionnalités en particulier dans le domaine de la diffusion des cartes sur le Web.

XML : documents et outils

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Voici les objectifs de la séance d'aujourd'hui :

Optimiser moteur recherche

PIVOT. Pivot/Querier Documentation technique XML/XSD/XSLT

< Atelier 1 /> Démarrer une application web

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

Bibliothèque numérique de l enssib

HTML. Notions générales

Mysql avec EasyPhp. 1 er mars 2006

Éléments de programmation et introduction à Java

Pack Fifty+ Normes Techniques 2013

CREATION WEB DYNAMIQUE

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Formulaire pour envoyer un mail

Module http MMS AllMySMS.com Manuel d intégration

UE 8 Systèmes d information de gestion Le programme

! Text Encoding Initiative

SYSTÈMES D INFORMATIONS

Module BD et sites WEB

Installation de DocBook sur un système Linux

«Expertise de ressources «pour l édition de revues numériques

PARAMETRAGE CONSOLE ADMINISTRATION DE MESSAGERIE "VENDOME.EU" NOTICE UTILISATION

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

Environnements de développement (intégrés)

Configuration Interface for MEssage ROuting

Introduction à MATLAB R

1 Description générale de VISFIELD

les techniques d'extraction, les formulaires et intégration dans un site WEB

Couches 4 à 7 : Traitement des données

Théorie : internet, comment ça marche?

OPC Factory Server- Réglage des paramètres de communication

Formation Excel, Niveau initiation, module 1 DUREE DE LA FORMATION OBJECTIFS DE LA FORMATION

Manuel d intégration API FTP SMS ALLMYSMS.COM

Serveur d Applications Web : WebObjects

Gestion d identités PSL Exploitation IdP Authentic

Annonceurs et professionnels qui l'ont expérimentée le savent, la mixité des canaux est aujourd'hui une stratégie gagnante en marketing direct.

Application Web et J2EE

OASIS Date de publication

Document Object Model (DOM)

THÈSE de DOCTORAT. Sémantique, interactions et langages de description des services web complexes

Bernard Lecomte. Débuter avec HTML

Formation HTML / CSS. ar dionoea

LE CONCEPT DU CMS CHAPITRE 1

PloneLabs un gestionnaire de contenu pour les laboratoires

Présentation du Framework BootstrapTwitter

A5.2.4 Étude d une technologie, d'un composant, d'un outil

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Environnements et Outils de Développement Cours 1 Introduction

Guide de réalisation d une campagne marketing

Générer du code à partir d une description de haut niveau

Le Web de Données Dan VODISLAV Université de Cergy-Pontoise Master Informatique M2 Plan

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Hébergement de site web Damien Nouvel

La programmation orientée objet et le langage C++

Quelques formats de fichiers courants

Master Technologies numériques appliquées à l'histoire Deuxième année

LES TECHNOLOGIES DU WEB APPLIQUÉES AUX DONNÉES STRUCTURÉES

Optimiser pour les appareils mobiles

Séance d ED n 5 : HTML et JavaScript

Document réalisé par EDIFRANCE dans le cadre du programme Boost Industries et Services (coordination des projets TIC et PME 2010)

Luc Brun. Création de pages Web Dynamiques p.1/75

Maîtriser la diffusion de son catalogue e-commerce

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Bases de Données et Internet

Concevoir la déclinaison d un site Internet pour Smartphone et tablette tactile.

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

PHP 5.4 Développez un site web dynamique et interactif

Vérifier la qualité de vos applications logicielle de manière continue

Transcription:

INF600A: Laboratoire #6 Analyse (simplifiée) de fichiers XML Jeudi 16 mars 2017 13h30 15h30 PK-S1535 Un premier objectif de ce laboratoire est de vous familiariser avec l utilisation des expressions régulières et des méthodes de pattern-mathching en Ruby. Un autre objectif est de vous familiariser avec la mise en oeuvre d un itérateur each sur une collection de façon à pouvoir ensuite utiliser les diverses méthodes du module Enumerable sur cette collection. Pour obtenir le code à compléter : $ git clone http://www.labunix.uqam.ca/~tremblay/git/xml.git 1 Un bref aperçu de XML XML est défini comme suit dans Wikipedia : 1 L Extensible Markup Language (XML, «langage de balisage extensible» en français) est un métalangage informatique de balisage générique qui dérive du SGML. Cette syntaxe est dite «extensible» car elle permet de définir différents espaces de noms, c est-à-dire des langages avec chacun leur vocabulaire et leur grammaire, comme XHTML, XSLT, RSS, SVG... Elle est reconnaissable par son usage des chevrons (<, >) encadrant les balises. L objectif initial est de faciliter l échange automatisé de contenus complexes (arbres, texte riche... ) entre systèmes d informations hétérogènes (interopérabilité). 1 http://fr.wikipedia.org/wiki/extensible_markup_language 1

Nous allons illustrer XML et les notions de balises et d attributs à l aide de deux exemples, présentés à la page suivante. a. Figure 1 : La description d un document. Chaque élément d information est identifié par une balise ouvrante <NomBalise> et une balise fermante </NomBalise>. Les éléments compris entre la balise ouvrante et fermante peuvent être soit du texte simple (e.g., The Pragmatic Programmer, Andy, Hunt, Dave, etc.), soit d autres balises (e.g., une balise AUTEUR contient une balise PRENOM et une balise NOM) ce qui permet donc de générer des structures hiérarchiques récursives. b. Figure 2 : La page d accueil du site Web du cours INF600A, une page HTML, le HTML pouvant être défini par une application XML. La présence de certains espaces blancs n est pas significative, plus précisément, ceux qui suivent le nom de la balise. Par contre, aucun espace blanc n est supposé apparaitre entre le chevron ouvrant «<» et le nom de la balise. Une balise peut contenir des attributs, qui sont indiqués directement dans la balise elle-même, avant le chevron fermant «>», par exemple : <FRAMESET ROWS="10%,*"> Balise ouvrante FRAMESET ; Attribut ROWS, avec valeur "10%,*" ; <FRAME NAME="Banniere" src="haut.html"> : Balise ouvrante FRAME ; Attribut NAME, avec valeur "Banniere" ; Attribut src, avec valeur "haut.html" ; Certaines balises sont «auto-fermantes». Par exemple, <br/> est une abréviation pour deux balises: une balise ouvrante et une balise fermante englobant un texte vide. Cette balise auto-fermante est donc équivalente à la suivante : <br></br>

<DOCUMENT> <TITRE>The Pragmatic Programmer</TITRE> <AUTEURS> <AUTEUR> <PRENOM>Andy</PRENOM> <NOM>Hunt</NOM> </AUTEUR> <AUTEUR> <PRENOM>Dave</PRENOM> <NOM>Thomas</NOM> </AUTEUR> </AUTEURS> <EDITEUR>Addison-Wesley</EDITEUR> <ANNEE>2000</ANNEE> </DOCUMENT> Figure 1: Une description XML d un document (avec titre, auteurs, etc.) pour le livre «The Pragmatic Programmer» de Hunt & Thomas. <HTML> <HEAD> <TITLE>INF600A Langages de script et langages dynamiques</title> </HEAD> <FRAMESET ROWS="10%,*"> <FRAME NAME="Banniere" src="haut.html"> <FRAMESET COLS="20%,*"> <FRAME NAME="Menu" src="menu.html" TARGET="Principal"> <FRAME NAME="Principal" src="accueil.html"> </FRAMESET> </FRAMESET> </HTML> Figure 2: La page d accueil (HTML) pour le site Web du cours INF600A.

2 Ce que vous devez faire Vous devez développer, en complétant divers éléments qui vous sont fournis, une mise en oeuvre pour un analyseur de fichiers XML. Le rôle de cet analyseur est d identifier les diverses balises qui apparaissent dans un fichier XML ainsi que leurs attributs. Pour chaque balise rencontrée, il faut donc identifier les attributs qui apparaissent dans l utilisation de cette balise. a. La classe BaliseXML, définie dans le fichier balise-xml.rb, permet de créer un objet pour une balise avec ses attributs (voir plus bas pour les trois façons de créer une balise). Vous devez compléter la mise en oeuvre de la classe BaliseXML pour qu elle traite correctement l analyse des attributs. Pour ce faire, vous devez aussi définir le motif approprié (ATTRIBUT) dans le fichier motifs.rb. Les tests appropriés sont dans le fichier balise-xml_test.rb. La cible du makefile = test_balise Indice : La méthode MatchData#post_match permet de récupérer la partie qui suit une balise identifiée correctement, partie qu on peut ensuite analyser ( boucle while). b. La classe FichierXML (fichier fichier-xml.rb) permet de créer un flux de balises à partir d une source, qui peut être une série de lignes ou un nom de fichier. Vous devez compléter la mise oeuvre de la classe FichierXML, qui définit une méthode each permettant de générer les différentes balises. Les tests appropriés sont dans le fichier fichier-xml_test.rb. La cible du makefile = test_fichier Indice : Même remarque que précédemment. Et utilisez la méthode BaliseXML.parse. c. Vous ensuite utiliser diverses méthodes du module Enumerable pour obtenir diverses informations sur une série de lignes contenant des balises. Pour ce faire, vous devez compléter trois cas de tests, test qui sont définis dans le fichier enumerables_test.rb. La cible du makefile = test_enumerables Indice : Voir les méthodes suivantes du module Enumerable : uniq, flat_map, group_by, de même que la méthode Array#to_h.

3 Les fichiers fournis balise-xml.rb : Fichier qui définit une classe BaliseXML. Un objet de cette classe peut être construit de différentes façons : En utilisant new et en spécifiant l ensemble des propriétés de l objet. En utilisant new et en spécifiant les propriétés de l objet à l exception des attributs, lesquels peuvent ensuite être spécifiés avec la méthode []=(attribut, valeur). En utilisant la méthode (de classe) self.parse, qui crée une balise en effectuant l analyse d une chaine qui doit contenir une balise valide. Un objet BaliseXML possède aussi diverses méthodes (d instance) pour obtenir les informations caractérisant la balise. motifs.rb : compléter. Divers motifs pour décrire une balise, dont ATTRIBUT que vous devez balise-xml_test.rb : Des tests unitaires MiniTest pour les méthodes de la classe BaliseXML. fichier-xml.rb : Une classe FichierXML dont le constructeur est la méthode balises. Cette méthode est appelée en fournissant une source de lignes soit une chaine indiquant le nom d un fichier texte contenant du XML, soit un tableau de chaines de caractères. Une fois un objet de cette classe créé, on utilise alors la méthode each pour énumérer les diverses balises rencontrées. Le fichier fichier-xml.rb peut aussi être utilisé comme un script, auquel cas ce sont les lignes provenant de STDIN qui sont traitées, comme l illustre l exemple suivant : $ echo <A a1= "v1" a2 = "v2"> </A> <X x="x"/>./ fichier - xml.rb <A a1="v1" a2="v2"> </A> <X x="x"/> fichier-xml_test.rb : Des tests unitaires MiniTest pour les méthodes de la classe FichierXML. enumerables_tests.rb : Trois cas de tests utilisant des méthodes du module Enumerable pour obtenir diverses informations sur un flux de balises. makefile : Un fichier pour automatiser l exécution des tests unitaires. Voir plus haut pour les principales cibles.