Programmation des Applications Réparties. Parsers XML DOM et SAX



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

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

Master d Informatique Corrigé du partiel novembre 2010

XML et Bases de données. Les bases de données XML natives.

XML et Java Vue Balisée en XML. Programmation avancée NFP 121. XML pourquoi faire? Structuration des données. Titre Auteur Section Paragraphe

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

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

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

Le stockage local de données en HTML5

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

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Formation : WEbMaster

SOLUTION D ENVOI DE SMS POUR PROFESSIONNELS

Programmation Web. Madalina Croitoru IUT Montpellier

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Documentation pour l envoi de SMS

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

SQL Parser XML Xquery : Approche de détection des injections SQL

Maarch V1.4

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Importer du contenu avec Drupal Rodolfo Ripado

FileMaker Server 13. Publication Web personnalisée avec PHP

Conception et Implémentation d un serveur d applications dans le cadre du projet EISMO

Groupe Eyrolles, 2004 ISBN :

Application web de gestion de comptes en banques

TP2 : Client d une BDD SqlServer

Devenez un véritable développeur web en 3 mois!

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Système de Virtualisation pour une application de gestion commerciale d entreprise

Document Object Model (DOM)

Documentation technique

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Burckel Thomas. Formation. Compétences

BASE DE DONNÉES XML NATIVE

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

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Évaluation et implémentation des langages

Éléments de programmation et introduction à Java

Refonte front-office / back-office - Architecture & Conception -

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Outils de traitements de logs Apache

Big Data et Graphes : Quelques pistes de recherche

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Introduction aux «Services Web»

Formation en Logiciels Libres. Fiche d inscription

données en connaissance et en actions?

Bases de Données. Plan

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

La base de données XML exist. A. Belaïd

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

Utiliser une base de données

Bases de données cours 1

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Pourquoi l apprentissage?

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

RAPPORT DE CONCEPTION UML :

A. À propos des annuaires

Introduction à ElasticSearch

SÉCURITÉ POUR LES ENTREPRISES UN MONDE NUAGEUX ET MOBILE. Sophia-Antipolis 01/07/2013 Cyril Grosjean

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

Java 7 Les fondamentaux du langage Java

PHP 5.4 Développez un site web dynamique et interactif

Network Efficiency Monitoring - version 2

Zope: une plateforme collaborative de développement web open source

Application Web et J2EE

Manuel d installation de Business Objects Web Intelligence Rich Client.

Cours Bases de données

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

Transformation IT de l entreprise BIG DATA, MÉTIERS ET ÉVOLUTION DES BASES DE DONNÉES

Diagnostic adaptatif d'un flux d'alarmes par méta diagnostic distribué Application à la détection d'intrusions dans un serveur Web

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

MEGA ITSM Accelerator. Guide de Démarrage

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Vulgarisation Java EE Java EE, c est quoi?

J2EE - Introduction. Développement web - Java. Plan du chapitre

Hébergement MMI SEMESTRE 4

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

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

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

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

Mobyt Intégration par Webservice TABLE DES MATIERES

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Méthodes et outils employés pour développer des logiciels libres

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Cours 14 Les fichiers

Gestion du parc informatique des collèges du département du Cher. Manuel d utilisation de la solution de gestion de Parc

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Programmation Internet

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Optimisation des échanges et traitements XML

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Transcription:

Programmation des Applications Réparties Parsers XML DOM et SAX Luiz Angelo Steffenel luiz-angelo.steffenel@univ-reims.fr Steffenel Programmation des Applications Réparties Master M1-2007-2008 1

Comment Utiliser XML dans mon Application? XML est très efficace pour transporter des données structuration, indépendance, auto-description Mais il faut extraire les données pour utiliser avec nos applications C, C++, Java, php,... Steffenel Programmation des Applications Réparties Master M1-2007-2008 2

Un Parser XML Un parser sert à extraire la structure et le contenu d'un document XML. Offre une API de programmmation pour accéder aux élements d'un document XML spécification indépendante du langage de programmation le programmeur peut rajouter du code pour augmenter les fonctionnalités du parser Deux APIs standard couramment disponibles : DOM (Document Object Model) SAX (Simple API for XML) Toutes les deux font l'extraction des données d'un document XML, mais selon des stratégies différentes Steffenel Programmation des Applications Réparties Master M1-2007-2008 3

Pourquoi utiliser une API XML? Pour pouvoir lire/écrire des données XML sans avoir à créer notre propre parser XML Applications : traitement de documents XML (balises, attributs, etc.) enregistrement de configs, préférences, etc. en format XML partage de résultats dans un format portable exemple : expression des relations dans un modèle E-A alternative à la sérialisation pour le stockage d'objets compatible avec les définitions de classes et objets lisible Steffenel Programmation des Applications Réparties Master M1-2007-2008 4

DOM Document Object Model Représente un document XML comme un arbre API riche en fonctions de recherche Charge la totalité du document XML en mémoire évite le parsing à chaque nouvelle requête Indiqué : lorsqu'on veut éditer le document lorsqu'on doit accéder au document XML plusieurs fois http://www.w3.org/dom Steffenel Programmation des Applications Réparties Master M1-2007-2008 5

Le modèle d'arbre de DOM Steffenel Programmation des Applications Réparties Master M1-2007-2008 6

SAX Simple API for XML Les documents XML sont modélisés comme un flux de d'événements Les événements sont la découverte par le parser des balises, des PCDATA,... Le document est analysé par SAX du début jusqu'à la fin, élément par élément, attribut par attribut Méthodes d'accès séquentiel tels que startdocument(), endelement() Plus rapide et plus facile d'utiliser Indiqué : lorsqu'on n'a pas besoin d'éditer le document en mémoire si la mémoire est limitée lorsqu'on veut accéder à une partie du document seulement Steffenel Programmation des Applications Réparties Master M1-2007-2008 7

La séquence d'événements SAX Steffenel Programmation des Applications Réparties Master M1-2007-2008 8

DOM vs SAX DOM SAX Structure en arbre par des événements Status Standard W3C standard de facto Phylosophie batch lecture de la totalité streaming Complexité du document complexe mais plus flexible (spec 500 pages) Simple mais parfois limité (spec 30 pages) Type d'accès création, lecture, lecture seule modification, suppression Demande de + mémoire et processeur légér, +efficace ressources Type d'utilisation accès non séquentiel, lecture de longs documents modification Steffenel Programmation des Applications Réparties Master M1-2007-2008 9

JAXP API Java pour le traitement de XML API de SUN livré avec Java J2EE JAXP offre une interface commune pour utiliser SAX ou DOM mais aussi XSLT interface indépendante de l'implémentation Crimson (impl. SAX J2SE < 1.4.1) Xerces (produit par Apache, J2SE >=1.4.2) Steffenel Programmation des Applications Réparties Master M1-2007-2008 10

Fonctions de JAXP Parser le document DOM crée un arbre DOM SAX extrait les données à partir d'événements Traiter le document DOM utilisation de l'api DOM SAX traitement des événements SAX Traitement d'erreurs Quelques opérations sur les données affichage, transformation, prise de décisions, etc. Steffenel Programmation des Applications Réparties Master M1-2007-2008 11

Les paquets de Base Steffenel Programmation des Applications Réparties Master M1-2007-2008 12

DOM Steffenel Programmation des Applications Réparties Master M1-2007-2008 13

Structure d'un arbre DOM Chaque noeud a un élément «text» même si le texte est vide Les commentaires apparaissent comme des noeuds spéciaux Les attributs ne sont pas inclus dans l'arbre accessibles à partir de la méthode Elementobject Steffenel Programmation des Applications Réparties Master M1-2007-2008 14

Programmation avec DOM Structure minimale Accès au document Steffenel Programmation des Applications Réparties Master M1-2007-2008 15

D'autres méthodes DOM Mais aussi : création de noeuds modification, etc. Steffenel Programmation des Applications Réparties Master M1-2007-2008 16

SAX Steffenel Programmation des Applications Réparties Master M1-2007-2008 17

Parsing avec SAX Le parsing est fait au fur et à mesure Steffenel Programmation des Applications Réparties Master M1-2007-2008 18

Fonctionnement de SAX SAX définit un DefaultHandler pour répondre è certains événements startdocument() enddocument() startelement(string namespace, String localname, String qname, Attributes atts) endelement(string namespace, String localname, String qname) characters() Les appels à startelement() et endelement() viennent TOUJOURS par paires Steffenel Programmation des Applications Réparties Master M1-2007-2008 19

Parsing avec SAX Les paramètres passées aux méthodes contiennent les données <foo>test</foo> startelement(" "," ", "foo",null) characters ("test",0,4) endelement(" "," ","foo") les attributs sont passés dans startelement() à travers un objet Attributs <foo id="10">test</foo> startelement(" "," ", "foo",att) l'objet Attributs peut être accédé avec getlength(), getindex(), getvalue(), etc. Steffenel Programmation des Applications Réparties Master M1-2007-2008 20

Rappel : DOM vs SAX DOM SAX Structure en arbre par des événements Status Standard W3C standard de facto Phylosophie batch lecture de la totalité streaming Complexité du document complexe mais plus flexible (spec 500 pages) Simple mais parfois limité (spec 30 pages) Type d'accès création, lecture, lecture seule modification, suppression Demande de + mémoire et processeur légér, +efficace ressources Type d'utilisation accès non séquentiel, lecture de longs documents modification Steffenel Programmation des Applications Réparties Master M1-2007-2008 21