3ièmm Année Licence (SI)
TP Données semi structurée (schéma xml)
Date limite de remise : le 14/06/2021 à l’adresse fanguel@[Link]
Date de validation le 15/06/2021
Rendre ce TP sous forme de deux fichiers [Link] et [Link]
Le but de ce TP est l’écriture d’un schéma XML, décrivant un bon de commande. Pour ce
faire il faut d’abord écrire un schéma permettant de définir une adresse.
Créer un nouveau fichier [Link]
1- Définition des éléments de type simple : déclarez les éléments nom, prénom,
bâtiment, bloc, étage, appartement, numéro, rue, code-postal, ville et pays.
Etage est un élément strictement positif, numéro un nombre positif ou nul, les
autres sont des chaines de caractères.
2- Définition des éléments de type complexe :
- déclarez un élément infosupp, contenant une suite d’éléments bâtiment,
bloc, étage et appartement. Chacun de ces éléments est facultatif.
- déclarez un élément infosville comprenant une suite d’éléments code-
postal, ville.
- déclarez un élément adresse contenant une suite d’éléments nom,prénom,
infosupp, numéro, rue, infosville et pays. L’élément infosupp est facultatif.
- Définition de types simples : déclarez le type simple typecodepostale dérivé à
partir du type simple intégré de chaîne de caractères, constitué de 5 chiffres.
Ce type s’applique à l’élément code-postal.
- Déclarez le type simple nomPays, dérivé à partir du type simple intégré de
chaines de caractères limité à la valeur ‘Algérie ‘.Ce type s’applique à
l’élément pays.
Créer un schéma de nom [Link]. Ce schéma inclut le schéma [Link] .
1- Définition des types simples : Définissez le type simple typeNuméroClient, dérivé
à partir du type intégré de chaîne de caractères, constitué de trois lettres
majuscules puis quatre chiffres, un tiret (codé dans l’expression régulière sous la
forme ‘’ \-‘’ ) puis deux chiffres.
Définissez le type typeRefCommande dérivé à partir du type intégré de chaîne de
caractères, constitué de quatre chiffres, un tiret, puis trois chiffres, enfin une
lettre minuscule.
2- Définition des éléments de type simple : si vous n’avez pas pu définir de type
simple , remplacez- les par la suite par des types de chaînes de caractères (type
par défault)
- Déclarez les éléments suivants : nomProduit, quantité qui est un entier positif
, dateCommande qui est une date, dateLivraison qui est aussi une date ,
1/2
refCommande qui est de type typeRefCommande et numéroClient qui est de
type typeNuméroClient.
3- Définition des éléments de type complexe : déclarez un élément modePaiement,
qui possède un élément enfant unique, à choisir entre trois éléments chèque,
carteCrédit et virement (élément de type simple).
- Déclarez un élément contact, qui possède un élément enfant unique, à choisir
entre deux éléments numéroClient et adresse.
- Déclarez un élément livraison constitué d’un élément dateLivraison et d’un
élément facultatif adresse.
- Déclarez un élément infos, constitué de cinq éléments dateCommande,
refCommande, livraison, contact et modePaiement.
- Déclarez un élément produit Constitué d’un élément nomProduit et d’un
élément quantité.
- Déclarez un élément bonCommande, constitué d’un élément infos
monProduit et d’un nombre illimité d’éléments produit. Il s’agit del’élément
racine.
4- Définition des attributs : nous allons commencer par définir deux types simples :
- Le type typeReference est dérivé à partir du type d’entier positif et est limité à
une valeur maximale 8976.
- Le type typeMoyenPaiement est dérivé à partir d’une chaine de caractère et
est
- Limité aux chaines chèque’, ‘viremment’ et ‘carte de crédit’.
Il faut maintenant changer le type d’un élément : l’élément nomproduit doit
pouvoir contenir une chaine de caractère. (ce n’est donc pas un élément vide !) et
possède également un attribut obligatoire référence qui est de type
typeRéférence .
L’élément mode de paiement possède un attribut obligatoire moyen, qui est de
type
typeMoyenPaiement.
L’élément produit possède un attribut optionnel de type booléen, remise, valant
false par défaut.
Indications
Le prologue des fichiers schéma XML est :
<?xml version='1.0' encoding='UTF-8'?>
<xsd:schema xmlns:xsd="[Link]
Pour utiliser le schéma « [Link] » dans le fichier « [Link] » on ajoute à
son prologue :
<xsd :include schemaLocation = ‘’[Link]’’/>
Le format de l’expression (trois lettres majuscules puis quatre chiffres, un tiret (codé dans
l’expression régulière sous la forme ‘’ \-‘’ ) puis deux chiffres) s’écrit sous le pattern :
<xsd :pattern value= ‘’[A-Z]{3}[0-9]{4}[\-][0-9]{2}’’/>.
2/2