Td corrigé Examen XML - Examen corrige pdf

Examen XML - Examen corrige

13 janv. 2007 ... On corrige avec « yes ». ... ELEMENT examen (titre, date, questions) >. <! .... Trouvez les expressions XPath qui retournent les informations ...




part of the document




ESIAL 3A 13 Janvier 2007
Examen XML
Durée : 2 heures
Documents autorisés

Exercice 1: Syntaxe XML ( 2 points) : De 1 à 4 (1 point) et de 5 à 9 (1 point)

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

Solution :

1- Mauvaise valeur pour standalone. On corrige avec « yes ».
2- Attributs répétés dans l’élément titre. Il faut en changer un, par exemple en mettant une
majuscule.
3- au lieu de .
4- Attribut avec valeur non quotée . On ajoute les quotes.
5- Balises b et i non rapprochées. On interverti.
6- Attribut sans valeur . On met une valeur.
7- Il y a ]]> dans CDATA, ce qui peut être interprété comme la fin de section CDATA. On
ajoute un blanc.
8- Balise non fermée . On ferme.
9- Texte hors contenu "fin du document". On met en commentaire, ou on déplace le texte
dans le corps du document.

Exercice 2: Syntaxe et Construction de DTD (4 points): 0,5+0,5+0,5+2 ,5 points

Pour chacun des documents 1,2,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.




]>

du texte x ne correspond pas à bold



2.


OK
]>

ljs sldjf sljd
mmmqmm qqq mmm qq





3.




]>



Et voilà
L’élement est de trop.


4.










Exercice 3: Des DTD vers les schémas ( 4 points) :

2 points pour un schéma sans les caractéristiques
2 points pour les caractéristiques.

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















Solution :








































































Exercice 4: Chemins XPath (3 points) : 0,5+ 0,5,+0,5+ 0,5+ 0,5+ 0,5 points)

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

 SHAPE \* MERGEFORMAT 

Trouvez les expressions XPath qui retournent les informations suivantes (on ne suppose que le contexte initial est l'élément racine de nom booker):

l'auteur du sixième livre dans la liste
Solution : //award[6]/author

le titre du livre qui a gagné en 2000
Solution : //award[year='2000']/title

le nom de l'auteur du livre intitulé "Possession"
Solution : //award[title='Possession']/author

le titre des livres dont "J M Coetzee" est l'auteur
Solution : //award[author='J M Coetzee']/title

le nom de tous les auteurs dont le livre a gagné depuis 1995
Solution : //award[year > '1995']/author

le nombre total de prix décerné
Solution : count(//award)



Exercice 5 : Programmation XSLT ( 7 points ) : (1+2+2+2 points)

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

------------------------------------------------- Commerce Electronique Salle: Amphi A Modules : PHP et MySQL, XML Inscrits (note): I235678 (16) I784451 F569834 ------------------------------------------------- Bases de données Salle: Painlevé Modules : SQL, Optimisation Inscrits (note): A675432 (14) B455978 B568709 (12)

2.
Modifiez le programme afin qu’il affiche d’une part uniquement les numéros d’étudiants qui possèdent une note , et d’autre part, les enseignants pour chaque module (entre parenthèses après le nom du module).

Solution :









-------------------------------------------------

Salle :
Modules :
Inscrits (note):

-
()






(

,

)
,





Ce qui donne :
-------------------------------------------------
Commerce Electronique
Salle : Amphi A
Modules : PHP et MySQL ( Enseignant1 ), XML ( Enseignant2 , Enseignant3 )
Inscrits (note):

- I235678 (16)
-------------------------------------------------
Bases de données
Salle : Painlevé
Modules : SQL ( Enseignant2 ), Optimisation ( Enseignant4 )
Inscrits (note):

- A675432 (14)
- B568709 (12)

3.














à venir...















4.






























PAGE 


PAGE 7






Kingsley Amis
The Old Devils
1986


[…]

[…]