Vous êtes sur la page 1sur 2

TP1 : document xml valide ,bien form et DTD ----------------------------TP1_EXO3_CV_DTD_EXTERNE.

xml---------------------- TP5 : XQuery


<?xml version="1.0" encoding="UTF-8" standalone="no"?> ------------------------------------Artistes.XML--------------------------------
EXO1 : EXO2 <!DOCTYPE cv SYSTEM "DTD_TP1_EXO3.dtd"> <?xml version="1.0" encoding="iso-8859-1"?>
--------------TP1_EXO1_EXO2_DTD_EXTERNE_INTERNE.xml ------------- <cv cin="F563671"> <ARTISTES> <ARTISTE id="6">
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <personne sexe="masculin"> <ACTNOM>Cameron</ACTNOM><ACTPNOM>James</ACTPNOM>
//declaration DTD externe <nom>BOUJMI</nom> <prenom>Mohammed</prenom> <ANNEENAISS>1954</ANNEENAISS> </ARTISTE>
<!DOCTYPE catalogue SYSTEM "DTD_TP1.dtd"> <age>21 ans</age> <situation>clibataire</situation> <ARTISTE id="3"><ACTNOM>Hitchcock</ACTNOM>
<!DOCTYPE catalogue [ <adresse> <ACTPNOM>Alfred</ACTPNOM><ANNEENAISS>1899</ANNEENAISS>
<!ELEMENT catalogue (cours+,personne+)> <village>Hay Essalam Aouinat Essarak</village> </ARTISTE>
<!ELEMENT cours (titre,description,professeur,assistant?)> <num>A14,N 26 BIS</num><ville>OUJDA</ville> <ARTISTE id="4"> <ACTNOM>Scott</ACTNOM>
<!ELEMENT personne (nom,prenom,email,adresse?)> </adresse> <ACTPNOM>Ridley</ACTPNOM> <ANNEENAISS>1937</ANNEENAISS>
<!ELEMENT titre (#PCDATA)> <mobile type="portable">0639-666616</mobile> </ARTISTE>
<!ELEMENT description (#PCDATA)> <!ELEMENT professeur <email>mohammedboujmi@gmail.com</email> <ARTISTE id="5">
EMPTY> <statut>Elve-Ingnieur</statut> <ACTNOM>Weaver</ACTNOM> <ACTPNOM>Sigourney</ACTPNOM>
<!ELEMENT assistant EMPTY> <niveau>2 me anne</niveau> <ANNEENAISS/></ARTISTE>
<!ELEMENT nom (#PCDATA)><!ELEMENT prenom (#PCDATA)> <ecole specialite="GL">ENSIAS</ecole> <ARTISTES>
<!ELEMENT email (#PCDATA)> <permis_conduite>B</permis_conduite></personne> ---------------------------------------------Film.XML-----------------------------------------
<!ELEMENT adresse (ville,zone,rue,num)> <formations><formation> <?xml version="1.0" encoding="iso-8859-1"?>
<!ELEMENT ville (#PCDATA)><!ELEMENT zone (#PCDATA)> <annee>2015-2016</annee> <FILMS>
<!ELEMENT rue (#PCDATA)><!ELEMENT num (#PCDATA)> <description>Gnie logiciel l'cole Nationale Suprieure <FILM annee="1958"><TITRE>Vertigo</TITRE>
<!ATTLIST cours id ID #REQUIRED type CDATA #REQUIRED> dInformatique et dAnalyse des Systmes (ENSIAS, Rabat).</description> <GENRE>Drame</GENRE><PAYS>USA</PAYS> <MES idref="3"/>
<!ATTLIST professeur nsom ID #REQUIRED cin IDREF #REQUIRED </formation> <ROLES>
grade CDATA #IMPLIED > <formation> <ROLE><PRENOM>James</PRENOM> <NOM>Stewart</NOM>
<!ATTLIST assistant cin IDREF #REQUIRED ><!ATTLIST personne cin <annee>2013-2015</annee> <INTITULE>John Ferguson</INTITULE> </ROLE>
ID #REQUIRED > <description>Classes prparatoires aux grandes coles dingnieurs <ROLE><PRENOM>Kim</PRENOM><NOM>Novak</NOM>
<!ENTITY info "informatique"> ]> (Filire: TSI, Ville : OUJDA)</description> <INTITULE>Madeleine Elster</INTITULE> </ROLE>
<catalogue> </formation> </ROLES>
<cours id="INFO-X-80" type="&info;"> <formation> <RESUME>Scottie Ferguson, ancien inspecteur de police, est sujet
<titre>Technologie XML</titre> <annee>2013</annee> au vertige depuis qu'il a vu mourir son
<description>cours sur XML &amp; technologies <description>Baccalaurat Sciences et Technologies (option Sciences collegue. Elster, son ami, le charge de surveiller sa femme, Madeleine,
adjacentes</description> et Technologies Electriques) avec mention Trs Bien ( Lycee Mehdi Ben ayant des tendances
<professeur nsom="A118845" cin="AD465" grade="professeur Barka , OUJDA)</description> suicidaires. Amoureux de la jeune femme Scottie ne remarque pas le piege
abilit"/> </formation> qui se trame autour
<assistant cin="AG466" /> </formations> de lui et dont il va etre la victime... </RESUME>
&chap1; <competences> </FILM><FILMS>
-------------------------------------Pour TP2------------------------------------------ <competence>Langage de Programmation: C, JAVA , SQL , PL/SQL , ----------------------------------------Requette XQuery--------------------------------
<prix>1000</prix> Assembleur.</competence> 1)
<sessions> <competence>Bibliothques &amp; Framework: <acteurs>
<session> Swing</competence> {for $x in doc("films.xml")//FILMS/FILM,
<numero>1</numero><date_debut>12/03/2013</date_debut> <competence>Technologies web : PHP,HTML,CSS.</competence> $y in $x/ROLES/ROLE where $x/TITRE="Blade Runner"
<nombre_min>10</nombre_min> <competence>SGBD: Oracle, MySQL.</competence> return <acteur> {$y/NOM} {$y/PRENOM} </acteur> }
<nombre_max>30</nombre_max></session></sessions> <competence>Systmes d'exploitations: Windows, </acteurs>
------------------------------------------------------------------------------------------ Lunix.</competence> 2)+3)
</cours> </competences> <films>
<personne cin="AD465" > <langues> {for $x in doc("films.xml")//FILMS/FILM order by $x/@annee descending,
<nom>ayoubi</nom> <langue>Arabe : Langue maternelle.</langue> $x/TITRE descending
<prenom>Mohamed</prenom> <langue>Franais : Bonne matrise.</langue> return <film annee_de_sortie="{$x/@annee}"> {$x/TITRE} </film>
<email>ayoubi@gmail.com</email> <langue>Anglais : Assez bonne matrise.</langue></langues> }</films>
</personne> <divers> 4)
<personne cin="AG466"> <loisirs>Loisirs: Documentaires, Jeux vido, football.</loisirs> <films>
<nom>Nabil</nom> <parascolaire>Membre dorganisation des olympiades ENSIAS {for $x in doc("films.xml")//FILMS/FILM,
<prenom>Zahir</prenom> V2.0.</parascolaire> $y in doc("artistes.xml")//ARTISTES/ARTISTE
<email>zahir@gmail.com</email> </divers> where $y/@id=$x/MES/@idref and $x/GENRE="Action"
<adresse> </cv> order by $x/@annee descending, $x/TITRE descending
<ville>Sal</ville> --------------------------------- DTD_TP1_EXO3.dtd ----------------------------- return <film> {$x/TITRE} {$x/ROLES/ROLE[1]/NOM} {$y/ACTNOM} </film>
<zone>Sala al Jadida</zone> <!ELEMENT cv (personne,formations,competences,langues,divers)> }</films>
<rue>Avenue Moulay Rachid</rue> <!ELEMENT personne 5)
<num>Num : 38</num> (nom,prenom,age,situation,adresse,mobile,email,statut,niveau,ecole,pe let $y:=doc("films.xml")//FILMS/FILM
</adresse> </personne> rmis_conduite)> return <result>
</catalogue> <!ELEMENT formations (formation+)> <number_inf_1990> {count($y[@annee<1990])} </number_inf_1990>
--------------------------------TP1_ENTITE_CHAP1.xml------------------------- <!ELEMENT competences (competence+)> <number_sup_1990> {count($y[@annee>=1990])} </number_sup_1990>
<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT langues (langue+)> </result>
<chapitres> <!ELEMENT divers (loisirs+,parascolaire+)> 6-
<chapitre1><intitule>Analyse</intitule> <!ELEMENT adresse (village,num,ville)> for $x in doc("films.xml")//FILM
<duree>6 heures</duree></chapitre1></chapitres> <!ELEMENT formation (annee,description)> return element movie
--------------------------------- DTD_TP1.dtd ----------------------------- <!ELEMENT nom (#PCDATA)> { $x/TITRE, $x/GENRE, $x/PAYS, $x/MES, $x/RESUME }
<!ELEMENT catalogue (cours+,personne+)> <!ELEMENT prenom (#PCDATA)> 7)
<!ELEMENT cours <!ELEMENT age (#PCDATA)> <films>
(titre,description,professeur,assistant?,chapitres)> <!ELEMENT situation (#PCDATA)> {for $x in doc("films.xml")//FILMS/FILM
<!ELEMENT personne (nom,prenom,email,adresse?)> <!ELEMENT village (#PCDATA)> where (some $r in $x/ROLES satisfies( $r/ROLE/NOM="Ford" and
<!ELEMENT titre (#PCDATA)> <!ELEMENT num (#PCDATA)> $r/ROLE/PRENOM="Harrison"))
<!ELEMENT description (#PCDATA)> <!ELEMENT ville (#PCDATA)> and (some $r in $x/ROLES satisfies( $r/ROLE/NOM="Hauer" and
<!ELEMENT professeur EMPTY> <!ELEMENT mobile (#PCDATA)> $r/ROLE/PRENOM="Rutger"))
<!ELEMENT assistant EMPTY> <!ELEMENT email (#PCDATA)> return <film annee_de_sortie="{$x/@annee}"> {$x/TITRE} {$x/ROLES}
<!ELEMENT nom (#PCDATA)> <!ELEMENT statut (#PCDATA)> </film>}
<!ELEMENT prenom (#PCDATA)> <!ELEMENT niveau (#PCDATA)> </films>
<!ELEMENT email (#PCDATA)> <!ELEMENT ecole (#PCDATA)> 8-
<!ELEMENT adresse (ville,zone,rue,num)> <!ELEMENT permis_conduite (#PCDATA)> for $x in doc("films.xml")//FILM
<!ELEMENT ville (#PCDATA)> <!ELEMENT annee (#PCDATA)> return if (exists($x/GENRE))
<!ELEMENT zone (#PCDATA)> <!ELEMENT description (#PCDATA)> then element movie{
<!ELEMENT rue (#PCDATA)> <!ELEMENT competence (#PCDATA)> element TITRE{
<!ELEMENT num (#PCDATA)> <!ELEMENT langue (#PCDATA)> attribute typeFilm {$x/GENRE},
<!ELEMENT chapitres (chapitre1)> <!ELEMENT loisirs (#PCDATA)> data($x/TITRE) } }
<!ELEMENT chapitre1 (intitule,duree)> <!ELEMENT parascolaire (#PCDATA)> else element movie{
<!ELEMENT intitule (#PCDATA)> <!ATTLIST cv cin ID #REQUIRED> element TITRE{
<!ELEMENT duree (#PCDATA)> <!ATTLIST personne sexe (masculin|feminin) #REQUIRED> data($x/TITRE) } }
<!ATTLIST cours id ID #REQUIRED type CDATA <!ATTLIST mobile type (fixe|portable) "portable"> 9)
#REQUIRED> <!ATTLIST ecole specialite (GL|BI|IWIM|SSI|ISEM|IEL) "GL"> <films>
<!ATTLIST professeur nsom ID #REQUIRED cin IDREF --------------------------------------Qestions TP5--------------------------------------- {for $x in doc("films.xml")//FILMS/FILM,
#REQUIRED grade CDATA #IMPLIED > Utilisez les fichiers XML films.xml et artistes.xml $y in $x/ROLES/ROLE where $y/NOM="Travolta" and $y/PRENOM="John"
<!ATTLIST assistant cin IDREF #REQUIRED > 1. nom et prnom des acteurs du fil Blade Runner . Llment rsultat return element film
<!ATTLIST personne cin ID #REQUIRED > contiendra un lment acteur pour chacune de ces informations { attribute annee{$x/@annee}, element title {$x/TITRE/text()},
<!ENTITY info "informatique"> prsentes sous forme dlments ; element role {$y/INTITULE/text()}}
<!ENTITY chap1 SYSTEM "TP1_ENTITE_CHAP1.xml"> 2 . Liste des titres de film et leurs annes de sortie (en attribut) : }</films>
--------------------------------------Qestions TP1----------------------------- 3. titres de films tris selon leurs dates et de sorties par ordre 10)
Verifier la validiter du doc XML et tablir sa DTD.(EXO1 ET EXO2) dcroissant et par ordre alphabtique selon le titre pour ceux sortis la for $x in doc("artistes.xml")//ARTISTE
--------------------------------------Qestions TP2----------------------------- mme anne ; order by $x/@id
Verifier la validiter du doc XML et tablir son shma xml.(de mm) 4. titres de films daction, nom du premier rle et nom du metteur en return element acteur{ $x/ACTNOM, $x/ACTPNOM,
--------------------------------------Qestions TP3----------------------------- scne ; for $films in doc("films.xml")//FILM
Exo1 : 5. nombre de films sortis avant 19990 et sortis aprs 1990 where exists($films/ROLES/ROLE[PRENOM = $x/ACTPNOM and NOM =
2-Amliorer la feuille de style afin dobtenir laffichage de la figure 6. tous les films et les informations associs mais sans les ruses et sans $x/ACTNOM])
1 les rles ; return element movie{ $films/TITRE } }
Titre,auteur,et annee sont en gras(<b>) 7. titre des films o ont joue ensemble Harrison Ford et Rutger Hauer --------------------------------------Qestions TP4---------------------------------------
Les lement dun livre sont spar par des sauts de ligne (</br>) 8. titres des films tris par genre (TypeFilm comme attribut de llment EXO1 :
Les livres sont spars par des marques de paragraphes(<p/>) 2-Amliorez lexemple pour afficher la liste des ouvrages en franais
TITRE si le genre existe sinon ne pas ajouter lattribut) ;
3-modifier la feuille de style afin davoir la forme de la figure 2. EXO2:utilisant catalogue.xml
9. les rles jous par John Travolta dans ses films dont vous prciserez le
4-affciher le tableau de resultat suivant.
titre (comme lment) et lanne (comme attribut du titre) ; 1-Afficher les cours disponibles sur le catalogue.
Exo2 :
10. la liste des acteurs (tris par id), avec la liste des films (tris par ordre 2-Afficher les cours ayant plus dune session.
1-affciher le tableau suivant
alphabtique) dans lesquels ils ont jou ; 3-modifier le prix (7000 au lieu de 3000) du cours ayant id= MATH-0-1
2-les cours trie par prix
3-les cours ayant plus dune session(tris) En crant un autre fichier XML contenant la nouvelle valeur
4-les cours ayant le prix le plus petit. 4-crer un fichier html du doc XML.
TP4 : DOM & Sax TP3 : XSLT
---------------------------------bibliographie.XML---------------------------------- ------------------------------------------EXO2----------------------------------------- ------------------------------------------EXO1-----------------------------------------
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> import java.io.File;import java.io.FileWriter;import javax.xml.parsers.*; /* --- QUESTION 2--- */
<?xml-stylesheet href="TP3-Q3-Q4.xsl" type ="text/xsl"?> import javax.xml.transform.*; <?xml version="1.0" encoding="UTF-8"?>
<bibliographie> import javax.xml.transform.dom.DOMSource; <xsl:stylesheet version="1.0"
<livre key="Michard01" lang="fr"> import javax.xml.transform.stream.StreamResult; xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<titre>XML langage et applications</titre> import javax.xml.transform.stream.StreamSource;import org.w3c.dom.*; xmlns="http://www.w3.org/1999/xhtml" >
<auteur>Alain Michar </auteur> <annee>2001</annee> public class Boujmi{ <xsl:output method="html"/>
<editeur>Eyrolles </editeur> <identification isbn="2-212-09206-7"/> public static void main(String[] args) { <xsl:template match="/bibliographie">
<editions> 2006-08-13 2006-08-14 2006-08-15 </editions> try{ <html> <head> <title>Liste des ouvrages</title> </head> <body>
<url>http://www.editions-eyrolles/livres/michard/</url> /* Cration du parseur en appelant la mthode statique factory */ <h1 >Liste des ouvrages</h1><br/>
</livre> DocumentBuilderFactory factory = <xsl:apply-templates select="livre" /> </body>
<livre key="Samuel1" lang="fr"> DocumentBuilderFactory.newInstance(); </html> </xsl:template>
<titre>Rseaux et systmes informatiques mobiles</titre> DocumentBuilder builder = factory.newDocumentBuilder(); <xsl:template match="livre">
<auteur>Samuel Pierre </auteur> <annee >2003</annee> /* Chargement du fichier XML */ <p>
<editeur> Presses Polytechnique de Montra </editeur> Document document = builder.parse("src/categorie.xml"); <b>Titre : </b> <xsl:value-of select="titre" /><br/>
<identification isbn="978-2553010385"/> /* Rcuprer le contenu de l'lment racine */ <b>Auteur : </b> <xsl:value-of select="auteur" /><br/>
</livre> Element racine = document.getDocumentElement(); <b>Annee : </b> <xsl:value-of select="annee" /><br/><br/></p>
<livre key="Zeldman03" lang="en"> /* Rcupration de tous les cours inclus dans catalogue */ </xsl:template></xsl:stylesheet>
<titre>Designing with web standards</titre> NodeList courses = racine.getElementsByTagName("cours"); /* --- QUESTION 3-4-- */
<auteur>Jeffrey Zeldman</auteur> <annee>2003</annee> /* --- QUESTION 1 --- */ <?xml version="1.0" encoding="UTF-8"?>
<editeur> New Riders </editeur> System.out.println("Les cours disponibles sont : " ); <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<identification isbn="0-7357-1201-8"/></livre></bibliographie> for( int i = 0 ; i < courses.getLength() ; i++ ) xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-
------------------------------------catalogue.XML------------------------------ /* Rcuprer les noeuds */ prefixes="xs" version="2.0">
<catalogue> Element cours = (Element)courses.item(i); <xsl:template match="/">
<cours id="INFO-H-509" type="Informatique"> Node Titre = cours.getElementsByTagName("titre").item(0); <html>
<titre>Technologies XML</titre> /* Afficher les noeuds */ <head><title> Ouvrages </title></head>
<prix unite="MAD">4000</prix> System.out.println(Titre.getFirstChild().getNodeValue());} <body>
<session num="1"> <date>12-03-2015</date></session> /* --- QUESTION 2 --- */ <h1>Liste des ouvrages</h1>
<session num="2"> <date>28-12-2015</date></session> System.out.println("\n\nLes cours ayant plus d'une session sont : " ); <b><p style="font-size:20;">Liste des ouvrages Franais</p></b><br/>
<session num="3"> <date>14-1-2016</date></session> for( int i = 0 ; i < courses.getLength() ; i++ ) { <xsl:for-each select="bibliographie/livre[@lang='fr']">
</cours> Element cours = (Element)courses.item(i); <p>
<cours id="MATH-0-1" type="Mathematique"> Node Titre = cours.getElementsByTagName("titre").item(0); <b>Titre : </b> <xsl:value-of select="titre"/><br/>
<titre>Recherche Oprationnelle</titre> int nbr = cours.getElementsByTagName("session").getLength(); <b>Auteur : </b> <xsl:value-of select="auteur"/><br/>
<prix unite="Euro">3000</prix> if(nbr > 1){ <b>Annee : </b> <xsl:value-of select="annee"/><br/> </p>
<session num="1"> <date>12-03-2013</date></session> System.out.println(Titre.getFirstChild().getNodeValue());}} </xsl:for-each>
<session num="2"> <date>28-12-2015</date></session> /* --- QUESTION 3 --- */ <b><p style="font-size:20;">Liste des ouvrages Anglais</p></b>
</cours></catalogue> System.out.println("\n\nModification du prix du cours ayant l'id gale <xsl:for-each select="bibliographie/livre[@lang='en']">
------------------------------------------EXO1----------------------------------------- MATH-0-1 " ); <p>
import javax.xml.parsers.DocumentBuilder; for( int i = 0 ; i < courses.getLength() ; i++ ) { <b>Titre : </b> <xsl:value-of select="titre"/><br/>
import javax.xml.parsers.DocumentBuilderFactory; Element cours = (Element)courses.item(i); <b>Auteur : </b> <xsl:value-of select="auteur"/><br/>
import org.w3c.dom.Document;import org.w3c.dom.Element; String id = cours.getAttribute("id"); <b>Annee : </b> <xsl:value-of select="annee"/><br/>
import org.w3c.dom.Node;import org.w3c.dom.NodeList; if(id.equals("MATH-0-1")){ </p> </xsl:for-each>
public class DomParser { Node Prix = cours.getElementsByTagName("prix").item(0); <table style="text-align:center" border="solid black 2px">
public static void main(String[] args) { System.out.println("Ancienne valeur : " + <tr>
try{ Prix.getFirstChild().getNodeValue()); <th> </th>
/* Cration du parseur en appelant la mthode statique factory */ Prix.setTextContent("7000"); <th style="background:black;color:white">Francais</th>
DocumentBuilderFactory factory = //Prix.setNodeValue("7000"); (ne marche pas) <th style="background:black;color:white">Angalais</th>
DocumentBuilderFactory.newInstance(); System.out.println("Nouvelle valeur : " + <th style="background:black;color:white">Totale</th> </tr>
DocumentBuilder builder = factory.newDocumentBuilder(); Prix.getFirstChild().getNodeValue()); <tr>
/* Chargement du fichier XML */ TransformerFactory tfact = TransformerFactory.newInstance(); <td style="background:grey;color:white">Nombre d'ouvrage</td>
Document document = builder.parse("src/Bibliographie.xml"); Transformer transformer = tfact.newTransformer(); <td><xsl:variable name="count"
/* Rcuprer le contenu de l'lment racine */ DOMSource source = new DOMSource(document); select="count(bibliographie/livre[@lang='fr'])"/>
Element racine = document.getDocumentElement(); FileWriter fw = new FileWriter("src/catalogue_V2.xml"); <xsl:value-of select="$count"/></td>
/* Rcupration de tous les livres inclus dans bibliographie */ StreamResult result = new StreamResult(fw); <td><xsl:variable name="count"
NodeList livres = racine.getElementsByTagName("livre"); transformer.transform(source, result);}} select="count(bibliographie/livre[@lang='en'])"/>
System.out.println("Les livres disponibles en Franais sont : " ); /* --- QUESTION 4 --- */ <xsl:value-of select="$count"/></td>
for( int i = 0 ; i < livres.getLength() ; i++ ) { Source srcXML = new DOMSource(document); <td><xsl:variable name="count" select="count(bibliographie/livre)"/>
System.out.println("--------------------"); /* Cration du fichier HTML de sortie */ <xsl:value-of select="$count"/></td>
/* Rcuprer les noeuds */ File fHtml = new File("result.html"); </tr>
Element livre = (Element)livres.item(i); Result resultHTML = new StreamResult(fHtml); </table> </body> </html> </xsl:template> </xsl:stylesheet>
String lang = livre.getAttribute("lang"); // Rcuprer l'attribut lang //ce fichier deja fait dans le TP3 ------------------------------------------EXO2-----------------------------------------
Node Titre = livre.getElementsByTagName("titre").item(0); StreamSource srcXSL = new StreamSource("src/categorie.xsl"); <?xml version="1.0" encoding="UTF-8"?>
Node Auteur = livre.getElementsByTagName("auteur").item(0); Transformer leTransf = <xsl:stylesheet version="1.0"
Node Annee = livre.getElementsByTagName("annee").item(0); (TransformerFactory.newInstance()).newTransformer(srcXSL); xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
if(lang.equals("fr")){/* Afficher les noeuds */ leTransf.transform(srcXML,resultHTML); xmlns:math="http://exslt.org/math"
System.out.println(Titre.getFirstChild().getNodeValue()); }catch(Exception e) {e.printStackTrace(System.out);} } } extension-element-prefixes="math">
System.out.println(Auteur.getFirstChild().getNodeValue()); TP2 : Shma XML(suite) <xsl:template match="/">
System.out.println(Annee.getFirstChild().getNodeValue());} } <xsd:element name="personne" maxOccurs="unbounded" <html> <head> <title> Catalogue </title> </head>
}catch(Exception e) { e.printStackTrace(System.out);}}} minOccurs="0"> <body>
TP2 : Shma XMLEXO1 <xsd:complexType><xsd:sequence> <table style="text-align:center" border="solid black 2px">
<?xml version="1.0" encoding="UTF-8"?> <xsd:element name="nom" type="xsd:string" /> <tr> <th> </th>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" <xsd:element name="prenom" type="xsd:string" /> <th style="background:black;color:white">Type</th>
elementFormDefault="qualified"> <xsd:element name="email" type="email_Type" /> <th style="background:black;color:white">Nombre de session</th>
<xsd:element name="catalogue"> <xsd:element name="adresse" minOccurs="0"> <th style="background:black;color:white">Prix</th></tr>
<xsd:complexType> <xsd:sequence> <xsd:complexType><xsd:sequence> <xsl:for-each select="catalogue/cours">
<xsd:element name="cours" maxOccurs="unbounded" <xsd:element name="ville" type="xsd:string" /> <tr>
minOccurs="0"> <xsd:element name="zone" type="xsd:string" /> <td style="background:grey;color:white">
<xsd:complexType><xsd:sequence> <xsd:element name="rue" type="xsd:string" /> <xsl:value-of select="titre"/></td>
<xsd:element name="titre" type="xsd:string"/> <xsd:element name="num" type="xsd:string" /> <td style="background:grey;color:white">
<xsd:element name="description" type="xsd:string"/> </xsd:sequence></xsd:complexType></xsd:element> <xsl:value-of select="@type"/></td>
<xsd:element name="professeur"><xsd:complexType> </xsd:sequence> <td><xsl:variable name="count" select="count(session)"/>
<xsd:attribute name="nsom" type="xsd:ID" <xsd:attribute name="cin" type="xsd:ID" use="required" /> <xsl:value-of select="$count"/></td>
use="required"></xsd:attribute> </xsd:complexType> <td style="background:grey;color:white">
<xsd:attribute name="cin" type="xsd:IDREF" </xsd:element> <xsl:value-of select="prix"/> MAD</td> </tr>
use="required"></xsd:attribute> </xsd:sequence> </xsl:for-each>
<xsd:attribute name="grade" </xsd:complexType> </table><p style="font-size:20px">Liste des cours triee par prix</p>
type="xsd:string"></xsd:attribute> </xsd:element> <xsl:for-each select="catalogue/cours">
</xsd:complexType> <xsd:simpleType name="dateType"> <xsl:sort select="prix" order="descending" />
</xsd:element> <xsd:restriction base="xsd:string"> <xsl:value-of select="titre"/>
<xsd:element name="assistant"> <xsd:pattern value="[0-9]{2}/[0-9]{2}/[0-9]{4}"/> ( <xsl:value-of select="prix"/> MAD)<br></br>
<xsd:complexType> </xsd:restriction> </xsl:for-each>
<xsd:attribute name="cin" type="xsd:IDREF" </xsd:simpleType > <p style="font-size:20px">Liste des cours ayant plus d'une session</p>
use="required"></xsd:attribute> <xsd:simpleType name="email_Type"> <xsl:for-each select="catalogue/cours">
</xsd:complexType> <xsd:restriction base="xsd:string"> <xsl:sort select="count(session)" order="descending" />
</xsd:element> <xsd:pattern value="[a-z]+@[a-z]+\.[a-z]{2,3}"/> <xsl:if test="count(session) > 1">
<xsd:element name="prix" type="xsd:float"/> </xsd:restriction> <xsl:value-of select="titre"/>
<xsd:element name="sessions"> </xsd:simpleType> (<xsl:value-of select="count(session)"/> sessions)<br></br></xsl:if>
<xsd:complexType> <xsd:simpleType name="max"> </xsl:for-each>
<xsd:sequence> <xsd:restriction base="xsd:string"> <p style="font-size:20px">Le cours le moins chere</p>
<xsd:element name="session" maxOccurs="unbounded"> <xsd:pattern value="[0-9]{1,2}"/> <xsl:value-of select="/catalogue/cours [prix =
<xsd:complexType> </xsd:restriction> math:min(/catalogue/cours/prix)]/titre"/>
<xsd:sequence> </xsd:simpleType> ( <xsl:value-of select="/catalogue/cours [prix=
<xsd:element name="numero" type="xsd:int"/> </xsd:schema> math:min(/catalogue/cours/prix)]/prix"/> MAD)
<xsd:element name="date_debut" type="dateType"/> </body></html></xsl:template></xsl:stylesheet>
<xsd:element name="nombre_min" type="max"/>
<xsd:element name="nombre_max" type="max"/>
</xsd:sequence></xsd:complexType></xsd:element>
</xsd:sequence></xsd:complexType> </xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="type" type="xsd:string" use="required" />
</xsd:complexType></xsd:element>

Vous aimerez peut-être aussi