Compte Rendu XML
Compte Rendu XML
Compte Rendu XML
XML
TP3 | 22/12/1021
Question 1 :
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<!-- Definition de type email !--> <!-- Definition de type Tele !-->
<xs:complexType name="enseignants">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="enseingnant">
<xs:complexType>
<xs:sequence>
<xs:element name="CIN" type="xs:string"/>
<xs:element name="NOM" type="xs:string"/>
<xs:element name="PRENOM" type="xs:string"/>
<xs:element maxOccurs="unbounded" name="Tele" type="Tele"/>
<xs:element maxOccurs="unbounded" name="Email" type="Email"/>
<xs:element name="specialite" type="xs:string"/>
<xs:element name="Depatement">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="GI"/>
<xs:enumeration value="TM"/>
<xs:enumeration value="TIMQ"/>
<xs:enumeration value="GIM"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="IDens" type="xs:ID"/>
</xs:complexType>
< !-- Définition de type etudiant !-->
<xs:complexType name="etudiants">
<xs:sequence>
<xs:element name="etudiant" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="CIN" type="xs:string"/>
<xs:element name="NOM" type="xs:string"/>
<xs:element name="PRENOM" type="xs:string"/>
<xs:element maxOccurs="unbounded" name="Tele" type="Tele"/>
<xs:element maxOccurs="unbounded" name="Email" type="Email"/>
<xs:element name="DateDenaissance" type="xs:date"/>
<xs:element name="adresse" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="rue" type="xs:string"/>
<xs:element name="Ville" type="xs:string"/>
<xs:element name="numero" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="IDEtu" type="xs:ID"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="modules">
<xs:sequence>
<xs:element name="module" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Nom" type="xs:string"/>
</xs:sequence>
<xs:attribute name="Coordonnateur" type="xs:IDREF"/>
<xs:attribute name="IDmod" type="xs:ID"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
< !-- Définition de type matière !-->
<xs:complexType name="matieres">
<xs:sequence>
<xs:element name="matiere" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Intitule" type="xs:string"/>
</xs:sequence>
<xs:attribute name="module" type="xs:IDREF"/>
<xs:attribute name="enseingnat" type="xs:IDREF"/>
<xs:attribute name="IDMatiere" type="xs:ID"/>
<xs:attribute name="coefficient" type="xs:double"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="notes">
<xs:sequence>
<xs:element name="note" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="IDEtudiant" type="xs:IDREF"/>
<xs:attribute name="IDMat" type="xs:IDREF"/>
<xs:attribute name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="DS"/>
<xs:enumeration value="EXAM"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="valeur">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="20"/>
<xs:totalDigits value="4"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
< !—Définition d’un type EST !-->
<xs:complexType name="EST">
<xs:sequence>
<xs:element name="enseignants" type="enseignants" maxOccurs="unbounded"/>
<xs:element minOccurs="1" name="etudiants" type="etudiants" maxOccurs="unbounded"/>
<xs:element name="matieres" type="matieres" maxOccurs="unbounded"/>
<xs:element name="Notes" type="notes" maxOccurs="unbounded"/>
<xs:element name="modules" type="modules" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="EST">
<xs:complexType>
<xs:complexContent>
<xs:extension base="EST"> </xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:key name="IDens">
<xs:selector xpath="enseignants/enseingnant"/>< !-- une clé primaire de l’élément enseignant !-- >
<xs:field xpath="@IDens"/>
</xs:key>
<xs:keyref refer="IDens" name="fk_ems_mod">< !— clé étrangère dans module référence sur un enseignant !-- >
<xs:selector xpath="modules/module"/>
<xs:field xpath="@Coordonnateur"/>
</xs:keyref>
<xs:key name="IDmod">
<xs:selector xpath="modules/module"/>
<xs:field xpath="@IDmod"/>
</xs:key>
<xs:keyref refer="IDmod" name="fk_mat_mod">
<xs:selector xpath="matieres/matiere"/>
<xs:field xpath="@module"/>
</xs:keyref>
<xs:key name="IDEtu">
<xs:selector xpath="etudiants/etudiant"/>
<xs:field xpath="@IDEtu"/>
</xs:key>
<xs:keyref refer="IDEtu" name="fk_note_etu">
<xs:selector xpath="notes/note"/>
<xs:field xpath="@IDEtudiant"/>
</xs:keyref>
<xs:key name="IDMatiere">
<xs:selector xpath="matieres/matiere"/>
<xs:field xpath="@IDMatiere"/>
</xs:key>
<xs:keyref refer="IDMatiere" name="fk_note_mat">
<xs:selector xpath="notes/note"/>
<xs:field xpath="@IDMat"/>
</xs:keyref>
</xs:element>
< !-- XML Valide ! -->