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.

Slides:



Advertisements
Présentations similaires
IChannelIPrivilegedIMultithreadedIServantICacheableIMimeResponse Type custom : les interfaces de programmations IChannel : canal standard, stateful 5 méthodes.
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.
Le mécanisme des exceptions
Introspection et Réflexion Manipulation dynamique de code Java.
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.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Arbres Un premier exemple Contenu Rendu Ecouteurs Parcours
Programmation Web Les JSP.
(Classes prédéfinies – API Java)
Plan du cours 5:Threads introduction Définition Création des Threads
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
Programmer en JAVA par Tama
INTRODUCTION A JAVA Chapitre 1 : Introduction
Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV1 JAV – TD 5 Lhéritage en Java.
Les fonctions en Java Partie I Le type void. Dans cette rapide présentation, je vais expliquer :.à quoi servent les fonctions.à quoi faut-il penser avant.
1 Le mécanisme des exceptions Qu'est-ce qu'une exception? Comment définir et signaler des exceptions? Comment récupérer des exceptions?
JDBC: manipuler une base de données en Java IFT6800 – E 2007 Jian-Yun Nie.
Les entrées /sorties en Java François Bonneville
Connexion base de données
Chapitre IV Object, interfaces, classes imbriquées.
Injection de dépendances
1 Une introduction à Java IFT 287 (Semaine 1). 2 Java - Historique Développé par Sun Microsystems en 1994 –Inventeur James Gosling (canadien!) Objectif.
BlueJ_XI 1 Java, les objets : tout de suite ! Gestion des erreurs : les exceptions Notes de cours associées au chapitre 11 tutorial BlueJ
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
CGI, Servlet. Script CGI, Servlet Motivation Exécution dun traitement coté serveur web Traitement de formulaire Génération de pages html à la volée Ex.
A. Roussanaly - Université Nancy2 AXIS Master MIAGE/SID – Université NANCY2.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
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.
Faculté I&C, Claude Petitpierre, André Maurer 1 Java.
Écouteurs de click d'une fenêtre
Débugage avec log4j Azim Roussanaly.
Cours du 19 octobre. POO-L3 H. Fauconnier2 E) Constructeurs et héritage Le constructeurs ne sont pas des méthodes comme les autres: le redéfinition na.
Badr Benmammar Programmation concurrente et temps réel en Java Badr Benmammar
Master 1 SIGLIS java Lecteur Stéphane Tallard Chapitre 4 – Structures de contrôle.
Classes abstraites et Interfaces
Quelques notes sur CORBA F. Boyer, Oct Principes Programmation distribuée Multi-plateformes Notion de client et de serveur Notion de stub et de.
Le patron de conception « Strategy » Simon Durocher ( )
Programmation par Objets et Java
JUnit Présentation complète de JUnit et « guide d’utilisation » en 13 transparents.
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke JavaCC.
Multi-Thread Jian-Yun Nie
IFT 6800 Atelier en Technologies d’information
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.
Exceptions IFT1025: Programmation 2 Jian-Yun Nie.
Badr Benmammar Formation Développeur Java Thread et Swing Badr Benmammar
Badr Benmammar Programmation concurrente et temps réel en Java Badr Benmammar
Servlets. 2 H. Fauconnier M2-Internet Contenu dynamique Perl/cgi indépendant de la plateforme Extensions du serveur exemple ASP M2-Internet 3 H. Fauconnier.
Cours 11 Threads. Chapitre X threads threadPOO-L3 H. Fauconnier3 Threads threads: plusieurs activités qui coexistent et partagent des données exemples:
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 :
CSI1502 Principes fondamentaux en conception des logiciels Chapter 8: Gestion des exceptions.
Connectivité, Web Services Orienté clients/serveur TCP et Bluetooth
Les Objets CORBA parallèles Travaux pratiques Lundi 22 mai 2000 ARC « Couplage » Christophe René (IRISA/IFSIC) Eric Lemoine (INSA Lyon)
Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) Projet SARDES, INRIA Rhône-Alpes APACHE/VELOCITY.
Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) Projet SARDES, INRIA Rhône-Alpes Usage.
Une introduction à Java
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.
1111 Gestion des exceptions Objectifs À la fin de ce cours, vous serez capables de : • Expliquer les concepts de base de la gestion des exceptions.
Migrer vers Windows Phone 7 depuis iOS, Android ou Windows Mobile
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.
Introduction à la programmation (420-PK2-SL) cours 20 Gestion des applications Technologie de l’information (LEA.BW)
Cours 7 Classes locales Clonage Divers: tableaux.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 6 – Exceptions.
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
12/04/ Les exceptions Cours 11 Cours 11.
Strings et Tableaux en Java
Schéma de conception Factory Method Exemple Sylvain Giroux.
Cours du 5 novembre.
Transcription de la présentation:

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 existe en Java, Python et C++

SAX Principe de Fonctionnement XML Internet Fichier APPLICATIONS

SAX aujourdhui Debut des travaux Dec, 1997 SAX 1.0 Mai, 1998 – Tim Bray – David Megginson – … SAX 2.0 Mai, 2000

SAX 2.0 Interfaces – XMLReader – ContentHandler – DTDHandler – ErrorHandler – … Classes – InputSource Exceptions – SAXException – …

org.xml.sax.XMLReader Classe implantée par tout parser SAX Méthodes – public void setContentHandler(ContentHandler handler) – public void setDTDHandler(DTDHandler handler) – public void setErrorHandler(ErrorHandler handler) – public void parse(InputSource input) throws java.io.IOException, SAXException – …

org.xml.sax.ContentHandler Handler le plus important. Toutes les applications SAX doivent implanter un ContentHandler Méthodes : – public void startDocument() throws SAXException – public void endDocument() throws SAXException – public void startElement(String nspURI, String localName, String qName, Attributes atts) throws SAXException – public void characters(char[] ch, int start, int length) throws SAXException – …

org.xml.sax.DTDHandler Handler utilisé pour avoir des informations sur les entitées non parsable. Méthodes : – public void notationDecl(String name, String publicId, String systemId) throws SAXException – public void unparsedEntityDecl(String name, String publicId, String systemId, String notationName) throws SAXException

org.xml.sax.ErrorHandler Handler utilisé pour effectuer un traitement lors dapparition derreurs. Méthodes : – public void warning(SAXParseException exception) throws SAXException – public void error(SAXParseException exception) throws SAXException – public void fatalError(SAXParseException exception) throws SAXException

org.xml.sax.EntityResolver Handler utilisé pour effectuer un traitement lors de la résolution dentité. Méthode : – public InputSource resolveEntity(String publicId, String systemId) throws SAXException, java.io.IOException

org.xml.sax.Attributes Liste dattributs Méthodes : – public int getLength() – public java.lang.String getLocalName(int index) – public java.lang.String getValue(int index) – …

org.xml.sax.Locator Utiliser pour connaître la position du parser dans le fichier Les parser SAX ne sont pas obligé de fournit un Locator Méthodes : – public int getColumnNumber() – public int getLineNumber() – …

org.xml.sax.InputSource Tout input XML doit être encapsulé dans un InputSource Méthodes : – public InputSource(java.io.Reader characterStream) – public InputSource(java.io.InputStream byteStream) – …

Exemple de Programme SAX package test; public class ContentTest extends org.xml.sax.helpers.DefaultHandler { org.xml.sax.Locator _locator; public void startDocument() {System.out.println("Le document commence");} public void endDocument() {System.out.println("Le document finit");} public void startElement(java.lang.String namespaceURI, java.lang.String localName,java.lang.String rawName, org.xml.sax.Attributes atts) throws org.xml.sax.SAXException { System.out.println("element : "+localName+" commence"+"col = « +_locator.getColumnNumber()+" ; line ="+_locator.getLineNumber() );} public void endElement(java.lang.String namespaceURI,java.lang.String localName, java.lang.String rawName, org.xml.sax.Attributes atts) throws org.xml.sax.SAXException { System.out.println("element : "+localName+" finit"); } public void setDocumentLocator(org.xml.sax.Locator locator) {_locator = locator;} }

Exemple de Programme SAX package test; public class DTDTest extends org.xml.sax.helpers.DefaultHandler { public void notationDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId) throws org.xml.sax.SAXException { System.out.println("Notation Declaration"); } public void unparsedEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String notationName) throws org.xml.sax.SAXException { System.out.println("Unparsed entity Decl"); }

Exemple de Programme SAX package test; public class EntityTest extends org.xml.sax.helpers.DefaultHandler { public org.xml.sax.InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId) throws org.xml.sax.SAXException{ System.out.println("resolve an entity"); return null; }

Exemple de Programme SAX package test; public class ErrorTest extends org.xml.sax.helpers.DefaultHandler { public void warning(org.xml.sax.SAXParseException exception) throws org.xml.sax.SAXException { System.out.println("Got a Warning"); } public void error(org.xml.sax.SAXParseException exception) throws org.xml.sax.SAXException { System.out.println("Got an Error"); } public void fatalError(org.xml.sax.SAXParseException exception) throws org.xml.sax.SAXException { System.out.println("Got a fatal Error"); }

Exemple de programme SAX package test; public class Parse { public static void main(String[] args) { try { org.xml.sax.XMLReader parser = (org.xml.sax.XMLReader)Class.forName(« org.apache.xerces.parsers.SAXParser").newInstance(); ContentTest _content = new ContentTest(); _content.setDocumentLocator(new org.xml.sax.helpers.LocatorImpl()); parser.setContentHandler(_content); parser.setErrorHandler(new ErrorTest()); parser.setEntityResolver(new EntityTest()); parser.setDTDHandler(new DTDTest()); parser.parse("UML.xml");} catch (org.xml.sax.SAXParseException spe) {spe.printStackTrace(System.err);} catch (org.xml.sax.SAXException se) {se.printStackTrace(System.err);} catch (Exception e) {e.printStackTrace(System.err);} }

Conclusion Type de Parser XML Standard « Internet » Orienté événement Utilisé par les serveurs Web