0% found this document useful (0 votes)
50 views5 pages

Examen Dss 2023 Solution

The document is an exam for the DSS module for the 3rd year of a License in Information Systems, covering structured and semi-structured data. It includes exercises on XML schema design, DTD creation for a restaurant menu, and XML validation for a university structure. Additionally, it requires the creation of an XSLT stylesheet and XPath queries to extract specific information from XML data.

Uploaded by

Aymen Raki
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views5 pages

Examen Dss 2023 Solution

The document is an exam for the DSS module for the 3rd year of a License in Information Systems, covering structured and semi-structured data. It includes exercises on XML schema design, DTD creation for a restaurant menu, and XML validation for a university structure. Additionally, it requires the creation of an XSLT stylesheet and XPath queries to extract specific information from XML data.

Uploaded by

Aymen Raki
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

3ème année Licence SI (2022-2023)

EXAMEN MODULE: DSS Durée : 1H30


EXERCICE 1 (/2 PTS):
Quelle est la différence entre les données structurées les données semi-structurées
 Les données structurées nécessitent un schéma fixe qui est défini avant que les données puissent
être chargées et interrogées dans un système de base de données. 1
 Les données semi-structurées sont des données qui contiennent des balises (libellés) ou d’autres
types de balisage qui identifient des entités individuelles et distinctes dans les données. 1
EXERCICE 2 (/8 PTS):
Un hôtel souhaite stocker les menus de sa carte du restaurant dans un fichier XML. Chaque menu
comporte plusieurs éléments : au moins une entrée, un plat et un dessert. Le fromage est optionnel et
dépend des menus proposés. Les éléments du menu sont ordonnés : entrée, plat, fromage (si besoin) et
dessert. Chaque menu comporte un prix (sous forme d'attribut obligatoire) et chaque entité (entrée,
plat, dessert et fromage s'il est présent) comporte obligatoirement un élément nom et un élément
description.
1- Proposer un DTD pour la carte du restaurant. 3pts
<!ELEMENT restaurant (menu+)>
<!ELEMENT menu (entrée+, plat, fromage?, dessert)>
<!ELEMENT entrée (nom, description)>
<!ELEMENT plat (nom, description)>
<!ELEMENT dessert (nom, description)>
<!ELEMENT fromage (nom, description)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ATTLIST menu prix CDATA #REQUIRED>
2- Proposer un schéma XML. 5 pts
<?xml version="1.0" encoding="UTF-8"?>0.5 pts <xs:element ref="nom"/>
<xs:schema <xs:element ref="description"/>
mlns:xs="http://www.w3.org/2001/XMLSchema"> </xs:sequence>
</xs:complexType>
<xs:element name="restaurant"> 0.5 </xs:element>
pts
<xs:complexType> <xs:element name="plat">0.5 pts
<xs:sequence maxOccurs="unbounded"> <xs:complexType>
<xs:element ref="menu"/> <xs:sequence>
</xs:sequence> <xs:element ref="nom"/>
</xs:complexType> <xs:element ref="description"/>
</xs:element> </xs:sequence>
</xs:complexType>
<xs:element name="menu"> 1.5 pts </xs:element>
<xs:complexType>
<xs:element name="fromage">0.5 pts
<xs:sequence>
<xs:complexType>
<xs:element ref="entrée"/>
<xs:sequence>
<xs:element ref="plat"/>
<xs:element ref="nom"/>
<xs:sequence minOccurs="0">
<xs:element ref="description"/>
<xs:element ref="fromage"/>
</xs:sequence>
</xs:sequence>
</xs:complexType>
<xs:element ref="dessert"/>
</xs:element>
</xs:sequence>
<xs:attribute name="prix" type="xs:string" <xs:element name="dessert">0.5 pts
use="required"/> <xs:complexType>
</xs:complexType> <xs:sequence>
</xs:element> <xs:element ref="nom"/>
<xs:element name="entrée"> 0.5 pts <xs:element ref="description"/>
<xs:complexType> </xs:sequence>
<xs:sequence> </xs:complexType>
</xs:element>
<xs:element name="nom" type="xs:string"/>0.5 pts </xs:schema>
<xs:element name="description" type="xs:string"/>
OU

<?xml version="1.0" encoding="UTF-8"?>


<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="restaurant">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded">
<xsd:element name="menu">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="entrée" maxOccurs="unbounded" type="NomDescription"/>
<xsd:element name="plat" maxOccurs="1" type="NomDescription"/>
<xsd:element name="fromage" minOccurs="0" type="NomDescription"/>
<xsd:element name="dessert" maxOccurs="1" type="NomDescription"/>
</xsd:sequence>
<xsd:attribute name="prix" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="NomDescription">
<xsd:sequence>
<xsd:element name="nom" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="description" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

EXERCICE 3 (/10 PTS ) : La figure 1 présente un fichier XML « univ-bouira.xml ».


<?xml version="1.0" encoding="UTF-8"?>
<univ_bouira acro="uamob" site_officiel="https://www.univ-bouira.dz/">
<faculte acro="fse">
<localisation>pole_universitaire</localisation>
<nbr_blocs>1</nbr_blocs>
<salle type="salle_td" nbr="50" capacite="15"/>
<salle type="grande_salle" nbr="5" capacite="100"/>
<salle type="Amphi" nbr="4" capacite="300"/>
<salle type="salle_tirage" nbr="1"/>
<departement acro="info">
<bureaux type="administration" nbr="5"/>
<bureaux type="laboratoire" nbr="10"/>
</departement>
<departement acro="math">
<bureaux type="administration" nbr="5"/>
</departement>
</faculte>
</univ_bouira>
1-Proposer un Schéma XML pour valider le document. 4 pts
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

<xs:element name="univ_bouira">
<xs:complexType>
<xs:sequence>
<xs:element ref="faculte"/>
</xs:sequence>
<xs:attribute name="acro" type="xs:string" use="required"/>
<xs:attribute name="site_officiel" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>

<xs:element name="faculte">
<xs:complexType>
<xs:sequence>
<xs:element name="localisation" type="xs:string"/>
<xs:element name="nbr_blocs" type="xs:string"/>
<xs:element ref="salle" maxOccurs="unbounded"/>
<xs:element ref="departement" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="acro" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>

<xs:element name="salle">
<xs:complexType>
<xs:attribute name="capacite" type="xs:string"/>
<xs:attribute name="nbr" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>

<xs:element name="departement">
<xs:complexType>
<xs:sequence>
<xs:element ref="bureaux" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="acro" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>

<xs:element name="bureaux">
<xs:complexType>
<xs:attribute name="nbr" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>

Ou

<?xml version="1.0" encoding="UTF-8"?>


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="univ_bouira">
<xs:complexType>
<xs:sequence>
<xs:element name="faculte" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="localisation" type="xs:string"/>
<xs:element name="nbr_blocs" type="xs:string"/>
<xs:element name="salle" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="capacite" type="xs:string"/>
<xs:attribute name="nbr" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>

<xs:element name="departement" maxOccurs="unbounded">


<xs:complexType>
<xs:sequence>

<xs:element name="bureaux" maxOccurs="unbounded">


<xs:complexType>
<xs:attribute name="nbr" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>

<xs:attribute name="acro" type="xs:string" use="required"/>


</xs:complexType>
</xs:element>
</xs:sequence>

<xs:attribute name="acro" type="xs:string" use="required"/>


</xs:complexType>
</xs:element>
</xs:sequence>

<xs:attribute name="acro" type="xs:string" use="required"/>


<xs:attribute name="site_officiel" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>

2-Donner la feuille XSLT qui visualise les acronymes « acro » de tous les départements. 4 pts

<?xml version="1.0" encoding="UTF-8"?>


<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<body>
<h1> Les acronymes « acro » de tous les départements </h1>
<table>
<xsl:for-each select="//departement">
<tr>
<td>
<xsl:value-of select="@acro"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
3-Donner des requêtes (XPath) permettant de: 2 pts
Afficher le site_officiel de l’université de bouira.
/univ_bouira/@site_officiel
Afficher la localisation de la faculté « fse ».
/univ_bouira/faculte[@acro="fss"]/localisation

You might also like