DOM / SAX / JAXP. Module développement/ Conception XML. DOM / SAX Module XML / ESIAL 3A

Dimension: px
Commencer à balayer dès la page:

Download "DOM / SAX / JAXP. Module développement/ Conception XML. DOM / SAX Module XML / ESIAL 3A"

Transcription

1 / JAXP Module développement/ Conception XML 1

2 Plan Général parser DOM SAX JAXP 2

3 Présentation générale Présentation générale DTD XML XML Conception Données Données XSL Amphi précédents XML : syntaxe DTD : spécifier une grammaire XSL : spécifier des traitements Comment faire des applications avec XML? Tirer parti des spécificités de XML Traitement 3

4 Présentation générale Étapes d une application XML standard Deux étapes essentielles Analyse (parsing) Récupérer les données à partir du fichier XML Traitements des données Manipulation : Accès, Modification, Sauvegarde Autre traitements : affichage, etc Utilisateur Interface Web Analyse traitement Données 4

5 Présentation générale Composants d une application XML standard Composants d une application XML standard: Sources Données dans un fichier XML Analyse Un parser pour analyser les données du fichier XML Traitement Des objets pour stocker les données Des méthodes pour les manipuler 5

6 Présentation générale Composants d une application XML standard Composants d une application XML standard: Sources Données dans un fichier XML Analyse Un parser pour analyser les données du fichier XML Traitement Des objets pour stocker les données Des méthodes pour les manipuler Utilisateur Interface Web analyse Application traitement Données Parser Modèle 6

7 Présentation générale Contenu du cours Utilisateur Interface Web analyse Application traitement Données Parser Modèle Comment Récupérer et Stocker de l information de documents XML Manipuler des documents XML Créer de nouveaux documents XML 7

8 Plan Général parser DOM SAX JAXP 8

9 Parser Parser XML (1) Pourquoi un parser? Il existe une infinité de modèle de données XML pour une infinité d'applications Toutes les applications devront implémenter la lecture de données XML : A partir de la même syntaxe (document bien formé) Des grammaires différentes mais représentées dans la DTD Résoudre le problème de l indexation, de stockage, et de manipulation Qu'est-ce qu'un parser? Un parser serait donc un petit module de programme, dont le seul objectif serait de découper un flux d'entrée en un ensemble de " mots" (token) qui seront ensuite proposés à d'autres applications. Un parser n'est donc pas un programme en soi : il est associé à un module de traitement et c'est la nature de ce module qui prime. La spécification XML parle alors de "processeur XML" (parser et traitement). 9

10 Parser Parser XML (2) Tâches du parser XML : Analyse syntaxique Le contrôle de conformité de la syntaxe par rapport à la norme Tâches du processeur XML : Lire et analyser la structure d'un document XML Décomposition des documents éléments, attributs, texte, entités, instructions de traitement, commentaires, Vérification Documents bien-formés (syntaxiquement corrects) Validation (DTD, schéma) Éventuellement, accéder au contenu de la DTD ou du schéma Pour l'instant, interface propriétaire! Représentation interne des informations : DOM 10

11 Parser Processeurs XML Interface des parsers est propriétaire Propre au parser utilisé Fonctionnalités fines mais spécifiques et nettement moins portables 2 types Processeurs XML Processeur DOM Modèle objet Document Object Model (DOM 1, 2 et 3) Processeur SAX Interface évènementielle Simple API for XML (SAX 1 et 2) 11

12 Parser JAXP Autres modèles de parsing et d'api Java API for XML Parsing Une initiative de Sun pour "normaliser" la déclaration du parser XML à utiliser et uniformiser les paramètres standards JDOM Java + XML Définir des classes JAVA pour manipuler des fichiers XML 12

13 Parser Catégories de parsers XML On peut classifier les parsers sous plusieurs catégories : Les validant vs. non-validant (par rapport DTD) Les parsers supportant le modèle DOM (tree-based) Les parsers supportant l'interface SAX (event-based) Les parsers écrits avec différents langages Java, C/C++, Perl, Python, etc. C# Les parsers: Xerces (apache), JAXP (Sun), Oracle XML Parser, Microsoft XML Parser (msxml), XML4J (IBM), etc Voir les benchmarks! 13

14 Plan Général parser DOM SAX JAXP 14

15 DOM DOM Recommandation Utilisation Package DOM Parser DOM Lecture de document Manipulation Interface Node Interface Document Sauvegarde 15

16 La recommandation DOM du W3C Document Object Model C est une recommandation du W3C ("norme") Elle spécifie une API orientée objet permettant au programmeur d application d écrire des fonctions de création, de modification et de consultation des éléments constitutifs d un document XML ou HTML. C est un modèle d objets représentant un document : générique une interface de programmation pour les documents HTML ou XML DOM core, DOM HTML Représentation arborescente d objets : Attributs et méthodes permettent la manipulation de la structure logique et l information contenue dans ce document Indépendant des plates-formes, des langages de programmation et de script 16

17 Qu est ce que DOM? Représentation en mémoire d'un arbre de nœuds contenant la structure et les données contenues dans le document XML Lecture d'un document XML existant XML Modèle Création d un modèle Utilisant un parser Modèle Parser Données 17

18 Qu est ce que DOM? Représentation en mémoire d'un arbre de nœuds contenant la structure et les données contenues dans le document XML Lecture d'un document XML existant XML Modèle Création d un modèle Utilisant un parser Modifications en utilisant l'api DOM Modèle Modèle Manipulation de modèle Modèle Parser Modèle Parser Données Données 18

19 Qu est ce que DOM? Représentation en mémoire d'un arbre de nœuds contenant la structure et les données contenues dans le document XML Lecture d'un document XML existant XML Modèle Création d un modèle Utilisant un parser Modifications en utilisant l'api DOM Modèle Modèle Manipulation de modèle Création d'un nouveau document XML Modèle XML Sauvegarde de document XML Modèle Parser Modèle Parser Modèle Parser Données Données Données 19

20 Intérêts de DOM DOM se situe entre le parser et l'application Indépendance (ou presque) de l'application par rapport au parser Modèle générique de document API indépendante des plate-formes et langages 20

21 DOM : organisation des recommandations La spécification est organisée en différents niveaux (3 niveaux) Chaque niveau possède un CORE Qui est générique, pour n'importe quel document XML Qui a certaines caractéristiques dépendantes du niveau Que doit supporter toute implémentation de DOM. Des modules Correspond à des interfaces spécifiques, pour des types de documents donnés. Ces interfaces sont des extensions des interfaces Core DOM XML : avec specificité entité, CDATA DOM HTML DOM CSS 21

22 DOM : core et extensions Le CORE de DOM définit les éléments ci-après : ce qu'est une implémentation DOM et la nature des erreurs reconnues les interfaces de gestion d'un document XML pour Y accéder (fonction d'accès à des éléments, attributs, etc.) le construire (fonctions de création de documents, d'éléments, d'attributs, etc.) Les extensions, qui sont optionnelles dans les implémentations, ajoutent pour XML: les notions de sections CDATA et la gestion des entités externes (niveau 1), les notions de DTD, de processing instructions, de notation (niveau 2). 22

23 DOM Niveau 1 (Oct 1998) Objectif : gestion XML et HTML Définit un modèle orienté objet pour représenter des documents structurés (XML, HTML) Document, Element, Attr, Text,, Node CORE: Accéder et construire document Extension XML et HTML Objets nouveaux comme les frames, les images ou les ancres. Les fonctionnalités de manipulation sont minimes, celles du core étant a priori souvent suffisantes. 23

24 DOM Niveau 2 (Nov 2000) CORE : Ajout des espaces de nommage (ajouter NS à la fin des méthodes (éléments par ex)) Extensions : Des fonctionnalités de manipulation des CSS, les feuilles de styles associées aux documents HTML. Des fonctionnalités d'accès à des événements liées à des changements d'état d'un document ou à des actions de l'utilisateur sur un document (Des fonctionnalités de parcours de document XML, avec ou sans filtre Fonctionnalités d'identification de portion de document, basées sur les informations de structure ou sur des contenus quelconques, identifiés par leur ordre séquentiel. 24

25 DOM Niveau 3 (Avr 2004) DOM CORE niveau 3 permet Accés aux modèles de documents Sous la forme de DTD, Schéma ou tout autre formalisme. Chargement et sauvegarde des données Utilisation de filtres 25

26 Utilisation de DOM Vous devez disposer parserxml Compatible DOM JAXP ou Xerces Fichier XML Implémentation DOM Java Possibilité Création Manipulation Sauvegarde? Instancier document Source Manipulation document Sauvegarde document Destination 26

27 import org.w3c.dom.*; Package et API DOM et indépendant du parser sauf : Pour instancier un Document Mais à partir d'une instance de Document, on reste dans du DOM Pour accéder aux nœuds, éléments, attributs, textes, Pour créer de nouveaux nœuds 27

28 Instancier un document DOM Instancier document Manipulation document Sauvegarde document Source Destination 28

29 Lecture de DOM Utilise un parser compatible DOM Document XML Parser XML Transforme le document XML en objets Java. Accès et modification par l'api DOM Objets Ensemble d'objets contenant l'information du document XML, un objet Document. Application Utilisation de l'interface DOM pour accéder aux données du document XML Parser XML & DOM 29

30 Un parser XML DOM Transforme un document XML en une représentation arborescente orientée objet Le document est stocké en mémoire (attention donc!) Permet d'accéder, de naviguer ou de modifier le document Sans manipuler directement le fichier XML! Le parser effectue quelques traitements simples Résout toutes les entités externes par exemple Opération de validation si la DTD/schéma est présent 30

31 Étapes On dispose d un document XML Trois étapes Spécifier un parser DOM Créer un objet document Charger le contenu du fichier XML dans le document Ces étapes dépendent du parser utilisé 31

32 Créer un document (exemple JAXP) import org.w3c.dom.*; //package DOM import javax.xml.parsers.*; //jaxp import java.io.*; try { // Code propre à JAXP de Sun DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newdocumentbuilder (); Document doc = db.parse(new File("annuaire.xml")); Création documentbuilder Création du document // A partir d'ici, c'est du DOM } cash(exception e) { } 32

33 Créer un document (exemple Xerces) import org.w3c.dom.*; //package DOM import java.io.*; try { // Code propre à Xerces org.apache.xerces.parsers.domparser parser= new org.apache.xerces.parsers.domparser (); parser.setfeature(" Création parser parser.parse("annuaire.xml"); Document doc=parser.getdocument(); Création du document // A partir d'ici, c'est du DOM } cash(exception e) { } 33

34 Manipulation On suppose qu on a un document chargé Indépendant du parser Instancier document Manipulation document Sauvegarde document Source Destination Utiliser API DOM Créer un objet Document API DOM différentes interfaces 34

35 DOMImplementation NodeList DOM-core (interfaces API DOM) DocumentFragment Element Node Attr CharacterData Document Text Comment CDATASection DocumentType Notation Entity ProcessingInstruction 35

36 DOM-core : interface Node Interface fondamentale Node : tout est nœud ou presque Utilisation: On ne manipule que des nœuds On ne crée pas de nœuds Mais une interface héritée Éléments, Attributs, Commentaires, etc Remarque: Tout nœud est rattaché à un document (propriété ownerdocument) Mais n est pas forcément dans l arbre du document (ex création) 36

37 DOM-core : Node (propriétés) Méthodes de l'interface Node getnodetype( ): indique une valeur caractérisant le type du noeud (ELEMENT_NODE, ATTRIBUTE_NODE, TEXT_NODE, ) getnodename( ): nom de l élément (lecture seule) Null si Text Nom de la balise ou de l attribut getnodevalue( ) : valeur du nœud Attribut: valeur de l attribut Si élément retourne null getattributes( ) : Retourne nodemap des attributs (seulement si élément) 37

38 Types de nœud Type nodename nodevalue attributes Element tag name null NamedNodeMap Attr attribute name valeur de l'attribut null Text #text contenu null CDATASection #cdata-section contenu null EntityReference nom de l'entité null null Entity nom de l'entité null null ProcessingInstruction cible (target) contenu sauf la cible null Comment #comment contenu du commentaire null Document #document null null DocumentType nom de la DTD null null DocumentFragment #document-fragment null null Notation nom de la notation null null 38

39 Exemple <?xml version="1.0"?> <carnet> <personne> <nom>thomas</nom> <prenom>vincent</prenom> </personne> </carnet> Element Carnet Element Personne Element Nom Text Thomas Element Prenom 39 Text Vincent

40 Exemple Element Carnet Element Personne Element Nom Element Prenom Text Thomas Text Vincent nodetype? nodename? nodevalue? 40

41 Exemple Element Carnet Element Personne Element Nom Element Prenom Text Thomas Text Vincent nodetype ELEMENT_NODE nodename Nom nodevalue null 41

42 Exemple Element Carnet Element Personne Element Nom Element Prenom Text Thomas Text Vincent nodetype? nodename? nodevalue? 42

43 Exemple Element Carnet Element Personne Element Nom Element Prenom Text Thomas Text Vincent nodetype TEXT_NODE nodename "#text" nodevalue "Thomas" 43

44 Node (navigation dans l arbre) Savoir si le nœud à des enfants Boolean haschildnodes() Accéder aux autres éléments Faire des gets (cf transparent suivant) 44

45 DOM-core (navigation dans l arbre) Node ParentNode Node PreviousSibling Node Élément courant NodeList ChildNodes Node FirstChild Node Node NextSibling Node LastChild 45

46 Navigation arbre avec Node (exemple) <?xml version="1.0"?> <carnet> <personne> <nom>thomas</nom> <prenom>vincent</prenom> </personne> </carnet> // part d un Node Obj correspondant à Carnet Element Carnet Element Personne Element Nom //acceder «carnet» Obj.getNodeName(); //acceder «prenom» Node Obj2=(Obj.getLastChild()).getLastChild(); Obj2.getNodeName(); //acceder «Vincent» (Obj2.getLastChild()).getNodeValue(); Element Prenom Text Thomas Text Vincent 46

47 DOM-core : Node (manipulation) Ajouter un nœud en tant que dernier fils appenchild(node nouvel_objet) Ajouter nœud insertbefore(node nouvel_objet,node objet_fils) Retirer un nœud removechild(node objet_fils) Remplacer un nœud replacechild(node nouvel_objet,node objet_fils) Cloner un nœud CloneNode(boolean deep) 47

48 Interface Node: Clone Node Deux manières distinctes de cloner Superficielle Seul nœud courant Et les attributs (si c'est un élément) En profondeur récursivement "false" (superficiel) clonenode() "true" (en profondeur) 48

49 DOM-core : interface document L interface document représente l ensemble du document C est aussi un Node Le nœud document est la racine du document Et non pas l élément racine!! Interface de construction Utiliser des méthodes de document pour créer des nœuds Les nœuds sont reliés au document (même s ils ne sont pas dans l arbre) Ajouter ces nœuds à l arbre 49

50 Méthodes de construction createnodetype() Précise NodeType Element, Attribut, TextNode, DOM-core : document Méthodes d accès Node getdocumentelement() : renvoie l élément racine NodeList getelemenstbytagname(string name) Accès aux élément à partir des tags 50

51 Navigation arbre avec document <?xml version="1.0"?> <carnet> <personne> <nom>thomas</nom> <prenom>vincent</prenom> </personne> </carnet> Element Carnet Element Personne Element Nom // part d un Document Doc //acceder «carnet» Node Obj=Doc.getDocumentElement(); Obj.getNodeName(); Element Prenom Text Thomas Text Vincent 51

52 DOM-Core (document from scratch) Démarche à suivre: 1. Créer un document ObjDoc = new Document(); 2. Créer des éléments à partir du document ObjElement=ObjDoc.createElement("racine"); SsElement=ObjDoc.createElement("elem"); 3. Insérer les éléments dans l arbre ObjDoc.appenChild(ObjElement); ObjElement.appenChild(SsElement); 52

53 DOM-Core (document from scratch) Attention Les nœuds créés appartiennent au document Les nœuds créés appartiennent au document Insérer un Nœud de Doc1 sur l arbre de Doc2 Génére DOMException utiliser Node importnode(node noeud, boolean deep) de document // part d un Document Doc1 et Doc2 Element El1=doc1.getDocumentElement(); Element El2=doc2.getDocumentElement(); //génère une exception El1.appenChild(El2); // part d un Document Doc1 et Doc2 Element El1=doc1.getDocumentElement(); Element El2=doc2.getDocumentElement(); //accepté Node node=doc1.importnode(el2, true) El1.appenChild(El2); 53

54 DOM-core : Element (manipulation) NamedNodeMap getattributes() String getattribute (String name) Retourne la valeur de l attribut Attr getattribute (String name) Retourne le noeud de l attribut String gettagname() Retourne le nom de l élément void removeattribute(string name) Retire l attribut spécifié Idem avec removeattributenode(attr node) void setattribute(string name, String value) Ajoute un attribut Idem avec setattributenode(attr node) 54

55 DOM-core : Attributs (manipulation) Les attributs sont des Node eux aussi MAIS Ils ne sont pas connectés à l arbre par dépendance hiérarchique Pour un node élément, getchildnodes( ) ne contient pas d attributs, il faut utiliser getattributes( ) de node 55

56 DOM-core : DocumentFragment Un fragment de document XML peut être stocké temporairement dans un nœud de type DocumentFragment Objet léger, par exemple pour les copier-coller Attaché sur un autre nœud, il se détruit automatiquement Très utile pour l ajout des enfants dans l arbre Arbre DOM Sous arbre DocumentFragment Nouvel Arbre DOM 56

57 On a un document Sauvegarde d un Document Instancier document Manipulation document Sauvegarde document Source Destination On souhaite l exporter Directement Après transformation XSLT 57

58 Sauvegarde et transformation d un document Pas dans API DOM (sauf niveau 3) Dans JAXP: Java API for XML Parsing Processeurs XSL Utilise DOM (fin amphi : JAXP) Packages javax.xml.transform 58

59 DOM: sauvegarde et transformation (JAXP) Class TransformerFactory : créer des Transformer...(sic) newtransformer() qui produit un nouveau transformer newtransformer(source XML) qui produit un nouveau transformer (possibilité d utiliser XSL) Class Transformer : appliquer des transformations setparameter permet de spécifier des paramètres à la transformations transform(source XmlSource, Result target) effectue la transformation du document source vers le résultat Class Source : Utiliser des StreamSource ou DOMSource Class Result : Utiliser des StreamResult ou DOMResult 59

60 DOM: sauvegarde et transformation (ex) // créer un stream vers xsl StreamSource style_auteur=new StreamSource("transfo.xsl"); 60

61 DOM: sauvegarde et transformation (ex) // créer un stream vers xsl StreamSource style_auteur=new StreamSource("transfo.xsl"); //créer un transformer utilisant XSL TransformerFactory TR=TransformerFactory.newInstance(); Transformer Transfo=TR.newTransformer(style_auteur); 61

62 DOM: sauvegarde et transformation (ex) // créer un stream vers xsl StreamSource style_auteur=new StreamSource("transfo.xsl"); //créer un transformer utilisant XSL TransformerFactory TR=TransformerFactory.newInstance(); Transformer Transfo=TR.newTransformer(style_auteur); //créer la source et la destination //doc désigne un document DOM DOMSource source=new DOMSource(doc); StreamResult=new StreamResult("result.html"); 62

63 DOM: sauvegarde et transformation (ex) // créer un stream vers xsl StreamSource style_auteur=new StreamSource("transfo.xsl"); //créer un transformer utilisant XSL TransformerFactory TR=TransformerFactory.newInstance(); Transformer Transfo=TR.newTransformer(style_auteur); //créer la source et la destination //doc désigne un document DOM DOMSource source=new DOMSource(doc); StreamResult=new StreamResult("result.html"); //appliquer la transformation Transfo.transform(sourceb,resultb); 63

64 On a vu DOM: résumé L API DOM Interface node, document, Comment utiliser cette API sous java Package Pour Charger et analyser un document XML Manipuler ce document Faire des transformations Sauvegarder le document Plus d informations sur: 64

65 SAX Plan Général parser DOM SAX JAXP 65

66 SAX Simple API for XML Interface SAX (1) SAX est une normalisation proposée par des industriels (xml-dev) Standard de fait (1997) Supportée par la majeure partie des parsers XML Une alternative à DOM pour éviter les problèmes de mémoire et la lecture de gros documents XML 66

67 SAX DOM Différence SAX/DOM Utilisateur Application analyse traitement Données Parser Modèle Problème: on charge tout le document en mémoire Avantage: on peut manipuler l'arbre construit SAX Demande analyse Application Gestionnaire événement Données Parser SAX Avantage : On traite au fur et à mesure Probleme: On ne conserve pas l'information 67

68 SAX Interface SAX (2) Principe: SAX est événementiel Une application SAX implémente un ensemble de méthodes correspondant aux évènements du parser Balise ouvrante/fermante... Le parser XML appelle ces méthodes, en passant les paramètres nécessaires un nom pour un élément, un couple nom/valeur pour un attribut, Un parser SAX est uniquement un consommateur de données, il ne garde rien en mémoire 68

69 SAX Architecture générique d'une application SAX Application SAX 2 Modèle objet Java 3 Parser SAX XML -> Java String toxml() Java -> XML 1 4 Document XML Document XML 69

70 SAX Application SAX Avoir un parser XML implémentant SAX Trois étapes pour utiliser SAX Créer un modèle objet interne (comme CD, Livre, ) Créer un parser SAX Créer un ContentHandler Qui traite les événements pour transformer le document XML en objets internes Et éventuellement, un ErrorHandler, DTDHandler et un EntityResolver Créer modèle Objet interne Créer un Parser SAX Créer un ContentHandler 70

71 SAX 1) Créer un modèle objet interne Créer modèle Objet interne Créer un ContentHandler Créer un Parser SAX Votre objet Dans lequel vous récupérerez les informations lors de l analyse 71

72 SAX 2) Créer un ContentHandler Créer modèle Objet interne Créer un ContentHandler Créer un Parser SAX ContentHandler est chargé de traiter les événements Package org.xml.sax.* En JAVA: il suffit implémenter interface ContentHandler Et surcharger certaines méthodes pour répondre aux événements correspondants 72

73 SAX ContentHandler (Réception évènements) Évènement Méthode Début du document Fin du document startdocument() enddocument() Balise ouvrante Balise fermante startelement(string, String local, String qname, Attributes liste) endelement(string) Chaîne de caractères Processing instruction Espaces blancs (problème DTD) characters(char[],int, int) processinginstruction(string,string) ignorablewhitespace(char[],int,int) 73

74 SAX Séquence des évènements <?xml version="1.0"?> <cd id="4"> <titre> Freak on ica </titre> startdocument() startelement("cd",...) startelement("titre",...) characters(char[],start,length) endelement("titre") </cd> endelement("cd") enddocument() 74

75 SAX Remarques Attention Pas de recommandation SAX pour characters Pour les contenus mixtes <cd id="4"> a <b/> c </cd> Récupérer les attributs startelement(string namespaceuri, String localname, String qname, Attributes atts) a pour paramètres Le nom qname de l élément rencontré La liste d attributs liste avec plusieurs methodes getlength() qui renvoie le nombre d attributs getqname(int i) renvoie le nom de l attribut numero i getvalue(int i) renvoie la valeur de l attribut numero i getvalue(string name) renvoie la valeur de l attribut name gettype(int i) revoie le type de l attribut 75

76 SAX DefaultHandler qui affiche les éléments Utiliser une classe DefaultHandler implémentant ContentHandler Pour afficher les noms des éléments rencontrés Public class Lecture extends DefaultHandler { public void startdocument() throws SAXException {System.out.println("debut");} public void enddocument() throws SAXException {System.out.println("fin");} public void startelement(string namespaceuri, String localname, String qname, Attributes atts) throws SAXException { System.out.println("l element est"+qname);} Début document Fin document Début élément } 76

77 SAX Utilisation du handler <?xml version="1.0"?> <cd id="4"> <titre> Freak on ica </titre> startdocument() startelement( ) startelement( ) characters( ) endelement( ) début cd rencontré titre rencontré </cd> endelement( ) enddocument() fin 77

78 SAX 3) Créer un parser SAX Créer modèle Objet interne Créer un ContentHandler Créer un Parser SAX Il faut créer un parser SAX A partir d une librairie En lui fournissant le ContentHandler Possibilité De gérer les exceptions : interface errorhandler D accéder aux déclarations de la dtd: interface DTDHandler De gérer plusieurs entrées De résoudre les liens des entités 78

79 SAX Création du parser SAX Déclarer un parser Obtenir un parser org.xml.sax.xmlreader reader; reader = org.xml.sax.helpers.xmlreaderfactory.createxmlreader(nom); Désigne un parser compatible SAX Par exemple : "com.sun.xml.parser.parser" Associer un ContentHandler reader.setcontenthandler(handler); Handler désigne un ContentHandler Instancié au préalable 79

80 SAX Lier le parser a un fichier XML InputSource : Analogue à un InputStream mais encapsule un flux de lecture sur : un flux d'octets (bytes) un flux de caractères une connexion HTTP un fichier XML local Création InputSource InputSource InputSource source= new source= InputSource(source) new InputSource("nom") Le lier au XMLReader pour parser un fichier Xmlreader.parse(source); 80

81 SAX Interface ErrorHandler Gestion des exceptions Ses Méthodes permettent de personnaliser les messages d erreur dans votre Application SAX error(saxparseexception) : fatalerror(saxparseexception) warning(saxparseexception) Associer au parser parser.seterrorhandler(errorhandler); 81

82 SAX DTDHandler Interface pour des évènements liés à la DTD Notation dans les DTD Notation déclaré dans les DTD Permet de spécifier des formats de fichiers Evenement récupéré par la méthode Void notationdecl(string name,string PublicId,String systemid) Unparsed entity Evenement récupéré par la méthode Void unparsedentity(string name,string PublicId,String systemid,string notationname) 82

83 SAX EntityResolver Permet de modifier la source à traiter Lorsqu'on rencontre des entités exterieure Évènement est récupéré par la méthode resolveentity Celle-ci retourne un nouvel InputSource 83

84 ou SAX? DOM Navigation, parcours du document Documents peu structurés Beaucoup de données Petits documents (< 1Mo) Extraction de fragment Création de nouveau document XML SAX Lecture séquentielle : pas d'accès aléatoire au document Documents très structurés Peu de données Petits et gros documents (de 1ko à 2,5Mo) Sélection Extraction de données Filtrage 84

85 JAXP et JDOM Plan Général parser DOM SAX JAXP et JDOM 85

86 JAXP et JDOM JAXP Java API for XML Parsing JAXP est un ensemble d'apis Java permettant d'effectuer des traitements XML qui inclut SAX (SAX 2.0) DOM (DOM Level 2) la manipulation de transformations XSLT Le but est de : Fournir une couche d abstraction au dessus de SAX ou DOM afin de garantir un effort de standardisation des aspects non couverts par SAX et DOM L origine : L'API est le fruit de travaux de développement communs à Ariba, AOL/Netscape, BEA, Bluestone, Fujitsu, IBM, et Oracle. Téléchargeable gratuitement depuis l'espace de Sun Java Technology and XML (XML Pack). 86

87 JAXP et JDOM Packages JAXP La librairie JAXP utilise plusieurs packages javax.xml.parsers Ensemble de classes pour interfacer des parsers SAX : SAXParser et SAXParserFactory DOM : DocumentBuilder et DocumentBuilderFactory org.w3c.dom Package DOM org.xml.sax et org.xml.sax.helpers Packages SAX 87

88 JAXP et JDOM JAXP Pourquoi utiliser JAXP : DOM ne spécifie pas comment créer un objet parser différent API selon implémentation portabilité du code est affecté. En utilisant DOM, il faut explicitement importer et référencer la classe de l analyseur (org.apache.xerces.parsers.domparser) Si on change de parser problèmes! Avant chaque opération DOM, le document XML a besoin d être analysé (parsé) et un objet doit être créé. Cette opération n est pas standardisée par le W3C! Pas de norme sur l'obtention d'un document JAXP sert donc de couche intermédiaire entre votre application et le(s) parser(s) utilisé(s). Livré en plus avec un parser XML minimal (non validant) 88

89 JAXP et JDOM Cf transparent DOM Cf transparents SAX JAXP comment utiliser? 89

90 JAXP et JDOM DOM: Créer un document (exemple JAXP) import org.w3c.dom.*; //package DOM import javax.xml.parsers.*; //jaxp import java.io.*; try { // Code propre à JAXP de Sun DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newdocumentbuilder (); Document doc = db.parse(new File("annuaire.xml")); Création documentbuilder Création du document // A partir d'ici, c'est du DOM } cash(exception e) { } 90

91 JAXP et JDOM DOM: sauvegarde et transformation (ex) // créer un stream vers xsl StreamSource style_auteur=new StreamSource("transfo.xsl"); //créer un transformer utilisant XSL TransformerFactory TR=TransformerFactory.newInstance(); Transformer Transfo=TR.newTransformer(style_auteur); //créer la source et la destination //doc désigne un document DOM DOMSource source=new DOMSource(doc); StreamResult=new StreamResult("result.html"); //appliquer la transformation Transfo.transform(sourceb,resultb); 91

92 JAXP et JDOM JDOM : le principe Philosophie de JDOM (projet open-source Apache like): Facile à utiliser pour les programmeurs Java Devrait intégrer DOM et SAX Lecture et écriture des documents DOM et les évènements SAX Utilisation des différents parsers DOM ou SAX (utilisation du modèle JAXP) Devrait rester compatible avec les dernières normes de XML Pourquoi ne pas utiliser DOM directement : Occupation élevée de la mémoire Pourquoi ne pas utiliser SAX : Pas de possibilité de modifier les documents, d accéder aléatoirement, ou de générer une sortie physique Java optimalisé (utilisation des Collections Java 2 par exemple) Couvrir 80% des problèmes et laisser 20% aux autres parsers! 92

93 JAXP et JDOM Les classes représentant un document XML et sa construction: Attribute CDATA Comment DocType Document Element EntityRef Namespace ProcessingInstruction (PartialList) (Verifier) (Assorted Exceptions) JDOM : packages Les classes de lecture des documents XML depuis des sources existants : DOMBuilder SAXBuilder Packages d adaptateurs pour obtenir un objet DOM à partir de n importe quel analyseur org.jdom org.jdom.adapters org.jdom.input Les classes pour écrire les documents XML sous plusieurs formes et sorties : org.jdom.output DOMOutputter SAXOutputter XMLOutputter org.jdom.transform 93

94 JAXP et JDOM JDOM vs. DOM : un exemple Création d'un document from scratch en JDOM Document doc = new Document( new Element("rootElement").setText("This is a root element")); Et en DOM? Document mydocument = new org.apache.xerces.dom.documentimpl(); Element root = mydocument.createelement("myrootelement"); Text text = mydocument.createtext( "This is a root element"); // Et on ajoute le tout! root.appendchild(text); mydocument.appendchild(root); 94

Programmation des Applications Réparties. Parsers XML DOM et SAX

Programmation des Applications Réparties. Parsers XML DOM et SAX Programmation des Applications Réparties Parsers XML DOM et SAX Luiz Angelo Steffenel luiz-angelo.steffenel@univ-reims.fr Steffenel Programmation des Applications Réparties Master M1-2007-2008 1 Comment

Plus en détail

<http://cahiers.gutenberg.eu.org/fitem?id=cg_1999 33-34_155_0>

<http://cahiers.gutenberg.eu.org/fitem?id=cg_1999 33-34_155_0> Cahiers GUTenberg GUT LE DOCUMENT OBJECT MODEL (DOM) François Role, Philippe Verdret Cahiers GUTenberg, no 33-34 (1999), p. 155-171. Association

Plus en détail

34. DOM (Document Object Model)

34. DOM (Document Object Model) 34. DOM (Document Object Model) 34.1. DOM DOM est l'acronyme de Document Object Model. C'est une spécification du W3C pour proposer une API qui permet de modéliser, de parcourir et de manipuler un document

Plus en détail

XML et Java 2007. Vue Balisée en XML. Programmation avancée NFP 121. XML pourquoi faire? Structuration des données. Titre Auteur Section Paragraphe

XML et Java 2007. Vue Balisée en XML. Programmation avancée NFP 121. XML pourquoi faire? Structuration des données. Titre Auteur Section Paragraphe Programmation avancée NFP 121 XML et Java 2007 XML pourquoi faire? Structuration des données Titre Auteur Section Paragraphe Paragraphe Paragraphe XML: Des BD aux Services Web Georges Gardarin 1. Introduction

Plus en détail

Document Object Model (DOM)

Document Object Model (DOM) Document Object Model (DOM) Jean-Claude Charr Maître de conférences IUT de Belfort Montbéliard Université de Franche Comté Description générale Définit un standard pour accéder aux documents structurés

Plus en détail

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv> Langage HTML (2 partie) «Je n'ai fait que prendre le principe d - hypertexte et le relier au principe du TCP et du DNS et alors boum! ce fut le World Wide Web!» Tim Berners-Lee

Plus en détail

XML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

XML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million XML, PMML, SOAP Rapport EPITA SCIA Promo 2004 16 janvier 2003 Julien Lemoine Alexandre Thibault Nicolas Wiest-Million i TABLE DES MATIÈRES Table des matières 1 XML 1 1.1 Présentation de XML.................................

Plus en détail

Master d Informatique Corrigé du partiel novembre 2010

Master d Informatique Corrigé du partiel novembre 2010 Universités d Aix-Marseille I & II Technologies XML Master d Informatique Corrigé du partiel novembre 2010 Année 2010-11 Documents autorisés Exercice 1 : Documents XML et Applications XML (4 points) Georges,

Plus en détail

DOM - Document Object Model

DOM - Document Object Model DOM - Document Object Model 1 But de DOM Interfacer les langages de programmation avec les documents XML en les associant avec un modèle orienté objet DOM permet aux programmes et scripts : d'accéder et

Plus en détail

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition) Présentation du langage XML 1. De SGML à XML 17 2. Les bases de XML 18 2.1 Rappel sur HTML 18 2.2 Votre premier document XML 19 2.3 Les avantages de XML 21 3. La syntaxe XML 21 3.1 La première ligne du

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch Faculté de Génie Chaire industrielle en infrastructures de communication La technologie XML Wajdi Elleuch Octobre 2004 SOMMAIRE Content : - XML : Définition - XML : Solution pour des applications réparties

Plus en détail

L'API DOM : Document Object Model

L'API DOM : Document Object Model Ingénierie Documentaire L'API DOM : Document Object Model http://doc.crzt.fr STÉPHANE CROZAT 16 octobre 2014 Table des matières I - Introduction au DOM 5 A. Principes du DOM...5 B. L'interface DOM...6

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Introduction aux concepts d ez Publish

Introduction aux concepts d ez Publish Introduction aux concepts d ez Publish Tutoriel rédigé par Bergfrid Skaara. Traduit de l Anglais par Benjamin Lemoine Mercredi 30 Janvier 2008 Sommaire Concepts d ez Publish... 3 Système de Gestion de

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Refonte front-office / back-office - Architecture & Conception -

Refonte front-office / back-office - Architecture & Conception - Refonte front-office / back-office - Architecture & Conception - GLG204 - Architectures Logicielles Java 2008/2009 Nom : Cédric Poisson Matricule : 06-49012 Version : 1.0 Jeudi 28 mai 2009 1 / 23 Table

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

La base de données XML exist. A. Belaïd

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

PDO : PHP Data Object 1/13

PDO : PHP Data Object 1/13 PDO : PHP Data Object 1/13 Tous ne sont que des extensions... Les fonstions mysql_* : API mysql Les fonctions mysqli_* aussi Il en est de même pour PDO PDO (avec le pilote PDO MySQL Driver et Extension

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

Java pour le Web. Cours Java - F. Michel

Java pour le Web. Cours Java - F. Michel Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

Documentation CAS à destination des éditeurs

Documentation CAS à destination des éditeurs Documentation CAS à destination des éditeurs Sommaire Préambule... 1 Présentation de CAS...2 Intérêt... 2 Fonctionnement de base...2 Synoptique des échanges (1ère connexion)... 2 Synoptique des échanges

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS Avant de commencer 1. Introduction 15 2. HTML5 oui, mais pas que... 15 2.1 HTML5 16 2.2 JavaScript 17 2.3 CSS 18 3. Les outils 18 Préparation des outils et création du projet 1. Introduction 21 2. Team

Plus en détail

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau labsticc.univ-brest.fr/pages_perso/babau/ Ingénierie Dirigée par les Modèles Editeurs de modèles (Eclipse Modeling Tools) Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC

Plus en détail

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL . THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL Mr MEZRED MOHAMED Ingénieur météorologue INTRODUCTION Il existe de nombreuses manières de construire une base de données. En effet,

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Formation : WEbMaster

Formation : WEbMaster Formation : WEbMaster Objectif et Description : Centre Eclipse vous propose une formation complète WebMaster, vous permettant de : Utiliser dès maintenant les nouveautés du web2, ainsi alléger les besoins

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

Authentification et contrôle d'accès dans les applications web

Authentification et contrôle d'accès dans les applications web Authentification et contrôle d'accès dans les applications web Quelques Rappels Objectifs : contrôler que seulement Certains utilisateurs Exécutent certaines opérations Sur certains objets Trois entités

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184 Frédéric BERTIN fbertin@neotilus.com Présentaion : Mobile 3D Graphics API JSR 184 M3G :présentation Package optionnel de l api J2ME. Prend

Plus en détail

XML et Bases de données. Les bases de données XML natives.

XML et Bases de données. Les bases de données XML natives. XML et Bases de données. Les bases de données XML natives. Introduction. Une définition de l'expression «Base de données XML Native» : Une base de données XML native définit un modèle (logique) de document

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

BASE DE DONNÉES XML NATIVE

BASE DE DONNÉES XML NATIVE BASE DE DONNÉES XML NATIVE NXDB - exist - XQuery IvMad, 2011-2012 2 1. exist exist-db Open Source Native XML Database Ce cours s inspire, reprend, modifie et enrichi des supports disponibles sur Internet

Plus en détail

Groupe Eyrolles, 2004 ISBN : 2-212-11504-0

Groupe Eyrolles, 2004 ISBN : 2-212-11504-0 Groupe Eyrolles, 2004 ISBN : 2-212-11504-0 Table des matières Avant-propos................................................ 1 Quel est l objectif de cet ouvrage?............................. 4 La structure

Plus en détail

Aspects techniques : guide d interfaçage SSO

Aspects techniques : guide d interfaçage SSO COURDECO Aspects techniques : guide d interfaçage SSO Septembre 2011 Cette annexe présente succinctement le système d'authentification unique (SSO : single sign on, authentification unique) utilisé dans

Plus en détail

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com - 5, rue Soutrane - 06560 Valbonne Sophia-Antipolis E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com NQI Orchestra 3.3 - Guide d'installation Linux....................................................................

Plus en détail

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4 Les exemples cités tout au long de cet ouvrage sont téléchargeables à l'adresse suivante : http://www.editions-eni.fr. Saisissez la référence ENI de l'ouvrage EP5EJAV dans la zone de recherche et validez.

Plus en détail

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML XML : Extensible Markup Language SGML Une introduction (1) http://kiwi.emse.fr/3a/dn.html Ph. Jaillon / J.J. Girardot J.J. GIRARDOT - EMSE 10/2004 1 Standard Generalized Markup Language Norme ISO-8879

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)

Plus en détail

REQUEA. v 1.0.0 PD 20 mars 2008. Mouvements d arrivée / départ de personnels Description produit

REQUEA. v 1.0.0 PD 20 mars 2008. Mouvements d arrivée / départ de personnels Description produit v 1.0.0 PD 20 mars 2008 Mouvements d arrivée / départ de personnels Description produit Fonctionnalités L application Gestion des mouvements d arrivée / départ de Requea permet la gestion collaborative

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s) Propriétés du Document Source du Document SDK_accords.odt Titre du Document SDK Python et Java pour le développement de services ACCORD Module(s) PyaccordsSDK, JaccordsSDK Responsable Prologue Auteur(s)

Plus en détail

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

Héritage presque multiple en Java (1/2)

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Programmation par composants (1/3) Programmation par composants (2/3)

Programmation par composants (1/3) Programmation par composants (2/3) Programmation par composants (1/3) La programmation par composant vise le développement de logiciel par aggrégation de briques logicielles existantes est indépendante de la POO La programmation par composant

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s Mickaël Mickaël BLANCHARD BLANCHARD Préface de Sébastien L e p e r s Magento Préface de Sébastien L e p e r s Magento Réussir son site e-commerce Réussir son site e-commerce Groupe Eyrolles, 2010, ISBN

Plus en détail

Java Naming and Directory Interface

Java Naming and Directory Interface Introduction Java Naming and Directory Interface Gaël Thomas gael.thomas@lip6.fr Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard

Plus en détail

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition XML par la pratique Bases indispensables Concepts et cas pratiques 3 ième édition Nouvelle édition Thierry BOULANGER Table des matières 1 Les éléments à télécharger sont disponibles à l'adresse suivante

Plus en détail

les techniques d'extraction, les formulaires et intégration dans un site WEB

les techniques d'extraction, les formulaires et intégration dans un site WEB les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents

Plus en détail

Module BD et sites WEB

Module BD et sites WEB Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

Projet gestion d'objets dupliqués

Projet gestion d'objets dupliqués Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués

Plus en détail

Ingénierie des Modèles. Méta-modélisation

Ingénierie des Modèles. Méta-modélisation Ingénierie des Modèles Méta-modélisation Eric Cariou Master Technologies de l'internet 2 ème année Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique Eric.Cariou@univ-pau.fr

Plus en détail

Projet de Veille Technologique

Projet de Veille Technologique Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...

Plus en détail

SQL Parser XML Xquery : Approche de détection des injections SQL

SQL Parser XML Xquery : Approche de détection des injections SQL SQL Parser XML Xquery : Approche de détection des injections SQL Ramahefy T.R. 1, Rakotomiraho S. 2, Rabeherimanana L. 3 Laboratoire de Recherche Systèmes Embarqués, Instrumentation et Modélisation des

Plus en détail

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT FileMaker Server 11 Publication Web personnalisée avec XML et XSLT 2007-2010 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker est une

Plus en détail

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr Module BDWEB Maîtrise d informatique Cours 9 - Xquery Anne Doucet anne.doucet@lip6.fr 1 Langages de requêtes XML Concepts des langages de requêtes XML motivations caractéristiques Navigation dans les documents

Plus en détail

«Clustering» et «Load balancing» avec Zope et ZEO

«Clustering» et «Load balancing» avec Zope et ZEO «Clustering» et «Load balancing» avec Zope et ZEO IN53 Printemps 2003 1 Python : généralités 1989 : Guido Van Rossum, le «Python Benevolent Dictator for Life» Orienté objet, interprété, écrit en C Mêle

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES Antonin AILLET Remi DEVES Thibaut AZZOPARDI 2 ème année de DUT Informatique Cahier Technique «Développer une application intranet pour la gestion des stages des étudiants» Encadré par Didier BOULLE Année

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

Urbanisme du Système d Information et EAI

Urbanisme du Système d Information et EAI Urbanisme du Système d Information et EAI 1 Sommaire Les besoins des entreprises Élément de solution : l urbanisme EAI : des outils au service de l urbanisme 2 Les besoins des entreprises 3 Le constat

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

Configuration d'un annuaire LDAP

Configuration d'un annuaire LDAP Le serveur Icewarp Configuration d'un annuaire LDAP Version 10.3 Juillet 2011 Icewarp France / DARNIS Informatique i Sommaire Configuration d'un annuaire LDAP 1 Introduction... 1 Qu'est-ce que LDAP?...

Plus en détail

Livre Blanc WebSphere Transcoding Publisher

Livre Blanc WebSphere Transcoding Publisher Livre Blanc WebSphere Transcoding Publisher Introduction WebSphere Transcoding Publisher vous permet d'offrir aux utilisateurs des informations Web adaptées à leurs besoins. Il vous permet, par exemple,

Plus en détail