Série d’exercices ASPNET, XML, DTD, XSD, XSLT, XPATH TDI 2ème A 2016-2017 HARCH

Série d’exercices ASPNET, XML, DTD, XSD, XSLT, XPATH TDI 2ème A 2016-2017 HARCHI Abdellah & SERBOUT Sara 1 Série d’exercices ASPNET, XML, DTD, XSD, XSLT, XPATH Exercice 1 : Une Application de gestion des emplois du temps a généré le fichier XML suivant : <?xml version="1.0"?> <seances> <seance jour="lundi" debut=”08:00” fin=”10:30”> <salle>S1</salle> <module>SGBDR I</module> <formateur>CHAKIR Said</formateur> <groupe>TDI201</groupe> </seance> <seance jour=”lundi” debut=”10:30” fin=”13:00”> <salle>S2</salle> <module>Reseaux </module> <formateur>TAHIR Nadia</formateur> <groupe>TDI201</groupe> </seance> <seance jour=”mardi” debut=”08:00” fin=”10:30”> <salle>S1</salle> <module>SGBDR I</module> <formateur>CHAKIR Said</formateur> <groupe>TDI202</groupe> </seance> ………… </seances> 1) Donner les expressions XPath à appliquer à ce document XML pour extraire : a) Toutes les séances du formateur CHAKIR Said. b) Toutes les salles utilisées par le groupe TDI201. c) Le nombre de séances qui commencent à 08 :00 heure. 2) Soit le fichier XSL suivant : <?xml version=”1.0” ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <body> <table border="1"> <tr> <td>Formateurs</td> <td>Groupes</td> <td>Modules</td> </tr> <xsl:for-each select="seances/seance"> <tr> <td> <xsl:value-of select="formateur"/> </td> <td> <xsl:value-of select="groupe"/> </td> <td> <xsl:value-of select=”’’module’’”/> </td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> a) Expliquer la syntaxe : <xsl:for-each select=’’seances/seance’’>. b) Donner l’affichage obtenu si on applique ce fichier XSL au document XML précédent. c) Ajouter une ligne à ce fichier XSL pour inclure l’affichage des jours des séances. Exercice 2 : Le fichier XML suivant enregistre les résultats des matchs d’un championnat de football : Série d’exercices ASPNET, XML, DTD, XSD, XSLT, XPATH TDI 2ème A 2016-2017 HARCHI Abdellah & SERBOUT Sara 2 <?xml version="1.0" ?> <FOOT DIVISION="1"> <JOURNEE NUMERO="1" DATE="01/09/2013"> <MATCH LOCAUX="WAC" VISITEURS="RCA" BUTS_LOCAUX="1" BUTS_VISITEURS="2" /> <MATCH LOCAUX="DHJ" VISITEURS="OCK" BUTS_LOCAUX="2" BUTS_VISITEURS="1" /> <MATCH LOCAUX="HUSA" VISITEURS="MAS" BUTS_LOCAUX="0" BUTS_VISITEURS="0" /> <MATCH LOCAUX="FAR" VISITEURS="WAF" BUTS_LOCAUX="1" BUTS_VISITEURS="1" /> </JOURNEE> <JOURNEE NUMERO="2" DATE="08/09/2013"> <MATCH LOCAUX="RCA" VISITEURS="FAR" BUTS_LOCAUX="3" BUTS_VISITEURS="2" /> <MATCH LOCAUX="WAF" VISITEURS="HUSA" BUTS_LOCAUX="0" BUTS_VISITEURS="1" /> <MATCH LOCAUX="MAS" VISITEURS="DHJ" BUTS_LOCAUX="0" BUTS_VISITEURS="1" /> <MATCH LOCAUX="KAC" VISITEURS="WAC" BUTS_LOCAUX="1" BUTS_VISITEURS="0" /> </JOURNEE> <JOURNEE NUMERO="3" DATE="15/09/2013"> <MATCH LOCAUX="ASS" VISITEURS="MAT" BUTS_LOCAUX="1" BUTS_VISITEURS="3" /> <MATCH LOCAUX="WAC" VISITEURS="WAF" BUTS_LOCAUX="3" BUTS_VISITEURS="2" /> <MATCH LOCAUX="DHJ" VISITEURS="FUS" BUTS_LOCAUX="1" BUTS_VISITEURS="0" /> <MATCH LOCAUX="MAS" VISITEURS="RCA" BUTS_LOCAUX="1" BUTS_VISITEURS="2" /> </JOURNEE> <JOURNEE NUMERO="4" DATE="22/09/2013"> <MATCH LOCAUX="FUS" VISITEURS="MAS" BUTS_LOCAUX="1" BUTS_VISITEURS="0" /> <MATCH LOCAUX="MAT" VISITEURS="WAC" BUTS_LOCAUX="2" BUTS_VISITEURS="0" /> <MATCH LOCAUX="KAC" VISITEURS="DHJ" BUTS_LOCAUX="1" BUTS_VISITEURS="1" /> <MATCH LOCAUX="ASS" VISITEURS="FAR" BUTS_LOCAUX="0" BUTS_VISITEURS="0" /> </JOURNEE> </FOOT> 1) Proposer un fichier XSD pour valider le fichier XML. 2) Que donnent les requêtes XPath suivantes : a) count(//MATCH[@BUTS_LOCAUX =@ BUTS_VISITEURS]). b) //JOURNEE[@NUMERO < 3]. c) //MATCH[@LOCAUX='DHJ']/@VISITEURS | //MATCH[@VISITEURS=’DHJ’]/@LOCAUX. 3) Ecrire les requêtes XPath permettant de sélectionner : a) la liste des matches de la 4ème journée. b) la première rencontre de chacune des journées. c) les matches nuls de l’équipe « KAC » jouant en locaux. Exercice 3 On souhaite créer un fichier XML qui regroupe la liste des stagiaires (cours du soir, cours du jour et la formation qualifiante) d’une école de formation, on veut conserver les informations suivantes : 1) Cours du soir  Filière dotée d’un nom et un nombre de personnes. - Employer (Société, matricule, datedebut, grade) 2) Cours du jour  Filière dotée d’un nom et un nombre de stagiaires. - Stagiaire (N° inscription, nom, prénom, âge) 3) Formation qualifiante  formation dotée d’un nom et un identifiant. - Participant (nom, Tel) Questions : 1. Ecrire une DTD pour cette application. 2. Ecrire un fichier valide pour cette DTD, comportant au moins deux stagiaires et faisant apparaître toutes les possibilités de la DTD. 3. Ecrire une XSD pour cette application. Exercice 4 : L'auteur du document XML suivant a cru pouvoir rédiger son document en se passant d'un éditeur XML. Aidez- le à corriger les erreurs qu’il contient pour qu’il puisse être bien formé. Répondez sur la feuille : entourez chaque erreur par un numéro et annotez-la. <?xml version="1.0" encoding="iso-8859-1" standalone="standalone"?> <?xml-stylesheet type="text/xsl" href="fg.xsl"?> <!-- à relire --> <document> <titre style="bold" style="big">Mes mémoires</titre> <auteur> Série d’exercices ASPNET, XML, DTD, XSD, XSLT, XPATH TDI 2ème A 2016-2017 HARCHI Abdellah & SERBOUT Sara 3 <nom>Gump</nom> <prénom>Forrest</prénom> <auteur> <description xmlns="http://www.w3.org/1999/xhtml" style="bold" Style="big" > <!-- à partir d'ici, on peut utiliser des éléments HTML c'est pratique pour du contenu documentaire --> <p align="center"> Ma maman disait toujours : "<i> la vie c'est comme une boite de <b>chocolat</i>, on ne sait jamais sur quoi on va tomber</b>". </p> <hr width=""/> <script language="JavaScript"> <![CDATA[ function check() { for (int i=10; i>0; i++) { if ( a[b[i]]>5 ) break; } } ]]> <!-- vérifier si la boucle doit s'écrire avec ++i et pas i++ --> </script> <p>La suite, je ne m'en souviens plus... </description> </document> <remarques> Mon document ne parse pas </remarques> <!-- il y a quelques erreurs -->fin du document Exercice 5 : Pour chacun des documents 1, 2, et 3, indiquez s’il est valide ou pas. Quand le document n’est pas valide, indiquez la nature de l’erreur (ou des erreurs). Les documents sont indépendants les uns des autres. 1. <?xml version="1.0" encoding="iso-8859-1" ?> <!DOCTYPE a [ <!ELEMENT a (b*, c)> <!ELEMENT b EMPTY> <!ELEMENT c (#PCDATA)> <!ATTLIST c x CDATA #FIXED "bold"> ]> <a> <b/> <b/> <c x= "medium"> du texte </c> </a> 2. <?xml version="1.0" encoding="iso-8859-1" ?> <!DOCTYPE a [ <!ELEMENT a (b*, c*, d?)> <!ELEMENT d EMPTY> <!ELEMENT b (#PCDATA)> <!ELEMENT c (#PCDATA)> ]> <a> <b>ljs sldjf sljd </b> <b>mmmqmm qqq mmm qq </b> <d/> </a> 3. <?xml version="1.0" encoding="iso-8859-1" ?> Série d’exercices ASPNET, XML, DTD, XSD, XSLT, XPATH TDI 2ème A 2016-2017 HARCHI Abdellah & SERBOUT Sara 4 <!DOCTYPE a [ <!ELEMENT a (b*, c)> <!ELEMENT b EMPTY> <!ELEMENT c (#PCDATA)> <!ATTLIST b truc CDATA #IMPLIED> ]> <a> <b/> <b truc="bidule"/> <c>Et voil`</c> <b/> </a> 4. Écrivez une DTD pour des documents XML de type examen. Un examen contient un code de cours, un titre et une date qui contient uniquement le mois et l'année. Ces éléments sont suivis par une liste de questions. Un examen a entre 5 et 6 questions et chaque question a une ou plusieurs parties. Une partie peut être vide ou bien avoir du texte ou bien encore avoir du texte mélangé avec d'autres parties. Le code ainsi que l’année doivent être des chaînes de caractères valides (ie caractères autorisés par xml), le mois est une chaine parmi la liste suivante : (jan, fev, mar, avr, mai, ju, jui, aou, sep, oct, nov, dec). Exemple d’instance : <?xml version="1.0" encoding="iso-8859-1" ?> <examen code="coursXML"> <titre>Outils et documents XML</titre> <date mois="sep" annee="2004" /> <questions> <question> <partie/> </question> <question> <partie/> </question> <question> <partie/> </question> <question> <partie> ma partie </partie> </question> <question> <partie > <partie/> une autre partie </partie> <partie > <partie> encore du texte une </partie> autre partie </partie> <partie >autre partie </partie> </question> </questions> </examen> Ou bien <?xml version="1.0" encoding="iso-8859-1" ?> <examen code="coursXML"> <titre>Outils et documents XML</titre> <date mois="sep" annee="2004" /> <questions> <question> <partie/> </question> <question> <partie/> </question> <question> <partie/> </question> <question> <partie> ma partie </partie> </question> <question> <partie/> </question> <question> <partie/> </question> </questions> </examen> Exercice 6 : Objectif : Les schémas permettent de décrire les modèles de données de façon plus précise. Transposez la DTD Livres.dtd en un schéma XSD avec les caractéristiques suivantes : •Une année est une chaîne de 4 caractères compris dans l'espace 0...9 •Un livre contient exactement un titre, un prix, une année et au moins un auteur. De plus, on associe à des éléments de ce type l'attribut "edition" qui précise si il s'agit d'un paperback ou d'une édition reliée. •Un prix est un type complexe, on lui associe deux attributs: "valeur" et "monnaie" ("monnaie" a un type qui dérive de "string", son champs de valeur se limite aux chaînes "USD" et "EUR") Livres.dtd <!ELEMENT livres (livre*)> <!ELEMENT livre (titre, auteur+, année, prix)> <!ATTLIST livre edition CDATA #REQUIRED> <!ELEMENT titre (#PCDATA)> Série d’exercices ASPNET, XML, DTD, XSD, XSLT, XPATH TDI 2ème A 2016-2017 HARCHI Abdellah & SERBOUT Sara 5 <!ELEMENT auteur (prenom, nom, laboratoire?, pays)> <!ELEMENT nom (#PCDATA)> <!ELEMENT prenom (#PCDATA)> <!ELEMENT année (#PCDATA)> <!ELEMENT prix EMPTY> <!ATTLIST prix monnaie CDATA #REQUIRED valeur CDATA #REQUIRED> <!ELEMENT pays (#PCDATA)> Exercice 7 : Voici un extrait du fichier qui contient la liste des gagnants du booker prize (liste de livres avec leur auteur et l'année de l'obtention du prix). <?xml version="1.0"?> <booker> <award> <author>Kingsley Amis</author> <title>The Old Devils</title> <year>1986</year> </award> <award> […] </award> […] </booker> Trouvez les expressions XPath qui retournent les informations suivantes : a) l'auteur du sixième livre dans la liste b) le titre du livre qui a gagné en 2000 c) le nom de l'auteur du livre intitulé "Possession" d) le titre des livres dont "J M Coetzee" est l'auteur e) le nom de tous les auteurs dont le livre a gagné depuis 1995 f) le nombre total de prix décernés Exercice 8 : 1. Dans cet exercice on travaille sur un document XML : Cours.xml qui contient des informations sur des cours en informatique comme indiqué en annexe. Donnez le résultat de la transformation du document suivant appliqué à Cours.xml <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" /> <xsl:template match="/"> <xsl:apply-templates select="ENSEIGNEMENT/COURS"/> </xsl:template> <xsl:template match="COURS"> <xsl:text> -------------------------------------------------</xsl:text> <br/> <xsl:value-of select="@INTITULE"/> <br/> <xsl:text> Salle: </xsl:text> <xsl:value-of select="SALLE"/> <br/> <xsl:text> Modules : </xsl:text> <xsl:apply-templates select="MODULE"/> <br/> <xsl:text> Inscrits (note): </xsl:text> <br/> <xsl:for-each select="ETUDIANT"> <xsl:value-of select="@NUMERO"/> <xsl:if test="NOTE"> (<xsl:value-of select="NOTE"/>) </xsl:if> uploads/Litterature/ devoir-aspnet.pdf

  • 40
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager