Examen XML

13 janv. 2007 ... Exercice 1: Syntaxe XML ( 2 points) : De 1 à 4 (1 point) et de 5 à 9 (1 point) ... On
corrige avec « yes ». .... Modules : PHP et MySQL, XML

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

[pic]

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


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


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


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


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


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


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