Projet de semestre Responsable :Prof. Claude Petitpierre Superviseur :Duy Vo Duc.

Slides:



Advertisements
Présentations similaires
Implémentation de l'interface IChannel Récupération de paramètres
Advertisements

DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL.
DTD Sylvain Salvati
Introspection et Réflexion Manipulation dynamique de code Java.
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Programmation Web Les JSP.
Approfondissement du langage
Dernière scéance: Des question?????? + Deux exercices.
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
Algorithme et structure de données
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
JAV - TD 6 Structures de données JAVA
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
TP 3-4 BD21.
Formulaire HTML Introduction. Définition de formulaire.
Introduction aux Web Services Partie 1. Technologies HTML-XML
Structures collectives en Java
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
POO-L3 H. Fauconnier1 Chapitre IV 1. classe Object, clonage 2. interfaces 3. classes internes et imbriquées.
Langage Oriente Objet Cours 4.
TP Fichiers et Tableaux Avril Un fichier Permet le stockage de données sur des supports de mémoire externes (donc les données ne seront pas perdues.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
POO : Objets et classes (Rappels)
Faculté I&C, Claude Petitpierre, André Maurer 1 JavaCC Java compilers compiler (version générant du Javascript)
Introduction à la programmation (Java)
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Interfaces : comment classifier ?
DESS CCI POO-JAVA TD n°7 exercice n°1
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Une nouvelle structure de données : les tableaux
Projet de diplôme 2011 Miserez David
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
POO-L3 H. Fauconnier1 Supplément gratuit…. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double.
IFT 6800 Atelier en Technologies d’information
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Cours 5 Héritage, Interfaces, classes internes. POO-L3 H. Fauconnier2 La classe Object Toutes les classes héritent de la classe Object Object méthodes:
COURS DE PROGRAMMATION ORIENTEE OBJET :
Faculté I&C, Claude Petitpierre, André Maurer JavaCC Java compilers compiler (version générant du Javascript)
1111 Gestion des exceptions Objectifs À la fin de ce cours, vous serez capables de : • Expliquer les concepts de base de la gestion des exceptions.
1212 Entrée et sortie de fichiers Objectifs À la fin de ce cours, vous serez capables de : • Lire à partir de la console • Écrire sur la console.
Le langage C Structures de données
Introduction au langage PHP Licence Pro Cours Internet / Intranet Utilité Historique Exemples Fonctions PHP Classes.
Intention Séparer et extraire les traitements appliquées à différents type de nœuds d’une structure.
J201 (JOC) Java Avancé juin 2007 ~ Brigitte Groléas ~
4 Introduction des objets. Les chaînes et tableaux
1 Fichers Binaires, Accès Direct et Objets. 2 Données binaires. Il s'agit ici de lire et écrire des données binaires par opposition à du texte. Pour ce.
Cours n°3 rappels. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double a = 5.6d ; double b =
La notion de type revisitée en POO
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
Cours No8 La programmation à l’aide d’objets. Contenu 1. Terminologie objet 2. Classe vs Objet 3. Création d’une classe 4. Déclaration d’une variable.
Programmation objet La base.
Cours 7 Classes locales Clonage Divers: tableaux.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 6 – Exceptions.
14/04/2015onic1 Zone fonctionnelle Référentiel. 14/04/2015onic2 Sommaire Introduction Cas d’utilisations Le cache principal –La purge –Le remplissage.
Tutorat en bio-informatique
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java.
Strings et Tableaux en Java
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Cours du 5 novembre.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
1 Chapitre III (~70 transparents) Compléments. 2 Au sommaire de ce chapitre 1. Les fichiers Les classes utilitaires
Modélisation des documents: DTD et Schéma
1. Introduction 2. DTD 3. Schémas
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Héritage Conception par Objet et programmation Java
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
Généricité.
Transcription de la présentation:

Projet de semestre Responsable :Prof. Claude Petitpierre Superviseur :Duy Vo Duc

L T I Laboratoire de Téléinformatique 2 Exemple pratique Fichier XML des collaborateurs –Liste des personnes –Prime de 10% Plusieurs fichiers à traiter Rapidité de développement Julie Blanc Jean Toufou Sophie Nalup Claire-Lise De Reck Philippe Brousseur Xavier Reynold Jim Lenz

L T I Laboratoire de Téléinformatique 3 Exemple pratique (2) Ouverture du fichier xmlParser = new XMLParser(); FileInputStream inputStream = new FileInputStream(" data.xml "); Personnes personnes = xmlParser.input(inputStream); inputStream.close(); Liste et augmentation for (Enumeration e=personnes.getPersonne(); e.hasMoreElements(); ) { Personne p = (Personne)e.nextElement(); int salaire = Integer.parseInt(p.getSalaire()); int salaire2 = (int)(1.1 * salaire); System.out.println(p.getNom().getText() + " " + p.getPrenom().getText() + " : " + salaire); p.setSalaire(Integer.toString(salaire2)); } Enregistrement du résultat personnes.save(" new-data.xml ");

L T I Laboratoire de Téléinformatique 4 Exemple pratique (3) : Résultat Terminal / Ligne de commande : Blanc Julie : 4000 Toufou Jean : 3200 Nalup Sophie : 6500 De Reck Claire-Lise : 7000 Brousseur Philippe : 6800 Reynold Xavier : 2900 Lenz Jim : 5100 Fichier new-data-xml : Julie Blanc Jean Toufou Sophie Nalup Claire-Lise De Reck Philippe Brousseur Xavier Reynold Jim Lenz

L T I Laboratoire de Téléinformatique 5 Méthodologie 1.Lecture de la DTD source 2.Génération de classes Java correspondant aux éléments de la DTD 3.Création d’une grammaire basée sur la DTD pour le parseur XML 4.Améliorations de l’accessibilité des éléments XML

L T I Laboratoire de Téléinformatique 6 Lecture de la DTD source Création d’une grammaire JavaCC d’après la description BNF du W3C Projet Exolab ( –Parseur de recherche et remplacement des entités paramétrées –Parseur principal, classique, de représentation de la DTD sous forme hiérarchique en mémoire

L T I Laboratoire de Téléinformatique 7 Utilisation de DTD2Java Stockage d’information dans un fichier XML Structure du fichier Grammaire DTD Génération d’un parseur spécialisé Classes Java pour la lecture/écriture des fichiers XML

L T I Laboratoire de Téléinformatique 8 Génération de classes Java Représentation des éléments XML en mémoire –Hiérarchie identique à celle du fichier XML –Accès facile, avec des méthodes get[Élément], set[Élément] –Cas des éléments à répétition : (E)* ou (E)+ Gestion dans une liste, un vecteur ou une autre structure de données conservant l’ordre Ajout / Suppression / Modification autorisées

L T I Laboratoire de Téléinformatique 9 Personne NomPrenom Fonctionnement interne Contenu texte Prenom Nom Age Liste de personnes Personnes <!ATTLIST Personne Salaire CDATA #REQUIRED>

L T I Laboratoire de Téléinformatique 10 Fonctionnement interne (2) <!ATTLIST Personne Salaire CDATA...> /** * Match an element 'Personnes'. */ Personnes matchPersonnes() : { Personnes ret = new Personnes(); } { ( { token_source.SwitchTo(CharDataSect); } ( LOOKAHEAD(2) [ ] { Personne personne; } personne = matchPersonne() { ret.addPersonne(personne); } )* [ ] [ ] [ ] ) { token_source.SwitchTo(CharDataSect); } { return ret; } }

L T I Laboratoire de Téléinformatique 11 Gestion des attributs /** * Match an element 'Personne'. */ Personne matchPersonne() : { Personne ret = new Personne(); } { ( LOOKAHEAD(2) ( Attribute(ret) )? )* ( { token_source.SwitchTo(CharDataSect); } // La suite du code a été coupée Utilisation de la réflexion void Attribute(Object obj) : { String attname; String value; String methodName = null; } { attname = QStringName() { token_source.SwitchTo(EqSect); } Eq() { token_source.SwitchTo(AttValueSect); } value = AttValue() { if (obj.getClass().getName().equals("Personne")) { if (attname.equals(“Salaire")) methodName = "setSalaire"; } invokeMethod(obj, methodName, value); return; }

L T I Laboratoire de Téléinformatique 12 Gestion des attributs (2) Fonction générique Ne tient pas compte de la liste définie dans la DTD Ne tient pas compte du type d’attribut (required, implied, …) Gestion dans les classes elles-même Intégrité pendant toute la vie de l’objet

L T I Laboratoire de Téléinformatique 13 Gestion des listes for (Enumeration e=vehicules.getChildElements(); e.hasMoreElements(); ) { Object obj = e.nextElement(); String className = obj.getClass().getName(); if (className.equals(" Moto ") { Moto moto = (Moto) obj; // Traitement moto } else if (className.equals(" Voiture ") { Voiture voiture = (Voiture) obj; // Traitement voiture } else if (className.equals(" Velo ") { Velo velo = (Velo) obj; // Traitement vélo } }

L T I Laboratoire de Téléinformatique 14 Conclusion / Questions DTDs bien structurées Peu d’imbrication dans les déclarations Java 1.4.x Démonstration pas-à-pas