0% found this document useful (0 votes)
54 views10 pages

Nidhal Gharbi

Uploaded by

nidhalgharbi
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)
54 views10 pages

Nidhal Gharbi

Uploaded by

nidhalgharbi
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/ 10

TP2: Schémas XML Gharbi Nidhal

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>

<!-- Déclaration de l'élément racine utilisant le type complexe personnalisé -->


<xs:element name="bibliographie" type="typeBiblio"/>
</xs:schema>

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>

You might also like