Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement...

48
eveloppement Java - XML eveloppement Java - XML Jean-Michel Richer [email protected] http://www.info.univ-angers.fr/pub/richer M1/M2 Informatique 2010-2011 1 / 48

Transcript of Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement...

Page 1: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Developpement Java - XML

Jean-Michel [email protected]

http://www.info.univ-angers.fr/pub/richer

M1/M2 Informatique 2010-2011

1 / 48

Page 2: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Plan

Plan

1 Introduction

2 DOM

3 SAX

4 XPath

5 Application

6 Bibliographie

2 / 48

Page 3: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Plan

XML avec Java

Objectifs

• se familiariser avec le traitement des fichiers XML en Java

• utilisation avec DOM

• utilisation avec SAX

• utilisation de XPath

3 / 48

Page 4: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Introduction

Introduction

Introduction

4 / 48

Page 5: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Introduction

Rappel XML

XML (eXtensible Markup Language)

• standard W3C pour representation des donnees dans desdocuments balises

• definition structur ee de l’information (syntaxe +semantique)

• representation arborescente

• possibilite de definir une grammaire (Document TypeDefinition) : validation

5 / 48

Page 6: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Introduction

JAXP

JAXP (Java API for XML Processing)

capacite a lire et valider les documents XML, formee de troiscomposants :

• DOM (Document Object Model) : tree-based

• SAX (Simple API for XML) : event-based

• StAX (Streaming API for XML) (entre DOM et SAX)

http://jaxp.java.net

6 / 48

Page 7: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Introduction

StAX

StAX (Streaming API for XML)

entre DOM et SAX

• peu gourmand en memoire

• acces sequentiel aux donnees : mais contrairement a SAXon indique quel est le prochain element a traiter

• ecriture de fichiers XML

• StAX ne sera pas traite dans ce document

7 / 48

Page 8: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

DOM

DOM

DOM

8 / 48

Page 9: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

DOM

DOM

DOM (Document Object Model)

• API permettant d’acceder au contenu d’un document XMLsous la forme d’une structure arborescente

• chargement complet du document XML

• reserve a de petits fichiers et lecture lineaire

9 / 48

Page 10: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

DOM

DOM et Java

DOM et Java• se referer au package org.w3c.dom

• le parser est issu de javax.xml.parsers.DocumentBuilder

• obtenu depuis javax.xml.parsers.DocumentBuilderFactory

10 / 48

Page 11: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

DOM

Fichier exemple

Exemple de travail

1 <?xml version="1.0" encoding="UTF-8"?>2 <persons >

3 <person id="1">4 <first-name >Donald</first-name >

5 <last-name >Duck</last-name >

6 <date-of-birth >01-01-1970</date-of-birth >

7 <salary >1000.0</salary >

8 </person >

9 <person id="2">10 <first-name >Picsou</first-name >

11 <last-name >Duck</last-name >

12 <date-of-birth >02-01-1960</date-of-birth >

13 <salary >120000.0</salary >

14 </person >

15 <person id="3">16 <first-name >Mickey</first-name >

17 <last-name >Mouse</last-name >

18 <date-of-birth >01-01-1980</date-of-birth >

19 <salary >3000.20</salary >

20 </person >

21 </persons >

11 / 48

Page 12: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

DOM

DOM creation du parser

Exemple

1 // ouverture d’un document XML sous DOM2 File fXmlFile = new File (fileName);3 DocumentBuilderFactory dbFactory = DocumentBuilderFactory .newInstance();4 // use DTD validation5 dbFactory.setValidating(true);67 DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();8 // report Errors if DTD validation is On9 // note: ErrorHandler must be defined

10 dBuilder.setErrorHandler(new ErrorHandler ());1112 Document doc = dBuilder.parse(fXmlFile);13 doc.getDocumentElement().normalize();

12 / 48

Page 13: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

DOM

DOM lecture <tag>value</tag>

lecture <tag>value</tag>

1 NodeList nList;2 // Obtain all nodes for last name3 nList = doc.getElementsByTagName("last-name");45 // treat each node6 for (int i = 0; i < nList.getLength(); i++) {7 Node nNode = nList.item(i);8 if (nNode.getNodeType() == Node.ELEMENT NODE) {9 nNode.getTextContent().trim());

10 }11 }1213

13 / 48

Page 14: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

DOM

DOM lecture <tag attr="value" />

lecture <tag attr="value" />

1 NodeList nList;2 // get all nodes person3 nList = doc.getElementsByTagName("person");4 // treat each node5 for (int i = 0; i < nList.getLength(); i++) {6 Node nNode = nList.item(i);7 if (nNode.getNodeType() == Node.ELEMENT NODE) {8 Element eElement = (Element ) nNode;9 // retrieve attribute id

10 String id=eElement.getAttribute("id").trim();11 // note : attribute nationality is not defined in persons.xml12 // so getAttribute will return an empty String13 String nationality=eElement.getAttribute("nationality").trim();14 if (nationality.isEmpty()) {15 nationality="french";16 }17 }18 }

attribut inexistant : chaıne vide !

14 / 48

Page 15: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

SAX

SAX

SAX

15 / 48

Page 16: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

SAX

SAX

SAX (Simple API for XML)

• API permettant d’acceder au contenu d’un document XMLde maniere evenementielle (≃ yacc)

• chargement partiel du document XML

• reserve a de gros fichiers et lecture non lineaire

16 / 48

Page 17: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

SAX

SAX Handler

SAX Handler• definir une classe SAXReader qui herite de

org.xml.sax.helpers.DefaultHandler

• implanter les methodes de l’interface ContentHandler

17 / 48

Page 18: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

SAX

methodes de DefaultHandler

methodes de DefaultHandler

ce sont celles de ContentHandler , pour les principales :

• startDocument

• startElement

• characters

• endElement

• endDocument

voir egalement les autres methodes pour les documents XMLplus complexes

18 / 48

Page 19: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

SAX

methode characters

methode characters

elle permet de lire une chaıne de caracteres a l’interieur d’unebalise :

<tag>value</tag>

ici, on recuperera : value

19 / 48

Page 20: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

SAX

methode startElement

methode startElement

elle permet de traiter les attributs :

<tag attr="vattr">...</tag>

en verifiant quelle est la valeur de la balise tag

20 / 48

Page 21: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

SAX

methode endElement

methode endElement

elle permet de traiter :

<tag>value</tag>

en verifiant quelle est la valeur de la balise tag

21 / 48

Page 22: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

SAX

methodes start/endElement

lecture <tag attr="vattr">value</tag>

il faut combiner les deux methodes

• startElement : pour lire les attributs et creer unestructure de donnees

• puis endElement pour lire value et l’affecter a lastructure de donnees

22 / 48

Page 23: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

SAX

SAX creation parser

Exemple

1 import javax.xml.parsers.*;2 import org.xml.sax.*;3 import org.xml.sax.helpers.*;45 public class SAXReader extends DefaultHandler {67 protected String text;89 public SAXReader() throws Exception {

10 super ();11 }1213 public void read(String fileName) {14 try {15 XMLReader parser = XMLReaderFactory .createXMLReader();16 parser.setContentHandler(this );17 parser.setFeature("http://xml.org/sax/features/validation", true);18 parser.parse(fileName);19 } catch (Exception e) {20 System .err.println(e.getMessage());21 }22 }2324 public void characters(char[] ch, int start, int length)25 throws SAXException {26 text = new String (ch, start, length);27 }28 23 / 48

Page 24: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

SAX

SAX lecture

lecture <tag>value</tag>

1 // read <tag>value</tag>2 public void endElement(String uri, String localName, String qName)3 throws SAXException {45 if (localName.equals("tag")) {67 String value = text.trim();89 }

10 }11

24 / 48

Page 25: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

SAX

SAX lecture

lecture <tag attr="value" />

1 // read <tag attr=”vattr” />2 public void startElement(String uri, String localName, String qName,3 Attributes atts) throws SAXException {45 if (localName.equals("tag")) {67 String vattr = atts.getValue("attr").trim();89 // note : be careful because atts.getValue will return null

10 // if attribute is not present11 if (vattr==null) {12 vattr="";13 }14 }1516 }

attribut inexistant : null !

25 / 48

Page 26: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

XPath

XPath

26 / 48

Page 27: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

XPath

XPath (XML Path Language)

• est a XML ce que SQL est aux SGBD-R

• langage de selection de balises / attributs

27 / 48

Page 28: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

Sans XPath

Sans XPath• avec DOM, utiliser :

• getElementsByTagName• getElementById

• avec SAX :• startElement• endElement

28 / 48

Page 29: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

Librairies XPath

Librairies• Saxon 6.5.x (XPath 2.0)

• Xalan-J Apache (XPath 1.0)

• Jaxen http ://jaxen.org/

• depuis J2SE 5.0 (Tiger), API standard javax.xml.xpath(XPath 1.0)

29 / 48

Page 30: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

Utilitaires sous Ubuntu

Sous Ubuntu

installer le package libxml-xpath-perl qui contient lebinaire xpath que l’on peut utiliser depuis le terminal :

• xpath -e "//person/first-name" persons.xml

30 / 48

Page 31: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

Expressions XPath

Selection des noeuds

expression signification/ racine du document//balise tous les noeuds qui correspondent a la balise. noeud courant.. noeud parent@ selection d’attribut

31 / 48

Page 32: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

Exemple Expression XPath

Exemple

• /person/first-name : tous les noeuds prenoms despersonnes

• //first-name : tous les noeuds prenoms

• //first-name/.. : tous les noeuds person

• //@id : tous les noeuds qui contiennent un attribut id

32 / 48

Page 33: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

Predicats XPath

Selection specifique //person[...]

predicat signification1 la premiere personnelast() la derniere personnelast()-1 l’avant-derniere personneposition()<3 les 2 premieres personnes@id=2 la personne d’identifiant egal a 2salary > 3000 les personnes de salaire > 3000

33 / 48

Page 34: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

Les fonctions XPath

Fonctions• nombres : +, -, *, div, mod, sum, ceiling, floor, round

• booleens : true, false, not

• chaınes : concat, substring, translate, normalize-space,string-length, contains, starts-with

• noeuds : count, position, last

34 / 48

Page 35: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

Exemple fonction XPath

Exemple

• count(//person) : nombre de personnes

• sum(//person/salary) div count(//person) :moyenne des salaires

• //person[ not(number(salary) >(preceding-sibling::person/salary |following-sibling::person/salary)) ] :personne de salaire minimum

35 / 48

Page 36: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

Selection de plusieurs chemins

Selection de chemins

On utilise | pour separer les chemins :

//person[salary > 3000] | //first-name

: donnera 3 noeuds first-name et deux noeuds person

36 / 48

Page 37: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

XPath et DOM

Avec DOM

1 // doc is a DOM Document2 XPathFactory pathFactory=XPathFactory .newInstance();3 XPath xpath = pathFactory.newXPath();4 XPathExpression expr = xpath.compile("//person");56 // DOM specific7 NodeList nList = (NodeList )expr.evaluate(doc,XPathConstants .NODESET);89 for (int i = 0; i < nList.getLength(); i++) {

10 Node nNode = nList.item(i);11 if (nNode.getNodeType() == Node.ELEMENT NODE) {12 // your code here13 }14 }

37 / 48

Page 38: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

XPath et SAX

Avec SAX

1 // fileName is a String2 File file=new File (fileName);3 InputSource source = new InputSource (new FileInputStream (file));4 XPathFactory fabrique = XPathFactory .newInstance();5 XPath xpath = fabrique.newXPath();6 XPathExpression expr = xpath.compile("//person");78 // SAX specific9 NodeList nList = (NodeList )expr.evaluate(source, XPathConstants .NODESET);

1011 for (int i = 0; i < nList.getLength(); i++) {12 Node nNode = nList.item(i);13 if (nNode.getNodeType() == Node.ELEMENT NODE) {14 // your code here15 }16 }

38 / 48

Page 39: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

XPath

XPathExpression.evaluate

XPathExpression.evaluate(source, returnType)

evalue l’expression XPath en fonction du contexte

• source : InputSource• returnType : QName, un parmi :

• NODE, NODESET• NUMBER, BOOLEAN, STRING

39 / 48

Page 40: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Application

Application

Application

40 / 48

Page 41: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Application

Projet

projet

creer un projet Java standard sous Eclipse et mettre en place lalecture d’un graphe oriente pondere au format XML avec :

• DOM

• SAX

mettre en place des tests param etriques pour verifierl’integrite des donnees

41 / 48

Page 42: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Application

Projet

Classes de base : package model

creer les classes suivantes pour representer un graphe :

• Vertex (String name)

• Edge (Vertex initial, Vertex final, int cost)

• Graph (ArrayList<Vertex> vertices, ArrayList<Edge>edges)

42 / 48

Page 43: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Application

Format de fichier

Exemple de fichier graph.xml

1 <?xml version="1.0" encoding="UTF-8"?>2 <!DOCTYPE graph SYSTEM "graph.dtd">3 <graph >

4 <vertices >

5 <vertex >V1</vertex >

6 <vertex >V2</vertex >

7 <vertex >V3</vertex >

8 </vertices >

9 <edges>10 <edge initial="V1" final=" V2 " cost="4"/>11 <edge initial="V1" final=" V3 " />12 </edges>13 </graph >

43 / 48

Page 44: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Application

Format de fichier

DTD pour un graphe

1 <?xml version="1.0" encoding="UTF-8"?>2 <!ELEMENT graph (vertices, edges) >

3 <!ELEMENT vertices (vertex+) >

4 <!ELEMENT vertex (#PCDATA) >

5 <!ELEMENT edges (edge*) >

6 <!ELEMENT edge EMPTY >

7 <!ATTLIST edge cost CDATA #IMPLIED>8 <!ATTLIST edge initial CDATA #REQUIRED>9 <!ATTLIST edge final CDATA #REQUIRED>

10

44 / 48

Page 45: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Application

Projet

Classes du package io

creer les classes suivantes pour lire un graphe :

• DOMGraphReader

• SAXGraphReader

ces classes implantent la methode :Graph read(String fileName)

qui retourne un graphe ou null en cas d’erreur

45 / 48

Page 46: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Application

Projet

Classe du package tests

creer la classe GraphReaderTest pour tester les classes dupackage io :

• testDOMReader()

• testSAXReader()

utiliser les tests parametriques pour tester plusieurs graphes

46 / 48

Page 47: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Bibliographie

Bibliographie

Bibliographie

47 / 48

Page 48: Developpement Java - XML´ - info.univ-angers.frricher/ens/m2cdsii/crs_xml.pdf · Developpement Java - XML´ Plan XML avec Java Objectifs • se familiariser avec le traitement des

Developpement Java - XML

Bibliographie

Bibliographie, sitographie

• Processing XML with Java(TM) : A Guide to SAX, DOM,JDOM, JAXP, and TrAX, Elliotte Rusty Harold,Addison-Wesley , 2002

• Murach’s Java SE 6, Joel Murach, Andrea Steelman,Murach , 2007

• XPath 2.0 Programmer’s Reference, Michael Kay, Wrox ,2004

• www.developpez.com

48 / 48