1 / 19

Projets M1 XML, Objets.

Projets M1 XML, Objets. Projets XML Programmation objet D.O.M. Université Paris II & LRI Michel de Rougemont mdr@lri.fr http://www.lri.fr/~mdr. Projets:. Présentation Objectif Quels services? Quels usagers? Schéma de la Base de données Mysql Combien de tables

tekli
Download Presentation

Projets M1 XML, Objets.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Projets M1XML, Objets. • Projets • XML • Programmation objet • D.O.M. Université Paris II & LRI Michel de Rougemont mdr@lri.fr http://www.lri.fr/~mdr

  2. 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 d’index, pages principales, liens • Feuilles de style • Scripts PHP • Liens entre page HTML et Base de données.

  3. 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 s’abonner aux résultats : envoi hebdomadaire. • Schéma B.D. • Table R ( sport, lieu, date, e1,e2,score…) • Table L (nom, email, sport) • Architecture HTML • Sélection sport sur page d’index • Abonnement: lien de la page d’index 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 d’un formulaire abonnement vers L • Affichage de R sur la page de chaque sport par sélection du sport

  4. 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

  5. XML Séparation de: Structure (DTD) Style d’affichage (XSL) Données brutes (XML) s1.xml, s2.xml, s3.xml dans XSL.ZIP <?xml version='1.0' ?> <!DOCTYPE livre SYSTEM 'livre.dtd' [ <!ENTITY ionesco SYSTEM 'ionesco.xml'>]> <?xml:stylesheet type="text/xsl" href="s1.xsl"?> <livre> &ionesco; </livre>

  6. XML : la DTD • DTD : Document Type Definition • Fichier livre.dtd <?xml version='1.0' ?> <!ELEMENT livre (chapitre*,titre,auteur)> <!ELEMENT chapitre (titre,para*)> <!ELEMENT titre (#PCDATA)> <!ELEMENT para (#PCDATA)> <!ELEMENT auteur (#PCDATA)> Structure du document : Plusieurs chapitres, un titre, un auteur

  7. XSL : feuilles de styleRègles de traduction en HTML s1.xsl <?xml version='1.0' ?> <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'> <xsl:template match='/'> <xsl:apply-templates/></xsl:template> </xsl:stylesheet> s2.xsl <?xml version='1.0' ?> <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'> <xsl:template match='/'> <xsl:apply-templates/> </xsl:template> <xsl:template match='chapitre/titre'> <h1><xsl:value-of select='.'/></h1> </xsl:template> </xsl:stylesheet>

  8. XSL : s3.xsl ?xml version="1.0"?><xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'> <xsl:output method='xml' indent='yes' standalone='yes'/> <!-- racine --> <xsl:template match='/'> <html><head></head><body> <xsl:apply-templates mode='sommaire' select='livre' /> <hr/> <xsl:apply-templates mode='document' select='livre/chapitre' /></body></html> </xsl:template> <!-- mode sommaire --> <xsl:template mode='sommaire' match='livre'> <h1><xsl:value-of select='titre' /></h1> <xsl:value-of select='auteur' /> <hr/> <xsl:apply-templates mode='sommaire' select='chapitre'></xsl:apply-templates> </xsl:template> <!-- affichage des titres de chapitre --> <xsl:template mode='sommaire‘ match='chapitre'> <h2><xsl:number/> -<xsl:value-of select="titre" /></h2</xsl:template> …… </xsl:stylesheet>

  9. Données : ionesco.xml <chapitre> <titre>Exp&#233;rience du th&#233;&#226;tre</titre> <para>Quand on me pose la question : &#171; Pourquoi &#233;crivez vous des pi&#232;ces de th&#233;&#226;tre ? &#187; je me sens toujours tr&#232;s embarras&#233;, je ne sais quoi r&#233;pondre. Il me semble parfois que je me suis mis &#224; &#233;crire du th&#233;&#226;tre parce que je le d&#233;testais. Je lisais des &#339;uvres litt&#233;raires, des essais, j'allais au cin&#233;ma avec plaisir. J'&#233;coutais de temps &#224; autre de la musique, je visitais les galeries d'art, mais je n'allais pour ainsi dire jamais au th&#233;&#226;tre. </para></chapitre> <chapitre><titre> Controverses et t&#233;moignages</titre> <para>Je suis para&#238;t-il, un auteur dramatique d'avant-garde. La chose me para&#238;t m&#234;me &#233;vidente puisque je me trouve ici, aux entretiens sur le th&#233;&#226;tre d'avant-garde. Cela est tout &#224; fait officiel. </para> <para>Maintenant, que veut dire avant-garde ? Je ne suis pas docteur en th&#233;&#226;tralogie, ni en philosophie de l'art, &#224; peine ce qu'on appelle un homme de th&#233;&#226;tre. </para></chapitre> <titre>Notes et contre-notes</titre><auteur>Eug&#232;ne Ionesco</auteur>

  10. Structure O.O Page 130-144 du livre de P. Rigaux Objets et classes: • Contenu d’un formulaire • Figure géométrique • Nœud d’un fichier XML Méthodes : fonctions de la classe • Création d’un objet • Manipulation de l’objet

  11. Exemple simple Classe Personne • Nom • Société Méthodes : • Création d’un object • Affichage de l’objet

  12. Exemple et représentation Java Classe Rectangle • Point (x,y) • Hauteur, Largeur Méthodes : • Création d’un rectangle • Affichage d’un 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

  13. 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 »);} }

  14. Classe Formulaire du livre Classe Formulaire Méthodes : fonctions de la classe • Création d’un formulaire • Affichage de l’objet • Transmission de l’objet Instructions: $form =new Formulaire (…..); $form->champs=« xxxx »;

  15. 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, email; public static void main (String args []) {nom = args[0]; prenom = args[1];email = args[2]; if ( (nom != null) && (nom.length() > 0) && (prenom != null) && (prenom.length() > 0) && (email != null) && (email.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, email); System.out.println ("Ajout de " + prenom + " " + nom + ". Email : " + email); // 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, "EMAIL", email)); // Ajout du nouvel élément elementRacine.appendChild (elPersonne); ……………….

  16. Importance de XML Standard de documents. • Conception • Echange (EDI) Applications aux documents texte: • Archives d’un journal • Documents non structurés Documents Multimédia: • Audio • Vidéo • Rechercher un segment, un objet…

  17. T.D. • Finir les stratégies PHP • Formulation du projet M1 • Pour les projets informatiques • D.O.M en XML • Structure orientée objet • Langage C • Extensions C++ et Java

  18. Projets • Outil query.php • Afficher le schéma des tables dans une nouvelle fenêtre. • Feuilles de style dans l’affichage. • 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 l’exécuter avec eval($p) ;

  19. Projet XML • Correcteur XML • PHP with dom • Java with dom • Interface pour naviguer dans un arbre XML • Implémentation du correcteur

More Related