SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
Manipulation des fichiers XML avec
les API Java : DOM et SAX

L’Agence Nationale de Réglementation des Télécommunications
L'Institut National des Postes et Télécommunications

Réalisé par :
Said BENAISSA
Mohamed BOURRICH
plan
• introduction
• Notion de parseur
• Parseur SAX
• Parseur DOM
• Applications
• conclusion
13/12/2013

projet xml
DOM et SAX

2
Introduction

13/12/2013

projet xml
DOM et SAX

3
Notion de parseur

Parseur SAX

Applications

DOM

SAX
utilise les événements pour
analyser et exploiter les
documents au format XML

13/12/2013

Parseur DOM

consiste à la construction d'un
modèle objet en mémoire

projet xml
DOM et SAX

4
Notion de parseur

Parseur SAX

Parseur DOM

Applications

les avantages de SAX
• peu gourmand en ressources mémoire
• rapide
• principes faciles à mettre en œuvre
• permet de ne traiter que les données utiles

les inconvénients de SAX
• traite les données séquentiellement
• un peu plus difficile à programmer,
• sauvegarder les informations pour les traiter

13/12/2013

projet xml
DOM et SAX

5
Notion de parseur

Parseur SAX

Parseur DOM

Applications

les avantages de DOM
• parcours libre de l'arbre
• possibilité de modifier la structure et le contenu de l'arbre

les inconvénients de DOM
• gourmand en mémoire
• doit traiter tout le document avant d'exploiter les résultats

13/12/2013

projet xml
DOM et SAX

6
Les implémentations du W3C

Notion de parseur

13/12/2013

Parseur SAX

Parseur DOM

Applications

Xerces, implémentation de SAX et DOM de l’ASF
(Apache Software Fondation)

JDom, qui est une implémentation alternative

Dom4J, qui implémente également SAX, DOM et XSL

projet xml
DOM et SAX

7
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Java API for XML
Processing: JAXP

API indépendante de tout
fournisseur
Unification des approches
SAX & DOM

Packages :

Exceptions :

javax.xml.parsers
javax.xml.transform

FactoryConfigurationError

org.w3c.dom

ParserConfigurationException

org.xml.sax

13/12/2013

projet xml
DOM et SAX

8
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Gestion du contenu :ContentHandler

Gestion des erreurs :ErrorHandler

Lire le
document et
reconnaitre les
structures
(balise,attribut)

Gestions de la DTD : DTDHandler
Gestion des entités : EntityResolver

Les 4 interfaces
sont implémentées
par :

DefaultHandler
13/12/2013

projet xml
DOM et SAX

9
Gestion des
contenus:ContentHandler

Notion de parseur

13/12/2013

Parseur SAX

Parseur DOM

Applications

startDocument();endDocument()

startElement(String uri, String sName,
String qName, Attributes atts)

characters(char[] ch,int start,int length)

projet xml
DOM et SAX

10
Notion de parseur

Parseur SAX

Balise ouvrante

endElement()

Parseur DOM

production
d’un
événement

<contact id="3">
<nom> nom </nom>
</contact>

production
d’un
événement

Characteres()
13/12/2013

production
d’un
événement
projet xml
DOM et SAX

Applications

startElement()

un tableau
associatif pour
les attributs

Chine de
caractères
Chaine de
caractères
11
Gestion des erreurs :
errorHandler

Notion de parseur

13/12/2013

Parseur SAX

Parseur DOM

Applications

les erreurs simples : error()

les erreurs fatales : fatalError()

les alertes : warning()

projet xml
DOM et SAX

12
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Autres interfaces :
Gestion
de la DTD

Données
lexicales

13/12/2013

• EntityResolver :gestion des entités

• LexicalHandler : avoir accès aux données
de type DTD et CDATA

projet xml
DOM et SAX

13
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Ce qui donne
un document
Créer un
document
Builder

instence
DocumentBuilder
Factory

13/12/2013

projet xml
DOM et SAX

14
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Les interfaces du package org.w3c.dom:

13/12/2013

projet xml
DOM et SAX

15
Notion de parseur

Parseur SAX

Parseur DOM

Applications

La classe : Node
Constantes : Element_Node=1; pour typer le nœud courant
getLocalName(index), getNameSpaceURI(), getNodeName()

getAttributes(), hasAttributes().
getNodeName(), getNodeType(), getNodeValue(),setNodeVa
lue().
Node getFirstChild(), removeChild(Node),replaceChild(Node
new, Node old),
13/12/2013

projet xml
DOM et SAX

16
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Parcoure d’un arbre

13/12/2013

projet xml
DOM et SAX

17
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Modification d’un arbre

13/12/2013

projet xml
DOM et SAX

18
Notion de parseur

Parseur SAX

Parseur DOM

Applications

La classe : Element
getTagName()

getElementsByTagName()

getAttribute(), getAttributeNode()

removeAttribute(String), removeAttributeNode(Attr)
13/12/2013

projet xml
DOM et SAX

19
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Les autres classes
La classe Attr : getName() , getValue(), setValue(String)
La classe Entity : getNotationName()
La classe Document : getDocumentElement() ,
getElementsByTagName(String)

La classe Comment
La classe NodeListe : fournir une liste ordonnée : NodeList fils =
n.getChildNodes();
13/12/2013

projet xml
DOM et SAX

20
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Validation d’un document xml
Gestion d’un emploi du temps

13/12/2013

projet xml
DOM et SAX

21
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Validation d’un document xml
Méthode de validation par DOM
• DF.setValidating(true);
• DF.setAttribute(JAXP_SCHEMA_LANGUAGE,W3C_XML_SCHEMA);
• DF.setAttribute(JAXP_SCHEMA_SOURCE,”fichier.xsd”) ;

Méthode de validation par SAX
• SF.setValidating(true);
• SP = SF.newSAXParser();
• SP.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
• SP.setProperty(JAXP_SCHEMA_SOURCE,”fichier.xsd”);
13/12/2013

projet xml
DOM et SAX

22
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Validation d’un document xml

13/12/2013

projet xml
DOM et SAX

23
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Validation d’un document xml

13/12/2013

projet xml
DOM et SAX

24
Notion de parseur

Parseur SAX

Parseur DOM

Applications

gestion d’un emploi du temps

13/12/2013

projet xml
DOM et SAX

25
Notion de parseur

Parseur SAX

Parseur DOM

Applications

gestion d’un emploi du temps

13/12/2013

projet xml
DOM et SAX

26
Conclusion
Accès au information d’un xml par DOM et
SAX
SAX est simple et peut gourmande en
mémoire mais DOM offre plus de
fonctionnalités
SAX et DON sont complémentaires
Deux applications illustrant l’utilisation de
DOM et SAX
13/12/2013

projet xml
DOM et SAX

27
Merci pour votre
attention

13/12/2013

projet xml
DOM et SAX

28

Contenu connexe

En vedette

La Economía en la que vivimos, Uruguay bajo la lupa...
La Economía en la que vivimos, Uruguay bajo la lupa...La Economía en la que vivimos, Uruguay bajo la lupa...
La Economía en la que vivimos, Uruguay bajo la lupa...cuarto cinco
 
Medios probatorios.
Medios probatorios.Medios probatorios.
Medios probatorios.dioneila1
 
Le trolling politique : Comment une pratique du web 2.0 s'est-elle immiscée d...
Le trolling politique : Comment une pratique du web 2.0 s'est-elle immiscée d...Le trolling politique : Comment une pratique du web 2.0 s'est-elle immiscée d...
Le trolling politique : Comment une pratique du web 2.0 s'est-elle immiscée d...Aurélien Bellanger
 
Conservar Un Cliente Es Mas Fácil Que Lograr
Conservar Un Cliente Es Mas Fácil Que LograrConservar Un Cliente Es Mas Fácil Que Lograr
Conservar Un Cliente Es Mas Fácil Que LograrJaime Nariño V, PMP
 
Derecho tributario potestad
Derecho tributario potestadDerecho tributario potestad
Derecho tributario potestaddioneila1
 
Neuschwanstein un castillo_de_cuento_de_hadas
Neuschwanstein un castillo_de_cuento_de_hadasNeuschwanstein un castillo_de_cuento_de_hadas
Neuschwanstein un castillo_de_cuento_de_hadasJaime Nariño V, PMP
 
Les bonnes raisons de choisir INES CRM
Les bonnes raisons de choisir INES CRMLes bonnes raisons de choisir INES CRM
Les bonnes raisons de choisir INES CRMINES CRM FRANCE
 
Guide de lecture sur des outils multimédia dans l'enseignement de langues é...
Guide de lecture sur des  outils multimédia  dans l'enseignement de langues é...Guide de lecture sur des  outils multimédia  dans l'enseignement de langues é...
Guide de lecture sur des outils multimédia dans l'enseignement de langues é...penser2014
 

En vedette (18)

Pinata anniversaire
Pinata anniversairePinata anniversaire
Pinata anniversaire
 
La Economía en la que vivimos, Uruguay bajo la lupa...
La Economía en la que vivimos, Uruguay bajo la lupa...La Economía en la que vivimos, Uruguay bajo la lupa...
La Economía en la que vivimos, Uruguay bajo la lupa...
 
Programme baf
Programme bafProgramme baf
Programme baf
 
Medios probatorios.
Medios probatorios.Medios probatorios.
Medios probatorios.
 
Estampas de colombia
Estampas de colombiaEstampas de colombia
Estampas de colombia
 
t091_licenciasCC
t091_licenciasCCt091_licenciasCC
t091_licenciasCC
 
Le trolling politique : Comment une pratique du web 2.0 s'est-elle immiscée d...
Le trolling politique : Comment une pratique du web 2.0 s'est-elle immiscée d...Le trolling politique : Comment une pratique du web 2.0 s'est-elle immiscée d...
Le trolling politique : Comment une pratique du web 2.0 s'est-elle immiscée d...
 
CONEIAP 2001
CONEIAP 2001CONEIAP 2001
CONEIAP 2001
 
Bulletin décembre 2014
Bulletin décembre 2014Bulletin décembre 2014
Bulletin décembre 2014
 
Conservar Un Cliente Es Mas Fácil Que Lograr
Conservar Un Cliente Es Mas Fácil Que LograrConservar Un Cliente Es Mas Fácil Que Lograr
Conservar Un Cliente Es Mas Fácil Que Lograr
 
Derecho tributario potestad
Derecho tributario potestadDerecho tributario potestad
Derecho tributario potestad
 
Neuschwanstein un castillo_de_cuento_de_hadas
Neuschwanstein un castillo_de_cuento_de_hadasNeuschwanstein un castillo_de_cuento_de_hadas
Neuschwanstein un castillo_de_cuento_de_hadas
 
El agua oxigenada
El agua oxigenadaEl agua oxigenada
El agua oxigenada
 
Las 7 maravillas de rusia
Las 7  maravillas de rusiaLas 7  maravillas de rusia
Las 7 maravillas de rusia
 
El retoque digital
El retoque digitalEl retoque digital
El retoque digital
 
maquetacion_AIC
maquetacion_AICmaquetacion_AIC
maquetacion_AIC
 
Les bonnes raisons de choisir INES CRM
Les bonnes raisons de choisir INES CRMLes bonnes raisons de choisir INES CRM
Les bonnes raisons de choisir INES CRM
 
Guide de lecture sur des outils multimédia dans l'enseignement de langues é...
Guide de lecture sur des  outils multimédia  dans l'enseignement de langues é...Guide de lecture sur des  outils multimédia  dans l'enseignement de langues é...
Guide de lecture sur des outils multimédia dans l'enseignement de langues é...
 

Similaire à Difference Between DOM and SAX parser in java with examples

Présentation de stage
Présentation de stagePrésentation de stage
Présentation de stageqmouraret
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
 
L’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacketL’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacketStéphane Legrand
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Tugdual Grall
 
1- XML généralités technologies xml1.pdf
1- XML généralités technologies xml1.pdf1- XML généralités technologies xml1.pdf
1- XML généralités technologies xml1.pdfKokitaKaty
 
Room ou Realm : Quelle base de données pour vos applications Android ?
Room ou Realm : Quelle base de données pour vos applications Android ?Room ou Realm : Quelle base de données pour vos applications Android ?
Room ou Realm : Quelle base de données pour vos applications Android ?Ludovic ROLAND
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven DesignDNG Consulting
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.pptIdriss22
 
Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Laurent BUNIET
 
lecteur flux d'information RSS (feed reader )
lecteur flux d'information RSS (feed reader )lecteur flux d'information RSS (feed reader )
lecteur flux d'information RSS (feed reader )Ayadi Mohamed
 
Les nouveautés d'HTML 5
Les nouveautés d'HTML 5Les nouveautés d'HTML 5
Les nouveautés d'HTML 5StrasWeb
 
Infrastructure - Monitoring - Cacti
Infrastructure - Monitoring - CactiInfrastructure - Monitoring - Cacti
Infrastructure - Monitoring - CactiFrédéric FAURE
 
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...Paris Open Source Summit
 
11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .netHamza SAID
 
Modèles de données et langages de description ouverts 4 - 2021-2022
Modèles de données et langages de description ouverts   4 - 2021-2022Modèles de données et langages de description ouverts   4 - 2021-2022
Modèles de données et langages de description ouverts 4 - 2021-2022François-Xavier Boffy
 

Similaire à Difference Between DOM and SAX parser in java with examples (20)

Xml
XmlXml
Xml
 
Présentation de stage
Présentation de stagePrésentation de stage
Présentation de stage
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 
L’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacketL’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacket
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)
 
HTML5 en projet
HTML5 en projetHTML5 en projet
HTML5 en projet
 
1- XML généralités technologies xml1.pdf
1- XML généralités technologies xml1.pdf1- XML généralités technologies xml1.pdf
1- XML généralités technologies xml1.pdf
 
Room ou Realm : Quelle base de données pour vos applications Android ?
Room ou Realm : Quelle base de données pour vos applications Android ?Room ou Realm : Quelle base de données pour vos applications Android ?
Room ou Realm : Quelle base de données pour vos applications Android ?
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven Design
 
Presentation forum php 2010
Presentation forum php 2010Presentation forum php 2010
Presentation forum php 2010
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.ppt
 
Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5
 
lecteur flux d'information RSS (feed reader )
lecteur flux d'information RSS (feed reader )lecteur flux d'information RSS (feed reader )
lecteur flux d'information RSS (feed reader )
 
Les nouveautés d'HTML 5
Les nouveautés d'HTML 5Les nouveautés d'HTML 5
Les nouveautés d'HTML 5
 
Infrastructure - Monitoring - Cacti
Infrastructure - Monitoring - CactiInfrastructure - Monitoring - Cacti
Infrastructure - Monitoring - Cacti
 
Big data architectures
Big data architecturesBig data architectures
Big data architectures
 
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
 
11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net
 
Modèles de données et langages de description ouverts 4 - 2021-2022
Modèles de données et langages de description ouverts   4 - 2021-2022Modèles de données et langages de description ouverts   4 - 2021-2022
Modèles de données et langages de description ouverts 4 - 2021-2022
 
JasperReport
JasperReportJasperReport
JasperReport
 

Dernier

Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024frizzole
 
Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2JeanLucHusson
 
Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionslaetitiachassagne
 
Hachour_cours_Crea-Innovation_2019-VF.pdf
Hachour_cours_Crea-Innovation_2019-VF.pdfHachour_cours_Crea-Innovation_2019-VF.pdf
Hachour_cours_Crea-Innovation_2019-VF.pdfHakim HACHOUR
 
La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniquessuser4dbdf2
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFEAhmam Abderrahmane
 
Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementM2i Formation
 

Dernier (8)

Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024
 
Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2
 
Echos N102 newsletter community libraries
Echos N102 newsletter community librariesEchos N102 newsletter community libraries
Echos N102 newsletter community libraries
 
Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositions
 
Hachour_cours_Crea-Innovation_2019-VF.pdf
Hachour_cours_Crea-Innovation_2019-VF.pdfHachour_cours_Crea-Innovation_2019-VF.pdf
Hachour_cours_Crea-Innovation_2019-VF.pdf
 
La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin technique
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFE
 
Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changement
 

Difference Between DOM and SAX parser in java with examples

  • 1. Manipulation des fichiers XML avec les API Java : DOM et SAX L’Agence Nationale de Réglementation des Télécommunications L'Institut National des Postes et Télécommunications Réalisé par : Said BENAISSA Mohamed BOURRICH
  • 2. plan • introduction • Notion de parseur • Parseur SAX • Parseur DOM • Applications • conclusion 13/12/2013 projet xml DOM et SAX 2
  • 4. Notion de parseur Parseur SAX Applications DOM SAX utilise les événements pour analyser et exploiter les documents au format XML 13/12/2013 Parseur DOM consiste à la construction d'un modèle objet en mémoire projet xml DOM et SAX 4
  • 5. Notion de parseur Parseur SAX Parseur DOM Applications les avantages de SAX • peu gourmand en ressources mémoire • rapide • principes faciles à mettre en œuvre • permet de ne traiter que les données utiles les inconvénients de SAX • traite les données séquentiellement • un peu plus difficile à programmer, • sauvegarder les informations pour les traiter 13/12/2013 projet xml DOM et SAX 5
  • 6. Notion de parseur Parseur SAX Parseur DOM Applications les avantages de DOM • parcours libre de l'arbre • possibilité de modifier la structure et le contenu de l'arbre les inconvénients de DOM • gourmand en mémoire • doit traiter tout le document avant d'exploiter les résultats 13/12/2013 projet xml DOM et SAX 6
  • 7. Les implémentations du W3C Notion de parseur 13/12/2013 Parseur SAX Parseur DOM Applications Xerces, implémentation de SAX et DOM de l’ASF (Apache Software Fondation) JDom, qui est une implémentation alternative Dom4J, qui implémente également SAX, DOM et XSL projet xml DOM et SAX 7
  • 8. Notion de parseur Parseur SAX Parseur DOM Applications Java API for XML Processing: JAXP API indépendante de tout fournisseur Unification des approches SAX & DOM Packages : Exceptions : javax.xml.parsers javax.xml.transform FactoryConfigurationError org.w3c.dom ParserConfigurationException org.xml.sax 13/12/2013 projet xml DOM et SAX 8
  • 9. Notion de parseur Parseur SAX Parseur DOM Applications Gestion du contenu :ContentHandler Gestion des erreurs :ErrorHandler Lire le document et reconnaitre les structures (balise,attribut) Gestions de la DTD : DTDHandler Gestion des entités : EntityResolver Les 4 interfaces sont implémentées par : DefaultHandler 13/12/2013 projet xml DOM et SAX 9
  • 10. Gestion des contenus:ContentHandler Notion de parseur 13/12/2013 Parseur SAX Parseur DOM Applications startDocument();endDocument() startElement(String uri, String sName, String qName, Attributes atts) characters(char[] ch,int start,int length) projet xml DOM et SAX 10
  • 11. Notion de parseur Parseur SAX Balise ouvrante endElement() Parseur DOM production d’un événement <contact id="3"> <nom> nom </nom> </contact> production d’un événement Characteres() 13/12/2013 production d’un événement projet xml DOM et SAX Applications startElement() un tableau associatif pour les attributs Chine de caractères Chaine de caractères 11
  • 12. Gestion des erreurs : errorHandler Notion de parseur 13/12/2013 Parseur SAX Parseur DOM Applications les erreurs simples : error() les erreurs fatales : fatalError() les alertes : warning() projet xml DOM et SAX 12
  • 13. Notion de parseur Parseur SAX Parseur DOM Applications Autres interfaces : Gestion de la DTD Données lexicales 13/12/2013 • EntityResolver :gestion des entités • LexicalHandler : avoir accès aux données de type DTD et CDATA projet xml DOM et SAX 13
  • 14. Notion de parseur Parseur SAX Parseur DOM Applications Ce qui donne un document Créer un document Builder instence DocumentBuilder Factory 13/12/2013 projet xml DOM et SAX 14
  • 15. Notion de parseur Parseur SAX Parseur DOM Applications Les interfaces du package org.w3c.dom: 13/12/2013 projet xml DOM et SAX 15
  • 16. Notion de parseur Parseur SAX Parseur DOM Applications La classe : Node Constantes : Element_Node=1; pour typer le nœud courant getLocalName(index), getNameSpaceURI(), getNodeName() getAttributes(), hasAttributes(). getNodeName(), getNodeType(), getNodeValue(),setNodeVa lue(). Node getFirstChild(), removeChild(Node),replaceChild(Node new, Node old), 13/12/2013 projet xml DOM et SAX 16
  • 17. Notion de parseur Parseur SAX Parseur DOM Applications Parcoure d’un arbre 13/12/2013 projet xml DOM et SAX 17
  • 18. Notion de parseur Parseur SAX Parseur DOM Applications Modification d’un arbre 13/12/2013 projet xml DOM et SAX 18
  • 19. Notion de parseur Parseur SAX Parseur DOM Applications La classe : Element getTagName() getElementsByTagName() getAttribute(), getAttributeNode() removeAttribute(String), removeAttributeNode(Attr) 13/12/2013 projet xml DOM et SAX 19
  • 20. Notion de parseur Parseur SAX Parseur DOM Applications Les autres classes La classe Attr : getName() , getValue(), setValue(String) La classe Entity : getNotationName() La classe Document : getDocumentElement() , getElementsByTagName(String) La classe Comment La classe NodeListe : fournir une liste ordonnée : NodeList fils = n.getChildNodes(); 13/12/2013 projet xml DOM et SAX 20
  • 21. Notion de parseur Parseur SAX Parseur DOM Applications Validation d’un document xml Gestion d’un emploi du temps 13/12/2013 projet xml DOM et SAX 21
  • 22. Notion de parseur Parseur SAX Parseur DOM Applications Validation d’un document xml Méthode de validation par DOM • DF.setValidating(true); • DF.setAttribute(JAXP_SCHEMA_LANGUAGE,W3C_XML_SCHEMA); • DF.setAttribute(JAXP_SCHEMA_SOURCE,”fichier.xsd”) ; Méthode de validation par SAX • SF.setValidating(true); • SP = SF.newSAXParser(); • SP.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA); • SP.setProperty(JAXP_SCHEMA_SOURCE,”fichier.xsd”); 13/12/2013 projet xml DOM et SAX 22
  • 23. Notion de parseur Parseur SAX Parseur DOM Applications Validation d’un document xml 13/12/2013 projet xml DOM et SAX 23
  • 24. Notion de parseur Parseur SAX Parseur DOM Applications Validation d’un document xml 13/12/2013 projet xml DOM et SAX 24
  • 25. Notion de parseur Parseur SAX Parseur DOM Applications gestion d’un emploi du temps 13/12/2013 projet xml DOM et SAX 25
  • 26. Notion de parseur Parseur SAX Parseur DOM Applications gestion d’un emploi du temps 13/12/2013 projet xml DOM et SAX 26
  • 27. Conclusion Accès au information d’un xml par DOM et SAX SAX est simple et peut gourmande en mémoire mais DOM offre plus de fonctionnalités SAX et DON sont complémentaires Deux applications illustrant l’utilisation de DOM et SAX 13/12/2013 projet xml DOM et SAX 27