Les technologies XML Cours 3 : Les APIS XML Janvier 2009 - Version 1.0 -

Slides:



Advertisements
Présentations similaires
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 8 Langage HTML.
Advertisements

Implémentation de l'interface IChannel Récupération de paramètres
Projets M1 XML, Objets. Université Paris II & LRI Michel de Rougemont 1.Projets 2.XML 3.Programmation objet 4.D.O.M.
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.
Transformation de documents XML
SAX Simple API for XML. Généralités API non standard développé par les membres du forum XML-DEV Parseur XML – Orienté événement – Parsing dynamique SAX.
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
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
TP 7.1 synchronized et join Écrire un programme Java qui crée 1000 threads et maintient un compteur nb du nombre de threads créés jusque-là. Le thread.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Programmation Web Les JSP.
(Classes prédéfinies – API Java)
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
51 Les technologies XML Cours 7 : Utilisations dXML Janvier Version 1.0 -
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Servlet JAVA.
Manipulation d’XML avec XSL
Laboratoire SAFARI , UQAM
Présentation des frameworks pour Java EE
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Présentation Installation Fonctionnement
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Présentation Struts1-JaxB
Écouteurs de click d'une fenêtre
Introduction à DOM Maroua Bouzid
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
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.
Classes abstraites et Interfaces
Système d’Exploitation
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.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Standard Template Library
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Patrons de conceptions de créations
Une introduction à Java
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.
Isabelle Kervella - Mastère ISIC1 Méta-calendrier automatique pour portail www Projet d’ingénierie Mars 2002.
4 Introduction des objets. Les chaînes et tableaux
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Découverte des Framework : SPRING & JAXB
X xx yyy Document XML Résolution d'entités Résolution espaces de nommages Reader Parsing Contrôle de validité structurelle Contrôle arbre bien formé Contrôle.
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 10 Accès distant aux bases de données.
Tutorat en bio-informatique
Entrées / Sorties.
Constructeurs H Batatia. Variable statique Une variable statique est partagée par tous les objets d’une classe.
Strings et Tableaux en Java
Les sockets.
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
Schéma de conception Factory Method Exemple Sylvain Giroux.
Le polymorphisme.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Programmation Web : DOM en PHP Jérôme CUTRONA 11:06:45 Programmation Web
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é.
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
16 novembre 2005 Présentation du projet final Développement d’un plugin pour l’importation de données 3D normalisées pour la plate-forme Gocad Dans le.
Transcription de la présentation:

Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -

LES APIS POUR MANIPULER DES DOCUMENTS XML Les APIS XML : Sont des analyseurs syntaxiques (parser en anglais, parfois francisé en parseur), des librairies proposant un ensemble de composants logiciels Permettent et facilitent la lecture, la génération et le traitement de documents XML. Ces API sont implémentées sur la base de 2 modèles : Hiérarchique : DOM XML (Document Objet Model) permet la manipulation dun document XML après lavoir représenté en mémoire sous la forme dun arbre dobjets Evénementiel : SAX (Simple API for XML) permet la manipulation dun document XML au fur et à mesure de sa lecture, sans avoir à le charger en totalité en mémoire. Lextraction des données est basée sur une gestion dévénements (création dun document, dun élément...).

LES APIS POUR MANIPULER DES DOCUMENTS XML DOM est une norme du consortium w3 SAX est une spécification disponible en projet Open Source. Il existe de nombreuses implémentations de la norme DOM et de la spécification SAX Xerces Est un projet Open Source de la fondation Apache Fournit une implémentation danalyseur syntaxique XML DOM et SAX.

LES APIS POUR MANIPULER DES DOCUMENTS XML Les différentes classes des APIS XML :

LES APIS POUR MANIPULER DES DOCUMENTS XML JAXP ou Java API for XML Parsing : LAPI javax.xml.parsers permet dobtenir des instances dun analyseur syntaxique DOM ou SAX. Cest létape préliminaire à toute manipulation de document XML. Un parseur a pour rôle danalyser un document XML. Il peut en outre vérifier la validité dun document en fonction de sa DTD ou du XML-Schema associé

LES APIS POUR MANIPULER DES DOCUMENTS XML LAPI org.xml.sax Elle implémente les interfaces SAX, fournit des classes et méthodes permettant la manipulation dun document XML via une gestion dévénement. Le parseur analyse le flot de caractères du document et appelle des méthodes de rappel (en anglais callback) lorsquil rencontre les balises de début et de fin du document et déléments

LES APIS POUR MANIPULER DES DOCUMENTS XML Exemple dun lecteur SAX :

LES APIS POUR MANIPULER DES DOCUMENTS XML Exemple dun lecteur SAX (suite) : Ce premier exemple est un parseur de type SAX qui se contente de détecter les différents balises et attributs contenus dans un document XML et deffectuer un traitement associé. Pour le faire, la classe principale hérite de la classe HandlerBase ou de la classe DefaultHandler. Ces 2 classes fournissent en effet un certain nombre de méthodes capables de gérer les évènements liées à lanalyse dun document XML : startElement gère lévènement début dun élément, startDocument gère lévénement début dun document, endDocument gére lévénement fin dun document... Une fois, linstance dun parseur de type SAXParser obtenue, il faut ensuite, à laide de la méthode parse, associer la source de données XML (passée en paramètre) au flux dévènements gérés par les méthodes des classes HandlerBase ou DefaultHandler.

LES APIS POUR MANIPULER DES DOCUMENTS XML LAPI org.xml.dom : Elle implémente les interfaces DOM et fournit des classes et des méthodes permettant la manipulation dun document XML via une gestion darbre. On peut ainsi ajouter ou supprimer un noeud, ajouter ou supprimer un attribut à un nœud (méthodes appendChild, setAttribute de la classe Element par exemple)... Un parseur DOM construit un objet DOM, puis parcours en largeur et en profondeur larbre afin den traiter chaque nœud.

LES APIS POUR MANIPULER DES DOCUMENTS XML Lecture dun document XML par DOM (1) import javax.xml.parsers.*; import org.w3c.dom.*; import org.xml.sax.SAXException; import java.io.*; public class ExempleDOM { public static void main(String[] args) { public static void main(String[] args) { try{ try{ // création d'une fabrique de constructeur de documents DOM // création d'une fabrique de constructeur de documents DOM DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance(); DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance(); // création d'un constructeur de documents DOM // création d'un constructeur de documents DOM DocumentBuilder constructeur = fabrique.newDocumentBuilder(); DocumentBuilder constructeur = fabrique.newDocumentBuilder();

LES APIS POUR MANIPULER DES DOCUMENTS XML Lecture dun document XML par DOM (2) // lecture du contenu d'un fichier XML avec le constructeur pour // lecture du contenu d'un fichier XML avec le constructeur pour // créer le document DOM correspondant // créer le document DOM correspondant File xmlFile = new File("ExempleDOM.xml"); File xmlFile = new File("ExempleDOM.xml"); Document document = constructeur.parse(xmlFile); Document document = constructeur.parse(xmlFile); // traitement du document // traitement du document printDocument(document); printDocument(document);} catch(ParserConfigurationException pce) { System.out.println("Erreur de configuration du parseur DOM"); } catch(SAXException se) { System.out.println("Erreur lors du parsing du document"); }

LES APIS POUR MANIPULER DES DOCUMENTS XML Lecture dun document XML par DOM (3) catch(IOException ioe) { System.out.println("Erreur d'entrée/sortie"); } } public static void printNode(Node node) { public static void printNode(Node node) {System.out.println(node); NodeList nodes = node.getChildNodes(); for(int i=0; i<nodes.getLength(); i++) { Node n = nodes.item(i); printNode(n);} } public static void printDocument(Document document) { public static void printDocument(Document document) { Element racine = document.getDocumentElement(); printNode(racine); }}

LES APIS POUR MANIPULER DES DOCUMENTS XML Lecture dun document XML par DOM (4) Fichier XML à lire : <bibliothèque> <titre>titre0</titre><auteur>auteur0</auteur><éditeur>éditeur0</éditeur></livre> <titre>titre1</titre><auteur>auteur1</auteur><éditeur>éditeur1</éditeur></livre></bibliothèque>

LES APIS POUR MANIPULER DES DOCUMENTS XML Lecture dun document XML par DOM (4) Résultat : [biblioth è que: null] [#text:] [livre: null] [#text:] [titre: null] [#text: titre0] [#text:] [auteur: null] [#text: auteur0] [#text:] [ é diteur: null] [#text: é diteur0] [...]

LES APIS POUR MANIPULER DES DOCUMENTS XML Exemple de générateur dXML par DOM (1)

LES APIS POUR MANIPULER DES DOCUMENTS XML Exemple de générateur dXML par DOM (2)

LES APIS POUR MANIPULER DES DOCUMENTS XML Exemple de générateur dXML par DOM (3)

LES APIS POUR MANIPULER DES DOCUMENTS XML Exemple de transformation de document XML : On dispose dun fichier source input.xml et dune fiche XSLT input.xsl, et on désire créer un fichier output.html à partir de ces deux éléments.

CONCLUSION : SAX VERSUS DOM SAX ou DOM ?