Soit un fichier XML décrivant les résultats scolaires des élèves d'une école, classe par classe, matière par matière.
Sa Dtd est la suivante :
<!DOCTYPE ecole[
<!ELEMENT ecole (classe*)>
<!ELEMENT classe (maitre,eleves)><!ATTLIST classe niveau CDATA #REQUIRED>
<!ELEMENT maitre (nom,adresse)>
<!ATTLIST maitre sexe (h|f) #REQUIRED>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT adresse (#PCDATA)>
<!ELEMENT eleves (eleve*)>
<!ELEMENT eleve (nom, notes)>
<!ATTLIST eleve id ID #REQUIRED an CDATA #REQUIRED sexe (h|f) #REQUIRED>
<!ELEMENT notes (francais,calcul,histoire,geo)>
<!ELEMENT francais (note*)>
<!ATTLIST francais coeff CDATA #REQUIRED>
<!ELEMENT calcul (note*)>
<!ATTLIST calcul coeff CDATA #REQUIRED>
<!ELEMENT histoire (note*)>
<!ATTLIST histoire coeff CDATA #REQUIRED>
<!ELEMENT geo (note*)>
<!ATTLIST geo coeff CDATA #REQUIRED>
<!ELEMENT note (#PCDATA)>
<!ATTLIST note id CDATA #IMPLIED>
Le source : ecole.xml
Dont voici l'arbre partiellement développé :
Récupérer le fichier ecole.xml
Ecole0) Créer une feuille style XSL constitué de deux règles
Ecole1) Ajouter une règle classe qui affiche la valeur de son attribut "niveau" dans un paragraphe.
classe de cm1
classe de cm2
Ecole 2) Modifier la règle classe de sorte qu'elle affiche en ligne : le niveau, suivi du nom de l'enseignant
classe de cm1 : Jean Seigner
classe de cm2 : Julie Deslivres
Ecole 3) Préfixer le nom de l'enseignant part Monsieur ou Madame selon la valeur de l'attribut "sexe". Pour ce faire on crée une règle pour les maitre de sexe masculin et une règle distincte pour les maitres de sexe féminin.
classe de cm1 : Monsieur Jean Seigner
classe de cm2 : Madame Julie Deslivres
Ecole 4) Créer une règle "eleve" permettant d'afficher le nom des élèves de chaque classe dans une liste
classe de cm1 : Monsieur Jean Seigner
classe de cm2 : Madame Julie Deslivres
Ecole 5) Modifier la règle classe de sorte à afficher filles et garçons dans des listes distinctes
classe de cm1 : Monsieur Jean Seigner
Filles
Garçons
classe de cm2 : Madame Julie Deslivres
Filles
Garçons
Ecole 6) Modifier la règle classe de sorte à afficher filles et garçons dans un tableau de deux colonnes (filles, garçons)
classe de cm1 : Monsieur Jean Seigner
Filles | Garçons |
---|---|
|
|
classe de cm2 : Madame Julie Deslivres
Filles | Garçons |
---|---|
|
|
Ecole 7) Modifier et ajouter les règles nécessaires pour afficher le détail des notes par élève et par matière pour chaque classe
classe de cm1 : Monsieur Jean Seinier
Nom | Français | Calcul | Histoire | Geo |
---|---|---|---|---|
Filles | ||||
Anais | 10 8 7 | 5 7 6 | 8 9 | 3 6 5 |
Emilie | 7 10 8 | 4 6 7 | 3 4 10 | 8 8 9 |
Cecile | 6 7 10 | 3 4 7 | 8 6 4 | 6 9 |
Garçons | ||||
Jean | 5 8 9 | 7 7 | 8 6 4 | 6 9 10 |
Fabrice | 8 8 9 | 9 7 8 | 8 5 9 | 5 3 7 |
Nicolas | 10 3 10 | 4 6 7 | 3 4 6 | 7 8 6 |
classe de cm2 : Madame Julie Deslivres
Nom | Français | Calcul | Histoire | Geo |
---|---|---|---|---|
Filles | ||||
Fanny | 5 3 7 | 7 7 | 5 7 6 | 8 9 10 |
Rose | 6 7 10 | 3 4 7 | 8 6 4 | 6 9 |
Garçons | ||||
Bernard | 4 6 7 | 9 8 7 | 8 6 5 | 3 6 5 |
Gabriel | 9 10 8 | 4 6 7 | 3 4 10 | 8 8 9 |
Mustapha | 8 4 9 | 9 7 8 | 8 7 9 | 5 3 7 |
Tristan | 10 3 10 | 4 6 7 | 3 4 6 | 9 4 8 |
Ecole 8) Afficher en rouge les notes sous la moyenne (<5) et afficher la moyenne de chaque élève en utilisant les fonctions count(xpath) qui compte le nombre d'éléments désignés par xpath et la fonction sum qui additionne les valeurs des éléments désignés par xpath.
classe de cm1 : Monsieur Jean Seinier
Nom | Français | Calcul | Histoire | Geo |
---|---|---|---|---|
Filles | ||||
Anais | 10 8
7
moyenne : 8.33 |
5 7 6
moyenne : 6 |
8 9
moyenne : 8.5 |
3 6 5
moyenne : 4.67 |
Emilie | 7 10 8
moyenne : 8.33 |
4 6
7
moyenne : 5.67 |
3 4 10
moyenne : 5.67 |
8 8 9
moyenne : 8.33 |
Cecile | 6 7 10
moyenne : 7.67 |
3 4
7
moyenne : 4.67 |
8 6
4
moyenne : 6 |
6 9
moyenne : 7.5 |
Garçons | ||||
Jean | 5 8 9
moyenne : 7.33 |
7 7
moyenne : 7 |
8 6
4
moyenne : 6 |
6 9 10
moyenne : 8.33 |
Fabrice | 8 8 9
moyenne : 8.33 |
9 7 8
moyenne : 8 |
8 5 9
moyenne : 7.33 |
5 3
7
moyenne : 5 |
Nicolas | 10 3 10 ab
moyenne : 7.67 |
4 6
7
moyenne : 5.67 |
3 4 6
moyenne : 4.33 |
7 8
6
moyenne : 7 |
classe de cm2 : Madame Julie Deslivres
Nom | Français | Calcul | Histoire | Geo |
---|---|---|---|---|
Filles | ||||
Fanny | 5 3
7
moyenne : 5 |
7 7
moyenne : 7 |
5 7 6
moyenne : 6 |
8 9 10
moyenne : 9 |
Rose | 6 7 10
moyenne : 7.67 |
3 4
7
moyenne : 4.67 |
8 6 4
moyenne :ab 6 |
6 9
moyenne : 7.5 |
Garçons | ||||
Bernard | 4 6
7
moyenne : 5.67 |
9 8 7
moyenne : 8 |
8 6
5
moyenne : 6.33 |
3 6 5
moyenne : 4.67 |
Gabriel | 9 10 8
moyenne : 9 |
4 6 7
moyenne : 5.67 |
3 4 10
moyenne : 5.67 |
8 8 9
moyenne : 8.33 |
Mustapha | 8 4
9
moyenne : 7 |
9 7
8
moyenne : 8 |
8 7 9
moyenne : 8 |
5 3 7
moyenne : 5 |
Tristan | 10 3 10
moyenne : 7.67 |
4 6
7
moyenne : 5.67 |
3 4
6
moyenne : 4.33 |
9 4 8
moyenne : 7 |