Projets M1 XML, Objets. Université Paris II & LRI Michel de Rougemont 1.Projets 2.XML 3.Programmation objet 4.D.O.M.
Projets: Présentation –Objectif –Quels services? –Quels usagers? Schéma de la Base de données Mysql –Combien de tables –Structures des tables Architecture HTML –Page dindex, pages principales, liens –Feuilles de style Scripts PHP –Liens entre page HTML et Base de données.
Exemple : gestion de résultats de compétition sportive Présentation: –offrir la possibilité de gérer des résultats de compétitions de sport. Afficher les résultats sur une page par sport. –Possibilité de sabonner aux résultats : envoi hebdomadaire. Schéma B.D. –Table R ( sport, lieu, date, e1,e2,score…) –Table L (nom, , sport) Architecture HTML –Sélection sport sur page dindex –Abonnement: lien de la page dindex vers une nouvelle page –Entrer de nouveaux résultats sur la page de chaque sport. –Feuilles de style : Menu colonne gauche. –Select/option pour chaque sport. Scripts PHP –Insertion dun formulaire abonnement vers L –Affichage de R sur la page de chaque sport par sélection du sport
Gestion de résultats de compétition sportive sur monsite.free.fr Présentation: –Powerpoint Schéma B.D. –Powerpoint et MYSQL (via query.php) Architecture HTML –Powerpoint : Arborescence et liens –Fichiers sur monsite.free.fr Scripts PHP –Powerpoint : fonction des scripts –Réalisation sur monsite.free.fr Itérations chaque semaine
XML <!DOCTYPE livre SYSTEM 'livre.dtd' [ ]> <?xml:stylesheet type="text/xsl" href="s1.xsl"?> &ionesco; Séparation de: Structure (DTD) Style daffichage (XSL) Données brutes (XML) s1.xml, s2.xml, s3.xml dans XSL.ZIP
XML : la DTD DTD : Document Type Definition Fichier livre.dtd Structure du document : Plusieurs chapitres, un titre, un auteur
XSL : feuilles de style Règles de traduction en HTML <xsl:stylesheet xmlns:xsl=' version='1.0'> <xsl:stylesheet xmlns:xsl=' version='1.0'> s1.xsl s2.xsl
XSL : s3.xsl ?xml version="1.0"?><xsl:stylesheet xmlns:xsl=' version='1.0'> <xsl:output method='xml' indent='yes' standalone='yes'/> <xsl:apply-templates mode='sommaire' select='livre' /> <xsl:apply-templates mode='document' select='livre/chapitre' /> <xsl:template mode='sommaire' match='livre'> - ……
Données : ionesco.xml Expérience du théâtre Quand on me pose la question : « Pourquoi écrivez vous des pièces de théâtre ? » je me sens toujours très embarrasé, je ne sais quoi répondre. Il me semble parfois que je me suis mis à écrire du théâtre parce que je le détestais. Je lisais des œuvres littéraires, des essais, j'allais au cinéma avec plaisir. J'écoutais de temps à autre de la musique, je visitais les galeries d'art, mais je n'allais pour ainsi dire jamais au théâtre. Controverses et témoignages Je suis paraît-il, un auteur dramatique d'avant-garde. La chose me paraît même évidente puisque je me trouve ici, aux entretiens sur le théâtre d'avant-garde. Cela est tout à fait officiel. Maintenant, que veut dire avant-garde ? Je ne suis pas docteur en théâtralogie, ni en philosophie de l'art, à peine ce qu'on appelle un homme de théâtre. Notes et contre-notes Eugène Ionesco
Structure O.O Page du livre de P. Rigaux Objets et classes: Contenu dun formulaire Figure géométrique Nœud dun fichier XML Méthodes : fonctions de la classe Création dun objet Manipulation de lobjet
Exemple simple Classe Personne Nom Société Méthodes : Création dun object Affichage de lobjet
Exemple et représentation Java Classe Rectangle Point (x,y) Hauteur, Largeur Méthodes : Création dun rectangle Affichage dun rectangle class Rectangle{ int x; int y; int h; int l; public Rectangle(int x, int y, int h, int l){ this.x=x; this.y=y; this.l=l this.h=h;} public void draw(){ System.out.println(……);} public static void main(String args[]){ Rectangle r1=new Rectangle(5,5,10,10); Rectangle r2=new Rectangle(0,0,10,10); r1.draw(); r2.draw();} } Constructeur Main
Réalisation Java Fichier Rectangle.java Compilation : javac Rectangle.java Produit Rectangle.class Exécution : java Rectangle Exemple : programme Hello. class Hello{ public static void main(String args[]){ System.out.println( « Bonjour »);} }
Classe Formulaire du livre Classe Formulaire Méthodes : fonctions de la classe Création dun formulaire Affichage de lobjet Transmission de lobjet Instructions: $form =new Formulaire (…..); $form->champs=« xxxx »;
Classes XML : DOM Classes Document, Node,…. Programme: AjoutAnnuaire // à un document // Import des classes Java import java.io.*; import javax.xml.parsers.*; import org.w3c.dom.*; import org.apache.xalan.serialize.*; class AjoutAnnuaire {static String nom, prenom, ; public static void main (String args []) {nom = args[0]; prenom = args[1]; = args[2]; if ( (nom != null) && (nom.length() > 0) && (prenom != null) && (prenom.length() > 0) && ( != null) && ( .length() > 0)) { try { // Instanciation du parseur File fdom = new File ("Annuaire.xml"); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); // Analyse du document Document dom = builder.parse(fdom); Node elementRacine = dom.getDocumentElement(); // ajoutElement (dom, nom, prenom, ); System.out.println ("Ajout de " + prenom + " " + nom + ". " + ); // Création du nouvel élément Element elPersonne = dom.createElement ("PERSONNE"); // Ajout des trois fils elPersonne.appendChild (creerElementTexte(dom, "NOM", nom)); elPersonne.appendChild (creerElementTexte(dom, "PRENOM", prenom)); elPersonne.appendChild (creerElementTexte(dom, " ", )); // Ajout du nouvel élément elementRacine.appendChild (elPersonne); ……………….
Importance de XML Standard de documents. Conception Echange (EDI) Applications aux documents texte: Archives dun journal Documents non structurés Documents Multimédia: Audio Vidéo Rechercher un segment, un objet…
T.D. 1.Finir les stratégies PHP 2.Formulation du projet M1 3.Pour les projets informatiques D.O.M en XML Structure orientée objet Langage C Extensions C++ et Java
Projets 1.Outil query.php Afficher le schéma des tables dans une nouvelle fenêtre. Feuilles de style dans laffichage. 2.Outil FG ( f.php et g.php) pour éviter FTP. Concevoir une table à 3 champs Nom, type, Programme Qui va stocker dans programme les scripts à tester. Le script f.php lit un Nom et permet déditer le programme ou de lexécuter avec eval($p) ;
Projet XML 1.Correcteur XML PHP with dom Java with dom Interface pour naviguer dans un arbre XML Implémentation du correcteur