DOM, SAX, JAXP, JDOM: Gestion de documents XML

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

Download "DOM, SAX, JAXP, JDOM: Gestion de documents XML"

Transcription

1 DOM, SAX, JAXP, JDOM: Gestion de documents XML Cycle de vie d un document XML Le cycle de vie du point de vue d une application: Buts : Le point sur le traitement et la gestion de documents XML Introduction au parsing du XML DOM (Document Object Model) Levels 1,2,3 SAX (Simple API for XML) DOM ou SAX JAXP, JDOM, XSL W3C SAX XQL XML DOM XQuery HTML JDOM Document XML XML Analyse Deux étapes de base: analyse manipulation data Application DOM JAXP Interaction Avec les clients Utilisant les données XML SAX SAX JDOM 2 Parseur XML - I Parseur XML II Pourquoi un parseur? Infinité de modèles XML pour diverses applications Toutes les applications devront implémenter le parsing de données XML: Résoudre le problème de l indexation, de stockage, et de manipulation Qu'est-ce qu'un parseur? Un parseur 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 parseur 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". Définition parseur (point de vue XML), il inclut: L analyse lexicale, L analyse syntaxique Le contrôle de conformité de la syntaxe par rapport à la norme La vérification de la validation du document par rapport à sa DTD ou son schéma Un processeur XML inclut des notions de validation lexicale et structurelle de document. Il propose aussi son module de traitement ad hoc, basé sur une représentation de l'information contenue dans le document (fichier) lu. Aujourd'hui, la représentation utilise soit l'interface SAX, soit des interfaces définies dans le "cœur" de DOM.

2 Architecture d'un processeur XML Modèles de parsing et API - I Construire une application XML revient donc à utiliser des parseurs, pour des outils fonctionnels différents: 1. Validation DTD, Schéma 2. Chargeur de document Validation + représentation du contenu 3. Processeurs XSLT Processeur Chargeur Valideur <doc> <doc> <a> <doc> <a> test</a> test</a> <et>.. <a> test</a> <doc> <et>.. </et> <et>.. <a> test</a> </et> </et> <et>.. </doc> </et> Documents XML </doc> </doc> </doc> Reader Parsing Résolution d entités Résolution espaces de nommages Contrôle de validité structurelle Contrôle arbre bien formé Contrôle au regard du modèle (DTD schéma) Interface de fourniture des informations contenus dans le document (SAX, DOM, etc.) Application Toute application qui doit traiter des entités XML, est interfacée avec un parseur à travers une API XML data XML parseur Interfaces standards But : création d un standard autonome et neutre pour faciliter le processus de traitement des documents XML: Manipulation et gestion des éléments constitutifs d un document XML Création, modification et consultation, etc. Automatisation des processus de manipulation Application 5 6 Modèles de parsing et API - II Catégories des parseurs Deux APIs de parseurs: DOM (Docment Object Model) Le parseur compile l ensemble du document et en construit une représentation interne sous forme d arbre. SAX (Simple API for XML) Le parseur lit le flot de données XML en entrée et reconnaît et interprète les marques de balisage au fur et à mesure qu il les rencontre. Chaque construction reconnue est immédiatement signalée et passée à l application. Ce modèle est appelé «traitement dirigé par les événements» JAXP (Java Api for Xml Parsing) JDOM = Java + XML On peut classifier les parseurs sous plusieurs catégories: Les validant versus non-validant Les parseurs supportant le DOM Les parseurs supportant le SAX Les parseurs écrits avec différents langages Java, C++, Perl, etc. Les parseurs: Xml4java, Oracle XML Parser, Xerces Java Parser, Microsoft XML Parser, etc

3 DOM (Document Object Model) - I DOM (Docment Object Model) II DOM: C est une norme du W3C, 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: 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 La spécification est organisée en différentes parties, différenciant des niveaux que doit supporter une implémentation de DOM. Pour chaque niveau, les spécifications différencient ce qui est fondamental (et qui doit donc être implémenté pour être conforme) de ce qui est optionnel (les extensions). Chaque spécification s'intéresse au "coeur" (core) qui est générique, pour n'importe quel document XML et à des interfaces spécifiques, pour des types de documents donnés (tels des documents XML, des CSS, voire des objets plus génériques comme des feuilles de styles) DOM (Docment Object Model) II DOM (Docment Object Model) III Le "coeur" (core) de DOM définit les éléments ci-après : ce que sont une implémentation DOM et les natures d'erreurs reconnues les interfaces de gestion d'un document XML pour deux objectifs : 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.), le niveau 2 prend notamment en compte les notions d'espace de noms ; Les extensions au cœur, qui sont optionnelles dans les implémentations, ajoutent : 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). Ce sont les niveaux d'implémentation qui définissent le type de structure qu'ils reconnaissent : DOM niveau 1 : prend en compte les documents HTML (et non pas XHTML ) et XML ; Ce sont surtout des objets nouveaux qui apparaissent, comme les frames, les images ou les ancres. Les fonctionnalités de manipulation sont minimes, celles du core étant a priori souvent suffisantes. DOM niveau 2 ajoute : fonctionnalités de manipulation des CSS, les feuilles de styles associées aux documents HTML. 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 (ou un objet contenu dans un document)

4 DOM (Docment Object Model) IV DOM parseur I DOM niveau 2 ajoute : 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. À noter que ces fonctionnalités sont essentielles, pour prendre en compte les notions de position associées à la recommandation XPointer. DOM niveau 3 permettra aussi l'accès aux modèles (structurés sous forme de DTD, Schéma ou tout autre formalisme). Pour accéder à l information d un document XML: Le parseur lit le fichier Vérification de la validité s il y a lieu (DTD, ou schema) Conversion du document XML en document objet en mémoire Le document objet est un arbre de nœuds contenant les données et la structure de l information Le DOM fournit les interfaces nécessaires pour accéder aux nœuds du document. org.w3c.dom.* Il crée des objets qui sont des instances de classes prédéfinis par l API La classe centrale est 'Document' (DOM tree) Le standard n inclut pas: Parcours de l arbre La sérialisation du document DOM parseur II Création d un arbre DOM - I Fichier XML DOM Parser DOM Tree A P I Application Parseur XML et couche DOM Organisation hiérarchique Tout est nœud Même le document

5 Création d un arbre DOM II Interfaces et classes DOM DocumentFragment import org.w3c.dom.*; //interfaces DOM import com.sun.xml.tree.*; //Using Sun classes import org.xml.sax.*; //Need SAX classes public class myclass { Document mydoc; //Document object try { //if 'true' -> validate mydoc = XmlDocument.createXmlDocument("file:/doc.xml", true); catch (IOException err) { catch (SAXException err) { catch (DOMException err) { //If no exceptions, should have a 'Document' object Node Document CharacterData Attr Element DocumentType Notation Entity EntityReference Text CDATASection Comment NodeList NamedNodeMap DocumentType ProcessingInstruction Modèle de document DOM - I Modèle de document DOM II Nom de l objet Description Descendants Nom de l objet Description Descendants Document DocumentFragment Node ProcessingInstruction Racine de l arbre d objet représentant un document. Cet objet représente le document dans son entier. Propose des méthodes pour créer un élément, un fragment, etc. Portion de l arbre d objet représentant un document. Utilisé pour créer ou déplacer des fragments de document. Objet de base pour tous les objets DOM, représentant un nœud de l arbre constituant un document Représente une référence à une instruction de traitement définie dans un document Element (un seul) l élément racine, ProcessingInstruction, Comment, DocumentType Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference pas d instanciation Pas de descendant Text Comment CDATASection Entity EntityReference Attribute Cet objet représente le contenu textuel d un élément ou d un attribut Cet objet représente un commentaire Cet objet permet de délimiter un bloc de texte contenant des données qui seraient interprétées comme des balises XML Represente une entité Représente une référence à une entité dans un document Objet, hérite des méthodes et des attributs de Node. Pas de descendant Pas de descendant Pas de descendant Element, ProcessingInstruction, Comment, Text, Element, ProcessingInstruction, Comment, Text, - Element Cet objet représente un élément du document Element, Text, Comment,. Etc.. Etc. Etc.

6 Interface Node Méthodes de Node Objet de base Description des nœuds: Elements Attributes Text Comments CDATA sections Entity declarations Entity references Notation declarations Entire documents Processing instructions Collections des Node NodeList, NamedNodeMap, DocumentFragment Trois catégories de méthodes Caractéristiques des Node name, type, value Emplacement et accès relatif au: parents, siblings, children, ancestors, descendants Modification des Node edit, delete, re-arrange child nodes Méthodes: short getnodetype(); String getnodename(); String getnodevalue() throws DOMException; void setnodevalue(string value) throws DOMException; boolean haschildnodes(); NamedNodeMap getattributes(); Document getownerdocument(); Types de nœud - getnodetype(); Nom et valeur de Node Chaque nœud a un nom et possible valeur ELEMENT_NODE = 1 ATTRIBUTE_NODE = 2 TEXT_NODE = 3 CDATA_SECTION_NODE = 4 ENTITY_REFERENCE_NODE = 5 ENTITY_NODE = 6 PROCESSING_INSTRUCTION_NODE = 7 COMMENT_NODE = 8 DOCUMENT_NODE = 9 DOCUMENT_TYPE_NODE = 10 DOCUMENT_FRAGMENT_NODE = 11 NOTATION_NODE = 12 if (mynode.getnodetype() == Node.ELEMENT_NODE) { //process node Type Interface Name Name Value ATTRIBUTE_NODE Attr Attribute name Attribute value DOCUMENT_NODE Document #document NULL DOCUMENT_FRAGMENT_NODE DocumentFragment #document-fragment NULL DOCUMENT_TYPE_NODE DocumentType DOCTYPE name NULL CDATA_SECTION_NODE CDATASection #cdata-section CDATA content COMMENT_NODE Comment Entity name Content string ELEMENT_NODE Element Tag name NULL ENTITY_NODE Entity Entity name NULL ENTITY_REFERENCE_NODE EntityReference Entity name NULL NOTATION_NODE Notation Notation name NULL PROCESSING_INSTRUCTION_ NODE ProcessingInstruction Target string Content string TEXT_NODE Text #text Text string

7 Navigation dans Node Manipulation de Node Chaque nœud a une localisation spécifique dans l arbre L interface Node spécifie des méthodes pour se retrouver et trouver les nœuds autour getprevioussibling() Les nœuds peuvent subir des manipulations: ajout, modification, déplacement, copie, etc. Old getparentnode() getnextsibling() getfirstchild() getchildnodes() getlastchild() Node parent = mynode.getparentnode(); if (mynode.haschildren()) { NodeList children = mynode.getchildnodes(); 25 insertbefore Ref New replacechild public Node insertbefore(node newchild, Node refchild) throws DOMException; public Node replacechild(node newchild, Node oldchild) throws DOMException; clonenode Shallow 'false' Deep 'true' New 26 DocumentFragment::Node Interface Element Node Un fragment du Document peut être temporairement stocker dans le nœud DocumentFragment Lightweight object, e.g. for 'cut-n-paste' Attaché sur un autre nœud, il se détruit (très utile pour l ajout des enfants dans l arbre) DOM tree DocumentFragment New DOM tree Représente un élément Inclus les balises de début, de fin et le contenu Types de noeud fils Nœud Element Nœud Attribute Nœud ProcessingInstruction Nœud Comment Nœud Text Nœud CDATASection Nœud EntityReference

8 Interface Element Text Node public interface Element extends Node { public String gettagname(); public String getattribute(string name); public void setattribute(string name, String value) throws DOMException; public void removeattribute(string name) throws DOMException; public Attr getattributenode(string name); public Attr setattributenode(attr newattr) throws DOMException; public Attr removeattributenode(attr oldattr) throws DOMException; public NodeList getelementsbytagname(string name); public String getattributens(string namespaceuri, String localname); public void setattributens(string namespaceuri, String qualifiedname, String value) throws DOMException; public void removeattributens(string namespaceuri, String localname) throws DOMException; public Attr getattributenodens(string namespaceuri, String localname); public Attr setattributenodens(attr newattr) throws DOMException; public NodeList getelementsbytagnamens(string namespaceuri, String localname); 29 Représente le contenu textuel d un élément ou un attribut Contient du texte pure pas de balise Un nœud texte pour chaque texte continu et pure Élément sans sous-élément Le texte est représenté comme un objet texte unique Élément avec plusieurs sous-elements Plusieurs objets texte Les méthodes getnodevalue() returns text Ex: public interface Text extends CharacterData { public Text splittext(int offset) throws DOMException; 30 Comment Node CDATA Section Node Représente un commentaire Types des nœuds fils Pas de nœud méthodes getnodevalue() returns text Comment Interface public interface Comment extends CharacterData { Represents a CDATA section Child node types None Node interface methods getnodevalue() returns text CDATASection Interface public interface CDATASection extends Text { Exemple de code case Node.TEXT_NODE: case Node.CDATA_SECTION_NODE: case Node.COMMENT_NODE: System.out.println(node.getNodeValue()); break; // end switch statement

9 Attribute Node Document Type Node Représente un attribut Types des nœuds fils Nœuds Text Nœuds Entity reference Méthodes getnodename() returns name of attribute getnodevalue() returns value of attribute Attribute Interface public interface Attr extends Node { public String getname(); public boolean getspecified(); public String getvalue(); public void setvalue(string value) throws DOMException; public Element getownerelement(); Représente la déclaration du type de document Types de nœuds fils Pas de nœud L interface DocumentType public interface DocumentType extends Node { public String getname(); public NamedNodeMap getentities(); public NamedNodeMap getnotations(); public String getpublicid(); public String getsystemid(); public String getinternalsubset(); Processing Instruction Node Le reste de l API Représente les instructions de processing <?xml-stylesheet href="xsl\javaxml.html.xsl" type="text/xsl"?> Types de nœuds fils Pas de nœud Les méthode de Node interface getnodename() returns target getnodevalue() returns the rest Exemple du code case Node.PROCESSING_INSTRUCTION_NODE: System.out.println("<?" + node.getnodename() + " " + node.getnodevalue() + "?>"); break; (Document, DocumentType, Element, Attr, CharacterData, Text, CDATASection, Comment, ProcessingInstruction, EntityReference, Entity, Notation)::Node voir documentation

10 Exemple DOM HTML 4.0 ProcessingInstruction <?xml:stylsheet type=''text/xsl''?> Document <?xml version=''1.0'' encoding=''iso '' standalone=''yes''?> DocuemntType <!DOCTYPE dossier[...]> Comment <!--ce document...> <?xml version= 1.0 encoding= iso standalone= yes?> <?xml:stylesheet type= text/xsl?> <!DOCTYPE dossier [ <!ENTITY titre construire une application XML > <!ELEMENT dossier (fichier*)> <!ATTLIST dossier chemin CDATA #REQUIRED> <!ELEMENT fichier (#PCDATA) Text <!ATTLIST fichier nom CDATA #REQUIRED> ]> <dossier chemin= c:\doc\xml > Etc </dossier> Element <fichier nom=''exemple.xml''> Element <dossier chemin=''c:\doc\xml''> EntityReference Text CDATASection Element <fichier nom=''livre.xml''> Text ce fichier... <table border= 1 > <thead><th>nom</th><th>prenom</th> <thead> <tbody> <tr><td>dupont>/td><td>jean</td></tr> <tr><td>durant>/td><td>jacques</td></tr> </tbody> </table> Nom prenom Dupont Durant Jean jacques Manipulation des nœuds Organisation hiérarchique DOM HTML 4.0 SAX I <html tablesectionelement> <html TableCellElement> <html TableCellElement> nom prenom <html TableCellElement> Dupont <html table element> <html tablesectionelement> <html TableRowElement> <html TableRowElement> <html TableCellElement> jean <html TableCellElement> Durand <html TableCellElement> jacques Standard de fait 1997, Modèle événementiel Norme: SAX est très rapide, mais il ne permet pas de transformer l'arbre lors du parsing (il ne fait que consommer les données). Le principe du parser SAX est simple: on lui raccorde des objets dont les méthodes (implantant des interfaces précises) sont appelées par le parser lorsque certains évènements se produisent au cours du parsing du fichier XML.

11 SAX - II Gestion des évènements SAX Caractéristiques Basé sur la gestion des événements Rapide avec une légère API Pas besoin de charger le document entier dans la mémoire Accès séquentiel en lecture uniquement Pas de support pour les modifications du contenu La version SAX 2 supporte les namespaces À l origine conçu pour JAVA Mais maintenant supporter par d autre langage (C++, Python, Perl) Le parseur SAX génère des évènements quand: Au début et à la fin du document Une balise d ouverture d un élément Une balise de fermeture rencontrée Des #pcdata et cdata sont rencontrées Des Commentaires, instructions de traitement sont rencontrées Le processus séquentiel des évènements est très important pour pouvoir traiter correctement Utilisation d un mécanisme de callback pour avertir l application Procédures de programmation Package org.xml.sax.* Create XML Parser Create Event Handler Call Parser and Set Event Handler Parse Handling Event Handler Processing XMLReader parser = XMLReaderFactory.createXMLReader(); myhandler handler = new myhandler(); parser.parse(args[0]); SAX parser calls methods on the event handler public void startdocument(){ System.out.println( XML Document Start ); Les interfaces Parser DocumentHandler ErrorHandler DTDHandler EntityHandler AttributeList Locator EntityResolver Étapes d utilisation de SAX: Création du modèle objet du document Création de SAX parseur Création de DocumentHandler pour changer le document XML en instance du modèle objet

12 Interfaces SAX - I La norme SAX définit ainsi quatre interfaces : 1) DocumentHandler: Implémenté par la classe qui active le parseur class myclass implements DocumentHandler { myparser.setdocumenthandler(this); Le parseur appelle ses méthodes pour rendre compte des évènements relatifs au document. L interface définit, entre autre, les méthodes suivantes : void startdocument() //lorsqu'il ouvre un nouveau document void enddocument() void startelement(string name, AttributeList attrs) //lorsqu'il rencontre un nouvel élément void endelement(string name) void characters(char[] ch, int start, int length) //lorsqu'il rencontre des caractères void ignorablewhitespace(char[] ch, int start, int length) //ignorer les espaces blanches void processinginstruction(string target,string data) Interfaces SAX II La norme SAX (suite) 2) ErrorHandler : ses méthodes sont appelées lorsque le parseur rencontre des warnings ou des erreurs. Elle permet par exemple à l'utilisateur de décider d'arrêter ou non le parsing si le processeur rencontre un warning. Trois niveaux d exceptions: void error(saxparseexception ex); void fatalerror(saxparserexcpetion ex); void warning(saxparserexception ex); 3) DTDHandler : ses méthodes sont appelées lors du parsing de la DTD du document, avertit l application quand le parseur rencontre des data binaires notationdecl(string name, String publicid, String systemid); unparsedentitydecl(string name, String publicid, String systemid, String notationname); Interfaces SAX III Exemple La norme SAX (suite) 4) EntityResolver : son unique méthode resolveentity() renvoie une URL pour une URI donnée. Utile pour la gestion des catalogues par exemple. public InputSource resolveentity(string publicid, String systemid) { if (systemid.equals("disclaimer") publicid.equals("-//ebi//text Disclaimer//EN")) return (new InputSource(file:/xml/disc.xml)); Interface Locator: associe un événnement à une localisation d un document int getlinenumber(); int getcolumnnumber(); String getsystemid(); String getpublicid(); InputSource, AttributeList interface, EntityResolver Interface, ParserFactory Class voir documentation Transformation du document XML en groupe d évènements

13 Quand gérer la validation (DTD/Schema)? Quand utiliser DOM? SAX? La validation est un processus qui ralentit l application: Validez durant le développement C est la phase de test Si une partie de votre application génère ou modifie du code XML, alors il faut intégrer la validation du code Foncez durant la production Augmente la rapidité Exceptions: Si le client prend partie active dans la gestion du document XML Attention de garder la validation Si votre application reçoit du code XML d une autre application qui est hors de votre control Cela dépend de données d entrée et de sortie d une application SAX est séquentiel Donc pas d accès aléatoire au document On accède à l information uniquement quand l analyseur accède et on les perd aussitôt qu il les perd Il faut faire un effort de sauvegarde de l historique (peine perdue et déjà faite ailleurs) Avec SAX pas d accès latéral aux sein des éléments Pas de notion de frère ou fils, etc. Pour le processeur XSL c est une catastrophe Quand utiliser DOM? SAX? Quand utiliser DOM? SAX? Pourquoi utiliser SAX alors? Exemple: table de matière d un livre très volumineux avec un index DOM explosera la mémoire SAX est parfait DOM est parfait pour XSLT? XSLT peut créer durant son traitement une nouvelle arborescence DOM pour le document de sortie en copiant, modifiant, ajoutant et supprimant des nœuds dans l arborescence d entrée. DOM nécessite un chargement intégrale du document dans la mémoire I exigence en mémoire est proportionnelle à la taille et à la complexité du document Pourquoi utiliser DOM alors? Pour des documents < 1 Mo Pour des documents > 1 Mo bases de données DOM: Représentation arborescente hiérarchique Accès aléatoire aux données Permet de traverser l arbre et de modifier le contenu Pour des documents complexes Documents venant de plusieurs sources Pour des documents avec avec des traitements complexes: Indexation Accès multiples, etc. Demande beaucoup de mémoire SAX: Représentation événementielle Accès hiérarchique aux données Documents volumineux (2-3 Mo de caractères) Documents sont machine readable Documents simples non complexes sans ajout, ni modification du contenu

14 JAXP (Java Api for Xml Parsing) JAXP: principe JAXP est un ensemble d'apis Java permettant d'effectuer des traitements XML qui inclut SAX (SAX 2.0), DOM(DOM Level 2) et 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 analyse L'API est le fruit de travaux de développement communs à Ariba, AOL/Netscape, BEA, Bluestone, Fujitsu, IBM, et Oracle. téléchargeable gratuitement sur l'espace de Sun Java Technology and XML. Raison d utiliser JAXP: 1. DOM ne spécifie pas comment créer un objet parseur différent API selon implémentation portabilité du code est affecté En utilisant DOM (ou SAX), il faut explicitement importer et référencer la classe de l analyseur (org.apache.xerces.parsers. DOMParser) Si on change de parseur problèmes User Application Reference Parser JAXP Interfaces Other Parser 2. Avant chaque opération DOM, le document XML a besoin d être parser et un objet doit être créer. Cette opération n est pas standardiser par le W3C 3. indépendance des processeurs JDOM - principe JDOM - package Encore une API? Java + XML = JDOM Philosophie de JDOM: Facile à utiliser pour les programmeurs java devrait cacher les complexités de XML dans la mesure du possible devrait intégrer DOM et SAX Lecture et écriture des documents DOM et les évènements SAX Utilisation des différents parseurs DOM ou SAX (utilisation du modèle JAXP) devrait rester compatible avec les dernières normes de XML Pourquoi ne pas utiliser DOM: 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 JDOM traite tout format hiérarchique et non uniquement DOM JDOM pour le DOM/SAX comme le RMI pour CORBA Java optimalisé Les classes représentant un document XML et sa construction: Attribute, CDATA Comment, DocType Document, Element Entity, Namespace ProcessingInstruction (PartialList) (Verifier) (Assorted Exceptions) Les classes de lecture des documents XML depuis des sources existants: DOMBuilder SAXBuilder Les classes pour écrire les documents XML sous plusieurs formes et sorties: DOMOutputter SAXOutputter XMLOutputter org.jdom org.jdom.adapters org.jdom.input org.jdom.output Packages d adaptateurs pour obtenir Un objet DOM à partir de n importe quel analyseur

15 JDOM fonctionnement Cycle de vie XML Document SAXBuilder XMLOutputter XML Document SAXBuilder DOMBuilder DOM Node(s) Direct Build JDOM Document Création de JDOM: - Direct - À partir d une source XML utilisant un analyseur DOM - À partir d une source XML utilisant un analyseur SAX XMLOutputter SAXOutputter DOMOutputter 57 Un document est représenté par la classe org.jdom.document Le document peut être construit from scratch Document doc = new Document( new Element("root").setText("hi")); Le document peut être construit depuis un fichier, un stream ou un URL SAXBuilder builder = new SAXBuilder(); Document doc = builder.build(url); Le résultat peut être XML, SAX ou DOM XMLOutputter outputter = new XMLOutputter(); outputter.output(doc, System.out); 58 Exemples SAX/DOM Parseurs et performances I Examples (fournis avec xerces-apache ou XML4java-ibm): Compteur d éléments, d attributs, et d espaces vides Avec SAX java sax.saxcount [inputfile] Avec DOM java dom.domcount [inputfile] Les tests réalisés se sont intéressés, plus précisément, aux points suivants : jeux de caractères : PCDATA, noms d'élément et d'attribut, valeurs d'attribut ; documents bien formés : tests de base un élément n'est pas fermé, n'est pas ouvert, reconnaissance des éléments vides, syntaxe de base des attributs, prise en compte des Processing Instructions, des commentaires ; tests poussés pour valider : Que l'on ne peut avoir des noms d'élément et d'attribut ayant des caractères ":", en dehors des namespaces, DTD et validation

16 Parseurs et performances II Conclusion Les résultats bruts sont les suivants : Xerces Java Parser validation d'un arbre bien formé de 57 Mo : 11 secondes validation d'un document de 49 Mo : 20 secondes Oracle XML Parser validation d'un arbre bien formé de 57 Mo : 10 secondes validation d'un document de 49 Mo : 57 secondes Java API for XML Parsing validation d'un arbre bien formé de 57 Mo : 10 secondes validation d'un document de 49 Mo : 11 secondes Microsoft XML Parser validation d'un arbre bien formé de 57 Mo : 14 secondes validation d'un document de 49 Mo : -- DOM : object-based, random-access, read-write Sax : event-driven, sequential-access, read-only JAXP Java API for XML parsing (SUN). Implémente les librairies de SAX pour lire les données XML et pour construire le DOM. Offre la possibilité de changer le parseur sans avoir à recompiler l application. JDOM Définit un modèle de représentation : JDOM Document. Ce document n est pas chargé en totalité dans la mémoire. Compatible avec SAX et DOM et optimisée pour Java. API rapide et peu exigeante en ressources. Licence type Open Source mais attaché à java Références Français : Livres: Java and XML, Brett Mclaughlin ISBN: ,O REILLY Java et XML, Brett Mclaughlin (version française) ISBN: Java, XML, and JAXP, Arthur Griffith ISBN:

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

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

<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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Cours 14 Les fichiers

Cours 14 Les fichiers Cours 14 Les fichiers F. Gayral 1 Fichier : définition /media/travaux/documents/fgenseignement/java1/courstpsfgfc/14-fichiers/voirtypefichiers Fichier = ensemble d informations codées et stockées sur une

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

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

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

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

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

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

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

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

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S

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

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

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

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

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

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème Chapitre IX L intégration de données Le problème De façon très générale, le problème de l intégration de données (data integration) est de permettre un accès cohérent à des données d origine, de structuration

Plus en détail

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

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

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

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

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

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

Introduction à JDBC. Accès aux bases de données en Java

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

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

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

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Outils logiciels pour l'ingénierie documentaire

Outils logiciels pour l'ingénierie documentaire Ingénierie Documentaire Outils logiciels pour l'ingénierie documentaire http://doc.crzt.fr STÉPHANE CROZAT 16 octobre 2014 Table des matières I - L'IDE XML Oxygen 5 A. Fichiers XML...5 B. Schémas XML...6

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

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

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

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement

Plus en détail

Composants Logiciels. Le modèle de composant de CORBA. Plan

Composants Logiciels. Le modèle de composant de CORBA. Plan Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x WysiUpStudio CMS professionnel pour la création et la maintenance évolutive de sites et applications Internet V. 6.x UNE SOLUTION DE GESTION DE CONTENUS D UNE SOUPLESSE INÉGALÉE POUR CRÉER, MAINTENIR ET

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

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

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

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

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

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Serveur d'archivage 2007 Installation et utilisation de la BD exist Type du document Procédure d'installation Auteur(s) Eric Bouladier Date de création 26/02/20007 Domaine de diffusion tous Validé par Equipe Versions Date Auteur(s) Modifications V1.00 26/02/2007 Eric Bouladier

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

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

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence

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

JavaServer Pages (JSP)

JavaServer Pages (JSP) JavaServer Pages (JSP) XVIII-1 Prérequis pour ce cours Ce cours a trait à la programmation Java coté serveur Il faut connaître un minimum de technologie J2EE Il faut connaître les servlets XVIII-2 Motivation

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

Java et les bases de données

Java et les bases de données Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

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

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

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

Création d objet imbriqué sous PowerShell.

Création d objet imbriqué sous PowerShell. Création d objet imbriqué sous PowerShell. Par Laurent Dardenne, le 13/01/2014. Niveau Ce tutoriel aborde la création d objet composé, c est-à-dire que certains de ses membres seront eux-mêmes des PSObjects.

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

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

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

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2 Débuter avec EXPRESS Alain Plantec Table des matières 1 Schema 2 2 Entité 2 2.1 Attributs simples................................................ 2 2.2 Attributs collection...............................................

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

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions Module Magento SOON Soon_AdvancedCache Rédacteur Hervé G. Lead développeur Magento herve@agence-soon.fr AGENCE SOON 81 avenue du Bac 94210 LA VARENNE ST HILAIRE Tel : +33 (0)1 48 83 95 96 Fax : +33 (0)1

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

Construire des plug-ins pour SAS Management Console SAS 9.1

Construire des plug-ins pour SAS Management Console SAS 9.1 Construire des plug-ins pour SAS Management Console SAS 9.1 Janvier 2005 Sommaire 1 INTRODUCTION... 3 1.1 OBJECTIFS... 3 1.2 PERIMETRE... 3 2 LES COMPOSANTS DE SAS MANAGEMENT CONSOLE... 4 3 LA CONSTRUCTION

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

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

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting IUT Bordeaux 1 2005-2006 Département Informatique Licence Professionnelle ~ SI TD Objets distribués n 3 : Windows XP et Visual Studio.NET Introduction à.net Remoting Partie 1 : l'analyseur de performances

Plus en détail

Travaux Pratiques : Lucène - Gestion d un index plein texte

Travaux Pratiques : Lucène - Gestion d un index plein texte Chapter 1 Travaux Pratiques : Lucène - Gestion d un index plein texte Pour ce TP, nous allons étudier l utilisation d un index de recherche textuel OpenSource : Lucene 1. Nous allons créer un projet en

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

Introduction aux «Services Web»

Introduction aux «Services Web» Introduction aux «Services Web» Sana Sellami sana.sellami@univ-amu.fr 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

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

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hébert.eheb@yahoo.fr

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

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

Systèmes d'informations historique et mutations

Systèmes d'informations historique et mutations Systèmes d'informations historique et mutations Christophe Turbout SAIC-CERTIC Université de Caen Basse-Normandie Systèmes d'informations : Historique et mutations - Christophe Turbout SAIC-CERTIC UCBN

Plus en détail

Sage CRM. Sage CRM 7.3 Guide du portable

Sage CRM. Sage CRM 7.3 Guide du portable Sage CRM Sage CRM 7.3 Guide du portable Copyright 2014 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

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

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

WINDOWS SHAREPOINT SERVICES 2007

WINDOWS SHAREPOINT SERVICES 2007 WINDOWS SHAREPOINT SERVICES 2007 I. TABLE DES MATIÈRES II. Présentation des «content types» (Type de contenu)... 2 III. La pratique... 4 A. Description du cas... 4 B. Création des colonnes... 6 C. Création

Plus en détail