Projet de Master première année 2007 / 2008 Plateforme de certification de documents XML Tuteur : M. Fabrice Lefèvre
Sommaire Mission Organisation du travail Orientations choisies Comparateur de documents XML Plateforme Web Présentation des résultats Intégration du comparateur à la plateforme Tests Évolution de l’application Conclusion Démonstration
La mission Comparateur de documents XML Intégration du comparateur sur une plateforme Web Généricité de l’application Finalité : comparer des documents XML, dont ceux générés par OpenOffice Deux cas d’utilisation concrets : Correction de TP de c2i Validation de fiches de compte-rendu de Projet M1
Organisation du travail Séparation de la conception en trois parties : Développement de la Plateforme Web Développement du Comparateur XML Présentation des résultats d’une comparaison Répartition des tâches Suivi du planning (cf. page 31 du rapport)
Orientations choisies Choix des langages PHP (librairies DOM, XSL) Autres solutions (JAVA) Module comparateur : Un niveau de comparaison
Comparateur - Présentation Comparaison entre deux documents XML : Un modèle Un testé But : retourner les différences entre les deux documents
Comparateur - Reprise de l’existant Étude de l’outil XyDiff Concept : comparaison de versions de documents XML Ce que XyDiff a apporté à notre projet : Approche de la comparaison par type de nœud Diminution de la complexité
Comparateur – Fonctionnement (1) Trois étapes de développement Fichiers identiques ou non Repérage des différences (affichage) Stockage des différences (arbre des différences) Filtres Suppression des commentaires avant comparaison Non comparaison du contenu texte Ajout des namespaces (fichiers au format OpenDocument)
Comparateur – Fonctionnement (2) Association XSL Liaison de l’arbre des différences XML avec un fichier XSL Création d’une page HTML de présentation des résultats
Comparateur – Problèmes rencontrés Comparaison d’un nœud modèle avec tous les nœuds testés d’un même niveau: Choix du nœud identique ou le plus ressemblant au modèle Ajout d’un nœud fils : DomNode::appendChild(DomNode) => faux DomNode ::appendChild(DomElement)
Plateforme Web – Présentation (1) Application générique Deux cas d’utilisation du comparateur Correction de TP de c2i Validation de fiches de compte-rendu Trois profil-types Administrateur Rédacteur Utilisateur Modèle de données (cf. MPD, page 10 du rapport)
Plateforme Web – Présentation (2) Architecture des répertoires
Plateforme Web – Mise en forme CSS : Correction de TP de c2i Validation de fiches de compte-rendu de projet JavaScript : Menus Modification de profil-type AJAX : Saisie semi-automatique
Plateforme Web - Sécurité Authentification Tentative de connexion à la base de données interne Tentative de connexion à l’annuaire LDAP de l’UAPV Démarrage d’une session lors de la connexion
Plateforme Web – Fonctionnalités (1) Fonctionnalités réservées aux administrateurs Ajout de nouveaux profil-types Modification ou suppression de profils-types existants Fonctionnalités communes aux administrateurs et aux rédacteurs Dépôt de documents modèles Récupération de fichiers Gestion des fichiers
Plateforme Web – Fonctionnalités (2) Fonctionnalités communes aux trois profils-types Dépôt de documents à comparer Consultation des résultats
Présentation des résultats (1) Deux types de présentation : En termes techniques XML (pour les documents XML) Avec transparence du XML (pour les documents OpenOffice) Harmonisation de la mise en forme avec celle de la plateforme (CSS)
Présentation des résultats (2)
Intégration du comparateur Intégration facile du Comparateur car: Comparateur et Plateforme développés dans le même langage : PHP Un appel de la fonction principale() du Comparateur permet de faire la comparaison et la mise en forme des résultats Plateforme développée de manière à ce qu’un module soit intégrable facilement
Tests Tests du comparateur XML Tests de la plateforme Web : Validation pour chaque type de différence Validation pour des fichiers plus complexes Tests de la plateforme Web : Test unitaire pour chaque fonctionnalité Par des testeurs différents Tests de non régression
Évolution de l’application Plateforme Web Méthode SSO pour centraliser l’authentification Comparateur XML Comparaison d’une séquence de nœuds Présentation des résultats Amélioration de la présentation pour les fichiers OpenDocument
Conclusion Application terminée mais évolutive Reprise facilitée par les documentations complètes et précises
Nous vous proposons maintenant une démonstration de notre application…