Exercice 1 : XML (8pts) Le fichier XML : <?xml version="1.0" encoding="UTF-8"?>
Exercice 1 : XML (8pts) Le fichier XML : <?xml version="1.0" encoding="UTF-8"?> <!--DTD --> <!-- <!DOCTYPE Pèlerinages SYSTEM "EFF2019.dtd"> --> <!-- XSD --> <!-- Ajouter les deux attribut au racine: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="EFF2019.xsd" --> <Pèlerinages > <Pèlerinage annee="2018"> <pelerin num="p1" sexe="M" nationalité="marocaine" age="50"> <nom>Alaoui</nom> <prenom>Amine</prenom> <dossier_medical groupe_sanguin="O+"> <maladie>hypertension</maladie> </dossier_medical> </pelerin> <pelerin num="p2" sexe="F" nationalité="libanaise" age="40" idaccompagnateur="p1"> <nom>Talal</nom> <prenom>Sara</prenom> <dossier_medical groupe_sanguin=" A+"> <enceinte semaine="4"/> </dossier_medical> </pelerin> <pelerin num="p3" sexe="H" nationalité="egyptien" age="45"> <nom>Madbouli</nom> <prenom>Yassir</prenom> <dossier_medical groupe_sanguin=" B+"> </dossier_medical> </pelerin> </Pèlerinage> </Pèlerinages> <!-- Remarque: --> <!-- J'ai changer la valeur de l'attribut "idaccompagnateur" de pelerin de "num" 2 car la valeur "P1234" ne correspondant a aucun pelerin--> 1. Exprimer en XPATH les requêtes suivantes : a) Afficher le nombre de pèlerins par nationalité. (2pts) count(//pelerin[./dossier_medical/maladie/text() = "hypertension"]) Dossier II: Program mation web coté client : (18pts) EFF 2019 TH TDI 2 b. Les pèlerines enceintes. (1pt) //enceinte/parent::node()/parent::node() c. Le dossier médical du Pèlerin ‘P456’. (1pt) //dossier_medical[../@num=" P456"] 2. Ecrire le schéma XSD ou DTD de l’élément pèlerin du fichier XML. (3pts) DTD : <?xml version="1.0" encoding="UTF-8"?> <!ELEMENT Pèlerinages (Pèlerinage)+ > <!ELEMENT Pèlerinage (pelerin)+> <!ATTLIST Pèlerinage annee CDATA #REQUIRED> <!ELEMENT pelerin (nom, prenom, dossier_medical) > <!ATTLIST pelerin num ID #REQUIRED> <!ATTLIST pelerin sexe (M|F|H) #REQUIRED> <!ATTLIST pelerin nationalité CDATA #REQUIRED> <!ATTLIST pelerin age CDATA #REQUIRED> <!ATTLIST pelerin idaccompagnateur IDREF #IMPLIED> <!ELEMENT nom (#PCDATA) > <!ELEMENT prenom (#PCDATA) > <!ELEMENT dossier_medical (maladie*, enceinte?)> <!ATTLIST dossier_medical groupe_sanguin CDATA #REQUIRED> <!ELEMENT maladie (#PCDATA) > <!ELEMENT enceinte EMPTY> <!ATTLIST enceinte semaine CDATA #REQUIRED> <!-- Enregistrer le sous le titre "EFF2019.dtd" --> XSD : <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="Pèlerinages"> <xs:complexType> <xs:sequence> <xs:element name="Pèlerinage" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="pelerin" maxOccurs="unbounded"> M' Aoubaida EFF 2019 TH TDI 3 <xs:complexType> <xs:sequence> <xs:element name="nom" type="xs:string"></xs:element> <xs:element name="prenom" type="xs:string"></xs:element> <xs:element name="dossier_medical"> <xs:complexType> <xs:sequence> <xs:element name="maladie" type="xs:string" maxOccurs="unbounded" minOccurs="0"></xs:element> <xs:element name="enceinte" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:attribute name="semaine" type="xs:string" use="required"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="groupe_sanguin" type="xs:string" use="required"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="num" type="xs:ID"></xs:attribute> <xs:attribute name="sexe" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="H"></xs:enumeration> <xs:enumeration value="F"></xs:enumeration> <xs:enumeration value="M"></xs:enumeration> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="nationalité" type="xs:string" use="required"></xs:attribute> <xs:attribute name="age" type="xs:positiveInteger" use="required"></xs:attribute> <xs:attribute name="idaccompagnateur" type="xs:IDREF" use="optional"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="annee" type="xs:gYear" use="required"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> <!-- Enregistrer le sous le titre "EFF2019.xsd" --> 3. Ecrire les données du pèlerin « p1 » sous format JSON. (2pts) "pelerin": { "@num": "p1", "@sexe": "M", "@nationalité": "marocaine", "@age": "50", M' Aoubaida EFF 2019 TH TDI 4 "nom": "Alaoui", "prenom": "Amine", "dossier_medical": { "@groupe_sanguin": "O+", "maladie": "hypertension" } } M' Aoubaida EFF 2019 TH TDI 5 Exercice 2 : XML (10pts) 1. Créer en HTML5 les deux zones « informations personnelles» et « accompagnateur » de la page ci-dessus. (4pts) Voir les deux premières ‘‘div’’ <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>EFF2019TH</title> <style> header h2{ border: 2px solid black; } form{ border: 2px solid black; } </style> </head> <body> <header> <h2>Inscription au tirage au sort du pèlerinage de l'année 2020</h2> </header> <div> <h4>Informations personelles</h4> <form name="f1"> <table> <tr> <td> CIN: </td> <td> M' Aoubaida EFF 2019 TH TDI 6 <input type="text" id="inptxtCIN" placeHolder="entrer votre CIN" /> </td> </tr> <tr> <td> NOM: </td> <td> <input type="text" id="inptxtNOM" placeHolder="entrer votre nom" /> </td> </tr> <tr> <td> PRENOM: </td> <td> <input type="text" id="inptxtPRENOM" placeHolder="entrer votre prenom" /> </td> </tr> <tr> <td> Date de dernier pélerinage: </td> <td> <input type="text" id="inptxtDATE" /> </td> </tr> <tr> <td> sexe: </td> <td> <input name="sexe" type="radio" id="inprbH" value="H" onchange="MasquerAccompagnateur()"/> H <input name="sexe" type="radio" id="inprbF" value="F" checked onchange="MasquerAccompagnateur()"/>F </td> </tr> </table> </form> </div> <div> <h4>Accompagnateur (Mahram):</h4> <form name="f2"> <table> <tr> <td> CIN de l'accompagnateur </td> <td> <select id="cmbCIN"> <option value="A">AXXXX</option> <option value="B">BXXXXX</option> <option value="C">CXXXXXX</option> </select> </td> </tr> <tr> <td> Lien familial: </td> <td> <select id="cmbLien"> <option value="Pere">Pere</option> <option value="Ancle">Ancle</option> M' Aoubaida EFF 2019 TH TDI 7 <option value="Frère">Frère</option> </select> </td> </tr> </table> </form> </div> <div > <h4>Dossier Medical:</h4> <form name="f3"> <table> <tr> <td> Groupe singuin </td> <td> <select id="cmbSING"> <option value="">A+</option> <option value="">A-</option> <option value="B">B+</option> <option value="B">B-</option> <option value="C">O+</option> <option value="C">O-</option> <option value="C">AB+</option> <option value="C">AB-</option> </select> </td> </tr> <tr> <td> Maladies: </td> <td> <textarea id="listMaladies" rows="5" cols="10"></textarea> </td> </tr> </table> </form> </div> <br> <input type="submit" value="s'inscrire"/> </body> </html> 2. Ajouter les contrôles suivants : a)La différence entre La date du dernier pèlerinage et à la date d’aujourd’hui doit être supérieure à 9 ans. (2pts) function VerifierDate(){ var obj = document.getElementById("inptxtDATE"); var regExp = new RegExp("\\d{4}-\\d{2}-\\d{2}","gi"); M' Aoubaida EFF 2019 TH TDI 8 if(regExp.test(obj.value)) { var dateEntree = obj.value.split("-"); var dateAjourdhui = new Date(); if(dateEntree[0] > dateAjourdhui.getFullYear() - 9) { return false; } else if(dateEntree[0] < dateAjourdhui.getFullYear() - 9) { return true; } else{ if(dateEntree[1] > dateAjourdhui.getMonth()+1) { return false; } else if(dateEntree[1] < dateAjourdhui.getMonth()+1) { return true; } else{ if(dateEntree[2] >= dateAjourdhui.getDate()) { return false; } else { return true; } } } } else{ return false; } } M' Aoubaida EFF 2019 TH TDI 9 b)Pour le candidat masculin on masque la zone «Accompagnateur ». (2pts) function MasquerAccompagnateur(){ if(document.getElementById("inprbH").checked){ document.querySelectorAll("div")[1].style.display = "none"; } else{ document.querySelectorAll("div")[1].style.display = "block"; } } 3. Ecrire le code du bouton « s’inscrire » qui permet de récupérer les données saisies par le candidat et de les envoyer à un contrôleur (une page web dynamique) et ceci en appelant la fonction $.ajax avec un URL : ‘contrôleur’. (2pts) M' Aoubaida EFF 2019 TH TDI 10 </> M’BAREK AOUBAIDA </> M' Aoubaida اللهم إن كنت قد أصبت فمن فضلك. وإن كنت قد أخطأت فمن نفسي ومن الشيطان. -- uploads/s1/ eff2019th-dossier2.pdf
Documents similaires
-
27
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 29, 2021
- Catégorie Administration
- Langue French
- Taille du fichier 0.2677MB