Vous êtes sur la page 1sur 5

Correction TD2

Exercice N°1:

Le but de cet exercice est de vous initier à la création d’un document XML. Pour arriver à cette fin,
vous allez procéder en étapes.

1. Créer un document XML


BIB

livre livre etudiant etudiant emprunt emprunt

auteur titre nbr_page nom prenom ncin ncin_etud titre_livre

Les données du document sont :

a. 3 Livres : (auteur1 ; titre1 ; 56), (auteur2 ; titre2 ; 100), (auteur3 ; titre3 ; 300).
b. 3 étudiants : (bensassi ; tasnim ; 1234567) ; (mhafdhi ; neila ; 1478523)
(bensassi ; ayoub ; 1258963).
c. 1 emprunt : (1258963 ; titre3).

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


<Bib>
<livres>
<livre>
<auteur>auteur1</auteur>
<titre>titre1</titre>
<nbr_page>56</nbr_page>
</livre>
</livres>
<etudiants>
<etudiant>
<nom>bensassi</nom>
<prenom>tasnim</prenom>
<ncin>1234567</ncin>
</etudiant>
</etudiants>
<emprunts>
<emprunt>
<ncin_etud>1234567</ncin_etud>
<titre_livre>titre1</titre_livre>
</emprunt>
</emprunts>
</Bib>

Exercice N°2 :

Soit le carnet d’adresses suivant :


1. Representer sous forme d’un texte balisé le carnet d’adresse ci-dessus.
Correction :
<?xml version="1.0" encoding="UTF-8"?>
<carnet-adresse>
<entree>
<nom>DUPONT Michelle</nom>
<adresse>
<rue> 55, rue de l’église</rue>
<code-postal>31000</code-postal>
<localite>Toulouse</localite>
</adresse>
<tel>0450505050</tel>
<tel>0451515151</tel>
<email>dupmich@yahoo.fr</email>
</entree>
<entree>
<nom>ERNEST François</nom>
<adresse>
<rue> 12, Avenue Jean Jaurès</rue>
<code-postal>31000</code-postal>
<localite>Toulouse</localite>
</adresse>
<tel>0199999999</tel>
</entree>
</carnet-adresse>

Exercice N°3 :

Rédiger une DTD pour une bibliographie. Cette bibliographie :

 contient des livres et des articles ;


 les informations nécessaires pour un livre sont :
o son titre général ;
o les noms des auteurs ;
o ses tomes et pour chaque tome, leur nombre de pages ;
o des informations générales sur son édition comme par exemple le nom de l'éditeur,
le lieu d'édition, le lieu d'impression, son numéro ISBN ;
 les informations nécessaires pour un article sont :
o son titre ;
o les noms des auteurs ;
o ses références de publication : nom du journal, numéro des pages, année de
publication et numéro du journal
 on réservera aussi un champ optionnel pour un avis personnel.

Correction :

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


<!ELEMENT biblio (livre | article)*>
<!ELEMENT livre (titre, auteur+, tome*, edition, avis?)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT auteur (#PCDATA)>
<!ELEMENT tome (nb_pages)>
<!ELEMENT nb_pages (#PCDATA)>
<!ELEMENT edition (editeur, lieu_edition, lieu_impression, isbn)>
<!ELEMENT editeur (#PCDATA)>
<!ELEMENT lieu_edition (#PCDATA)>
<!ELEMENT lieu_impression (#PCDATA)>
<!ELEMENT isbn (#PCDATA)>
<!ELEMENT avis (#PCDATA)>
<!ELEMENT article (titre, auteur+, journal)>
<!ELEMENT journal (nom_journal, page, num_journal, annee)>
<!ELEMENT nom_journal (#PCDATA)>
<!ELEMENT page (#PCDATA)>
<!ELEMENT num_journal (#PCDATA)>
<!ELEMENT annee (#PCDATA)>

Exercice N°4 :

Une entreprise de vente de matériel informatique désire garder les informations de son stock
dans un document XML. Vous disposez des informations suivantes

 Le stock contient plusieurs produits.


 Chaque produit identifié par un identifiant unique (idprod) est reconnu par sa marque,
son modèle et son fournisseur.
 Chaque produit appartient à une catégorie donnée.
 Chaque catégorie identifiée par « idcat » est reconnue par son libellé. Le idcat doit
nécessairement commencer par la lettre C suivie de 5 chiffres.
 Chaque fournisseur identifié par « idfour » est reconnu par sa raison sociale, son adresse
et son téléphone fixe. L’adresse du fournisseur ne doit pas dépasser les 40 caractères.
1. Ecrire un exemple de document XML répondant aux besoins de cette agence
2. Ecrire un schema XML (XSD) qui valide ce document XML.
Correction:

1.

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


<stock>
<categorie idcat="C00001">
<libelle/>
<produits>
<produit idprod="1">
<marque>Peugeot</marque>
<modele>206</modele>
<fournisseur_id>1</fournisseur_id>
</produit>
</produits>
</categorie>
<fournisseur idfour="1">
<raison_sociale>raison sociale</raison_sociale>
<adresse>France</adresse>
<tel>12345678</tel>
</fournisseur>
</stock>

2.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="tel">
<xs:complexType/>
</xs:element>
<xs:element name="stock">
<xs:complexType>
<xs:sequence>
<xs:element ref="categorie"/>
<xs:element ref="fournisseur"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="raison_sociale">
<xs:complexType/>
</xs:element>
<xs:element name="produits">
<xs:complexType>
<xs:sequence>
<xs:element ref="produit"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="produit">
<xs:complexType>
<xs:sequence>
<xs:element ref="marque"/>
<xs:element ref="modele"/>
<xs:element ref="fournisseur_id"/>
</xs:sequence>
<xs:attribute name="idprod" use="required">
<xs:simpleType>
<xs:restriction base="xs:byte">
<xs:enumeration value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="modele">
<xs:complexType/>
</xs:element>
<xs:element name="marque">
<xs:complexType/>
</xs:element>
<xs:element name="libelle">
<xs:complexType/>
</xs:element>
<xs:element name="fournisseur_id">
<xs:complexType/>
</xs:element>
<xs:element name="fournisseur">
<xs:complexType>
<xs:sequence>
<xs:element ref="raison_sociale"/>
<xs:element ref="adresse"/>
<xs:element ref="tel"/>
</xs:sequence>
<xs:attribute name="idfour" use="required">
<xs:simpleType>
<xs:restriction base="xs:byte">
<xs:enumeration value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="categorie">
<xs:complexType>
<xs:sequence>
<xs:element ref="libelle"/>
<xs:element ref="produits"/>
</xs:sequence>
<xs:attribute name="idcat" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="C[0-9]{5}"/>
<xs:enumeration value="C00001"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="adresse">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="0"/>
<xs:maxLength value="40"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>

Les parties en gras et noir représentent les contraintes sur idcat qui doit nécessairement
commencer par la lettre C suivie de 5 chiffres et pour l’adresse du fournisseur qui ne doit pas
dépasser les 40 caractères.

Vous aimerez peut-être aussi