Correction Examen normal Données semi structurées - XML, DTD, XML

Ce document est destiné aux étudiants de la Faculté MI, Département Informatique, niveau 3L SI, pour l'année académique 2020/2021. Il traite du module "Données semi-structurées" et comprend des exercices corrigés pour le contrôle normal de semestre.

Il couvre les notions suivantes:

  • Proposition d'un DTD pour une bibliographie.
  • Différences entre DTD et XML Schema.
  • Requêtes XQuery pour extraire des informations spécifiques.
  • Transformation de fichiers XML.

Examen Données semi structurées -DSS - XML, DTD, XML

Télécharger PDF

Faculté : MI

Département : Informatique 2020/2021

Niveau : 3L SI

Module : Données semi-structurées

Durée : 01h :30

Corrigé du Contrôle normal de semestre

Exercice 1 (8pts=5+3)

1. Proposer un DTD (5pts=1+1+1+1+1+1+1+1+1+1+1+1+8*0.25)

<!ELEMENT bibligraphy (livre|article)+>
<!ELEMENT livre (titre,auteurs,annee,editeur,isbn)>
<!ELEMENT article (titre,auteurs,editeur?,annee)>
<!ELEMENT auteur (auteur,auteur?)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT annee (#PCDATA)>
<!ELEMENT isbn (#PCDATA)>
<!ELEMENT auteur (#PCDATA)>
<!ELEMENT editeur (#PCDATA)>
<!ATTLIST livre lang (#PCDATA) #REQUIRED>
<!ATTLIST article lang (#PCDATA) #REQUIRED>
<!ATTLIST auteur id (#PCDATA) #REQUIRED>

2. (2 pts=0.5+1.5)

• Non, En DTD on peut pas spécifier ni les types ni l'intervalle des valeurs
<xs:element name="annee">
 <xs:simpleType>
 <xs:restriction base="xs:integer">
 <xs:minExclusive value="1800"/>
 <xs:maxInclusive value="2022"/>
 </xs:restriction>
 </xs:simpleType>
</xs:element>

Exercice 2 (8pts=1.5+1,5+2+4)

1. Les requêtes XQuery :

• Les noms des auteurs
for $aut in distinct-values(//auteur) return data($aut)
• Le nombre des auteurs
let $nbr:=count( for $aut in distinct-values(//auteur) return $aut)
return $nbr
• Les titres des ouvrages ayant plus d'un auteur
for $ouvt in (/bibligraphy/*[count(.//auteur)>1])
return data($ouvt/titre)

2. Écrire la requête XQuery permettant de donner un fichier XML contenant seulement les livres comme suit :

<LesLivres nbrLivre="{count(//livre)}" >
 {for $liv at $pos in (//livre)
 return(
<livre num="{$pos}" isbn="{$liv/isbn}" annee="{$liv/annee}">
 {$liv/titre}
 {for $a at $pos2 in ($liv//auteur) return(
 <auteur num="{$pos2}" nom="{$a}"> </auteur> )}
 {$liv/editeur}
</livre>)}
</LesLivres>

Exercice 3 (3pts)

3. Donner le résultat de transformation du fichier bib.xml :

Résultat
remarque
contenu de la bibliothèque:
 -livre-
 Semantic Web
 Berners Lee
 2000
 -livre
Application de la règle correspondant à ’’/’’  Application de la règle correspondant à ’’livre’’/’’  Aucune règle correspondante +element simple  Aucune règle correspondante +element simple  Aucune règle correspondante +element simple  Application de la règle correspondant à ’’livre’’/’’

FAQ

1. Qu'est-ce qu'un DTD ?

Un DTD (Document Type Definition) est un ensemble de règles qui définissent la structure et le contenu d'un document XML.

2. Qu'est-ce que XQuery ?

XQuery est un langage de requête pour les bases de données XML. Il permet d'interroger et de manipuler des données XML de manière similaire à SQL pour les bases de données relationnelles.

3. Pourquoi utiliser XQuery pour les données XML ?

XQuery est utilisé pour extraire, transformer et manipuler des données XML de manière efficace et flexible, ce qui est particulièrement utile pour les applications nécessitant des requêtes complexes sur des données semi-structurées.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne