Nidhal Gharbi
Nidhal Gharbi
Ex1:
XML
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bibliographie">
<xs:complexType>
<xs:sequence>
<xs:element name="livre" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="titre" type="xs:string"/>
<xs:element name="auteur" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="tomes">
<xs:complexType>
<xs:sequence>
<xs:element name="tome" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="pages" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="infosEdition">
<xs:complexType>
<xs:sequence>
<xs:element name="editeur" type="xs:string"/>
<xs:element name="lieuEdition" type="xs:string"/>
<xs:element name="lieuImpression" type="xs:string"/>
<xs:element name="ISBN" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="avis" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="article" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="titre" type="xs:string"/>
<xs:element name="auteur" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="infosPublication">
<xs:complexType>
<xs:sequence>
<xs:element name="nomJournal" type="xs:string"/>
<xs:element name="numeroJournal" type="xs:string"/>
<xs:element name="pages" type="xs:string"/>
<xs:element name="anneePublication" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="avis" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Pour tester ce schéma j’ai créer un fichier XML correspondant. Voici un exemple de
fichier XML conforme à ce schéma :
<bibliographie>
<livre>
<titre>Exemple de Livre</titre>
<auteur>Jean Dupont</auteur>
<auteur>Marie Curie</auteur>
<tomes>
<tome>
<pages>300</pages>
</tome>
<tome>
<pages>250</pages>
</tome>
</tomes>
<infosEdition>
<editeur>Éditions Exemple</editeur>
<lieuEdition>Paris</lieuEdition>
<lieuImpression>Lyon</lieuImpression>
<ISBN>123-4567890123</ISBN>
</infosEdition>
<avis>Très intéressant!</avis>
</livre>
<article>
<titre>Exemple d'Article</titre>
<auteur>Paul Martin</auteur>
<infosPublication>
<nomJournal>Journal des Exemples</nomJournal>
<numeroJournal>42</numeroJournal>
<pages>15-20</pages>
<anneePublication>2023</anneePublication>
</infosPublication>
<avis>Informative et bien écrite.</avis>
</article>
</bibliographie>
EX2:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bibliographie">
<xs:complexType>
<xs:sequence>
<xs:element name="livre" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="titre">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="soustitre" type="xs:string" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="auteur" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="tomes">
<xs:complexType>
<xs:sequence>
<xs:element name="tome" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="nbPages" type="xs:string"
use="required"/>
<xs:attribute name="sousTitre" type="xs:string"
use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="infosEdition">
<xs:complexType>
<xs:sequence>
<xs:element name="editeur" type="xs:string"/>
<xs:element name="lieuEdition" type="xs:string"/>
<xs:element name="lieuImpression" type="xs:string"/>
<xs:element name="ISBN" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="avis" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="article" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="titre">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="soustitre" type="xs:string" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="auteur" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="infosPublication">
<xs:complexType>
<xs:sequence>
<xs:element name="numeroJournal" type="xs:string"/>
<xs:element name="pages" type="xs:string"/>
<xs:element name="anneePublication" type="xs:string"/>
</xs:sequence>
<xs:attribute name="nomJournal" type="xs:string" default="Feuille de
Chou"/>
</xs:complexType>
</xs:element>
<xs:element name="avis" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<bibliographie>
<livre>
<titre soustitre="Sous-titre du Livre">Exemple de Livre</titre>
<auteur>Jean Dupont</auteur>
<auteur>Marie Curie</auteur>
<tomes>
<tome nbPages="300" sousTitre="Sous-titre du Tome 1"/>
<tome nbPages="250"/>
</tomes>
<infosEdition>
<editeur>Éditions Exemple</editeur>
<lieuEdition>Paris</lieuEdition>
<lieuImpression>Lyon</lieuImpression>
<ISBN>123-4567890123</ISBN>
</infosEdition>
<avis>Très intéressant!</avis>
</livre>
<article>
<titre soustitre="Sous-titre de l'Article">Exemple d'Article</titre>
<auteur>Paul Martin</auteur>
<infosPublication nomJournal="Journal des Exemples">
<numeroJournal>42</numeroJournal>
<pages>15-20</pages>
<anneePublication>2023</anneePublication>
</infosPublication>
<avis>Informative et bien écrite.</avis>
</article>
</bibliographie>
EX3:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Déclaration des types personnalisés -->
<xs:simpleType name="typeISBN">
<xs:restriction base="xs:string">
<xs:pattern value="\d{10}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="typePages">
<xs:restriction base="xs:string">
<xs:pattern value="\d+ à \d+"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="typeBiblio">
<xs:sequence>
<xs:element name="livre" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="titre">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="soustitre" type="xs:string" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="auteur" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="tomes">
<xs:complexType>
<xs:sequence>
<xs:element name="tome" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="nbPages" type="xs:positiveInteger"
use="required"/>
<xs:attribute name="sousTitre" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="infosEdition">
<xs:complexType>
<xs:sequence>
<xs:element name="editeur" type="xs:string"/>
<xs:element name="lieuEdition" type="xs:string"/>
<xs:element name="lieuImpression" type="xs:string"/>
<xs:element name="ISBN" type="typeISBN"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="avis" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="article" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="titre">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="soustitre" type="xs:string" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="auteur" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="infosPublication">
<xs:complexType>
<xs:sequence>
<xs:element name="numeroJournal" type="xs:positiveInteger"/>
<xs:element name="pages" type="typePages"/>
<xs:element name="anneePublication" type="xs:gYear"/>
</xs:sequence>
<xs:attribute name="nomJournal" type="xs:string" default="Feuille de
Chou"/>
</xs:complexType>
</xs:element>
<xs:element name="avis" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
exemple:
<bibliographie>
<livre>
<titre soustitre="Sous-titre du Livre">Exemple de Livre</titre>
<auteur>Jean Dupont</auteur>
<auteur>Marie Curie</auteur>
<tomes>
<tome nbPages="300" sousTitre="Sous-titre du Tome 1"/>
<tome nbPages="250"/>
</tomes>
<infosEdition>
<editeur>Éditions Exemple</editeur>
<lieuEdition>Paris</lieuEdition>
<lieuImpression>Lyon</lieuImpression>
<ISBN>1234567890</ISBN>
</infosEdition>
<avis>Très intéressant!</avis>
</livre>
<article>
<titre soustitre="Sous-titre de l'Article">Exemple d'Article</titre>
<auteur>Paul Martin</auteur>
<infosPublication nomJournal="Journal des Exemples">
<numeroJournal>42</numeroJournal>
<pages>15 à 20</pages>
<anneePublication>2023</anneePublication>
</infosPublication>
<avis>Informative et bien écrite.</avis>
</article>
</bibliographie>
EX4:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="shiporder">
<xs:complexType>
<xs:sequence>
<xs:element name="orderperson" type="xs:string"/>
<xs:element name="shipto">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="item" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="note" type="xs:string" minOccurs="0"/>
<xs:element name="quantity" type="xs:positiveInteger"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="orderid" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
EX5:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="repertoire">
<xs:complexType>
<xs:sequence>
<xs:element name="personne" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="nom" type="xs:string"/>
<xs:element name="prenom" type="xs:string"/>
<xs:element name="adresse">
<xs:complexType>
<xs:sequence>
<xs:element name="numero" type="xs:string"/>
<xs:element name="voie">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" type="xs:string"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="codePostal" type="xs:string"/>
<xs:element name="ville" type="xs:string"/>
<xs:element name="pays" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="telephones">
<xs:complexType>
<xs:sequence>
<xs:element name="telephone" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" type="xs:string"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="emails">
<xs:complexType>
<xs:sequence>
<xs:element name="email" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" type="xs:string"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="sexe" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>