support-webinphp-kanouni

Dimension: px
Commencer à balayer dès la page:

Download "support-webinphp-kanouni-0058-02-26052014"

Transcription

1 ZEND Studio 1. Installation Progression de l'installation

2 2. Prise en main L'interface Cration d'un projet Le document PHP

3 Excution Compltion Une aide est disponible lors de la saisie de code utile pour pour la syntaxe et la dcouverte de l'api.

4 Dbogueur ZEND Studio 3. Installation

5 Progression de l'installation 1. Prise en main

6 L'interface Cration d'un projet Le document PHP

7 Excution Compltion Une aide est disponible lors de la saisie de code utile pour pour la syntaxe et la dcouverte de l'api.

8 Dbogueur Script PHP Organisation d'un script Intgration HTML Les pages de codes PHP sont compltement intgres aux pages HTML. Le code du PHP est introduit par la syntaxe suivante: Blocks de code PHP

9 <?php...?> Standard <?...?> Version lgre <%... %> Syntaxe proche de ASP <SCRIPT LANGUAGE="PHP"> Au moyen du tag SCRIPT Modles Forme simple <html> <head> <title>premiere page PHP</title> </head> <body> Texte HTML <?php echo "Code du PHP";?> </body> </html> <?php echo("envoyer ce texte au client");?><br> <? echo ("Envoyer ce texte au client ");?><br> <?="Envoyer ce texte au client "?><br> <? $variable="toto"; echo ($variable);?> Forme alterne HTML/PHP <?php $expression=false; if ($expression)?> <strong>ecrire en gras : TRUE</strong> <?php else?> <strong>ecrire en gras : FALSE</strong> <?php?> Excutions En ligne de commande Il est possible de lancer l'interprteur PHP la faon d'un PERL ou d'un SHELL. Mais la plupart du temps PHP est un module intgr APACHE. Les options php -h

10 Usage: php [options] [-f] <file> [--] [args...] php [options] -r <code> [--] [args...] php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...] php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...] php [options] -- [args...] php [options] -a -a Run interactively -c <path> <file> Look for php.ini file in this directory -n No php.ini file will be used -d foo[=bar] Define INI entry foo with value 'bar' -e Generate extended information for debugger/profiler -f <file> Parse and execute <file>. -h This help -i PHP information -l Syntax check only (lint) -m Show compiled in modules -r <code> Run PHP <code> without using script tags <?..?> -B <begin_code> Run PHP <begin_code> before processing input lines -R <code> Run PHP <code> for every input line -F <file> Parse and execute <file> for every input line -E <end_code> Run PHP <end_code> after processing all input lines -H Hide any passed arguments from external tools. -s Display colour syntax highlighted source. -v Version number -w Display source with stripped comments and whitespace. -z <file> Load Zend extension <file>. args... --rf <name> --rc <name> --re <name> Arguments passed to script. Use -- args when first argument starts with - or script is read from stdin Show information about function <name>. Show information about class <name>. Show information about extension <name>. Version php -v PHP (cli) (built: Feb :11:26) Copyright (c) The PHP Group Zend Engine v2.2.0, Copyright (c) Zend Technologies Syntaxe uniquement <?php for ($i=0; $i<10; $i++) print "Je compte ". $i. "\n";?>

11 Liste des modules intgrs l'interprteur php -m [PHP Modules] bcmath calendar com_dotnet ctype date dom filter ftp hash iconv json libxml mbstring mysql mysqli odbc pcre PDO pdo_sqlite Reflection session SimpleXML SPL SQLite standard tokenizer wddx xml xmlreader xmlwriter zlib [Zend Modules] php -q exo1.php Je compte 0<br> Je compte 1<br> Je compte 2<br> Je compte 3<br> Je compte 4<br> Je compte 5<br> Je compte 6<br> Je compte 7<br> Je compte 8<br>

12 Je compte 9<br> php -l exo1.php No syntax errors detected in exo1.php Via client Internet On peut solliciter l'interprteur PHP via un browser : URL = Arguments Les arguments peuvent tre transmis : En ligne de commande Mthode GET/POST Gestion des URLs Encodage Description base64_decode Dcoder la donne avec MIME base64 base64_encode Coder la donne avec MIME base64 get_meta_tags Extraire les tags Meta depuis un fichier vers un tableau parse_url Analyse le contenu d'une URL rawurldecode Dcode une chane URL rawurlencode Code une chane URL RFC 1738 urldecode Dcode une chane URL urlencode Code une chane URL array parse_url ( string url) host port user pass path query - after the question mark? fragment - after the hashmark # $ php -r 'print_r( parse_url(" Array ( [scheme] => http [host] => hostname [user] => username [pass] => password [path] => /path [qfuery] => arg=value [fragment] => anchor ) $ php -r 'print_r( parse_url(" Array ( [scheme] => http

13 ) [host] => invalid_host..name [path] => / array pathinfo ( string path) <?php $path_parts = pathinfo("/www/htdocs/index.html"); echo "dirname = ". $path_parts["dirname"]. "\n"; echo "basename = ". $path_parts["basename"]. "\n";; echo "extension = ". $path_parts["extension"]. "\n";?> Affichage de l'explorateur : php exo.php dirname = /www/htdocs basename = index.html extension = html string urldecode ( string str) Dcode n'importe quel codage bas %## dans une string. La chane dcode est retourne. <?php $a = explode('&',$_server['query_string']); $i = 0; while ($i < count($a)) $b = split('=', $a[$i]); echo 'texte ', htmlspecialchars(urldecode($b[0])), ' est ', htmlspecialchars(urldecode($b[1])), "<br />\n"; $i++;?> texte a est aa texte b est bb string htmlspecialchars ( string string [, int quote_style [, string charset]]) Conversion '&' (ampersand) '"' double quote) ''' (single quote) '<' (less than) '>' (greater than) '&' '"' when ENT_NOQUOTES is not set. '&#039;' only when ENT_QUOTES is set. '<' '>' <?php $new = htmlspecialchars("<a href='test'>test</a>", ENT_QUOTES); echo $new;

14 ?> Affichage de l'explorateur <a href='test'>test</a> ( Chane convertie en <a href=&#039;test&#039;>test</a>) string htmlentities ( string string [, int quote_style [, string charset]]) Nom de constante ENT_COMPAT ENT_QUOTES ENT_NOQUOTES Description Convertit un " mais pas '. Convertit un " et un '. Ne convertit pas " ni '. <?php $str = "Une 'quote' est <b>bold</b>"; echo htmlentities($str). "\n"; echo htmlentities($str, ENT_QUOTES). "\n";?> Sortie Une 'quote' est <b>bold</b> Une &#039;quote&#039; est <b>bold</b> Programmation Oriente objet Encapsulation Donnes et mthodes membres class Personne public $nom="vide"; public $prenom="vide"; public $age=1; public function affichertout () return "Nom = ". $this->nom. " Prenom = ". $this->prenom. " Age = ". $this->age ; Exemple <html> <body> <h1>une classe avec des donnes membres et mthodes membres</h1> <?php class Personne public $nom="vide"; public $prenom="vide";

15 ; public $age=1; public function affichertout () return "Nom = ". $this->nom. " Prenom = ". $this->prenom. " Age = ". $this->age?> <html> $p1 = new Personne (); echo "<p>". $p1->nom. "<p>"; echo "<p>". $p1->prenom. "<p>"; echo "<p>". $p1->age. "<p>"; echo "<p>". $p1->affichertout (). "<p>"; Comment PHP voir une instance? object(personne)#1 (3) ["nom"]=> NULL ["prenom"]=> NULL ["age"]=> NULL Rfrences L'appartenance des donnes et des fonctions membres l'objet se fait par la rfrence nommes $this. $this n'est utilis que dans le code de la classe. Protection public, protected, private Il est possible de protger les membres d'une classe au moyen des attributs : public : accessible tout le monde protected : accessible par hritage private : accessible uniquement pour les membres de la classe Si le membre $ affichertout() tait priv, il y aurait erreur <?php class Personne public $nom; public $prenom; public $age; private function affichertout () return "Nom = ". $this->nom. " Prenom = ". $this->prenom. " Age = ". $this->age ;

16 $p1 = new Personne (); // provoque l'erreur?> echo "<p>". $p1->affichertout (). "<p>"; Sortie Fatal error: Call to private method Personne::afficherTout() from context '' in D:\wamp\www\formation_ricoh\exo6.php on line 31 Constructeur et destructeur class Personne public function construct () public function destruct () <html> <body> <h1>une classe avec constructeur et destructeur</h1> <?php ; class Personne public $nom; public $prenom; public $age; public function affichertout () return "Nom = ". $this->nom. " Prenom = ". $this->prenom. " Age = ". $this->age public function construct () echo "Le contructeur"; $this->nom="vide"; $this->prenom="vide"; $this->age=0; public function destruct () echo "Le destructeur"; $this->nom="vide"; $this->prenom="vide";

17 $this->age=0; $p1 = new Personne (); echo "<p>". $p1->affichertout (). "<p>";?> <html> Setter et getter class Personne public $nom=""; public $prenom=""; public $age=0; public function getnom () return $this->nom; public function setnom ($nom ) $this->nom= $nom; public function getprenom () return $this->prenom; public function setprenom ($prenom ) $this->prenom= $prenom; public function getage () return $this->age; <html> <body> <h1>getter / Setter</h1> <?php class Personne public $nom=""; public $prenom=""; public $age=0; public function getnom () return $this->nom; public function setnom ($nom ) $this->nom= $nom; public function getprenom () return $this->prenom; public function setprenom ($prenom ) $this->prenom= $prenom; public function getage () return $this->age; public function affichertout () return "Nom = ". $this->nom. " Prenom = ". $this->prenom. " Age = ". $this->age ; $p1 = new Personne ();

18 $p1->setnom ("Nouveau nom"); $p1->setprenom ("Nouveau prenom"); echo "<p>". $p1->affichertout (). "<p>";?> <html> Fonction liste d'arguments variable func_num_args() : nombre d'arguments func_get_arg(index) : les arguments un un <?php?> function f() print "Nb arg = ". func_num_args(). "\n"; for ($i=0; $i<func_num_args(); $i++) print func_get_arg($i). "\n"; print " \n"; f(1,2,3); print " \n"; f(1,2,3,4,5); Sortie Nb arg = Nb arg = Paramtres par dfaut class Personne public $nom=""; public $prenom=""; public $age=0; public function settout ($nom="vide", $prenom="vide", $age=0) $this->nom = $nom; $this->prenom = $prenom; $this->age = $age;

19 public function affichertout () return "Nom = ". $this->nom. " Prenom = ". $this->prenom. " Age = ". $this->age ; <html> <body> <h1>surcharge</h1> <?php ; class Personne public $nom=""; public $prenom=""; public $age=0; public function settout ($nom="vide", $prenom="vide", $age=0) $this->nom = $nom; $this->prenom = $prenom; $this->age = $age; public function affichertout () return "Nom = ". $this->nom. " Prenom = ". $this->prenom. " Age = ". $this->age $p1 = new Personne (); $p1->settout ("Nouveau nom", "Nouveau prenom", 10); echo "<p>". $p1->affichertout (). "<p>"; $p1->settout (); echo "<p>". $p1->affichertout (). "<p>";?> <html> Surcharge La surcharge se fait en travaillant sur la liste des arguments public function settout () $num_args=func_num_args(); switch ($num_args) case 3 :

20 $this->nom = func_get_arg(0); $this->prenom = func_get_arg(0); $this->age = func_get_arg(0); break; case 0 : $this->nom = "vide"; $this->prenom = "vide"; $this->age = 0; break; <html> <body> <h1>surcharge</h1> <?php ; class Personne public $nom=""; public $prenom=""; public $age=0; public function settout () $num_args=func_num_args(); switch ($num_args) case 3 : $this->nom = func_get_arg(0); $this->prenom = func_get_arg(1); $this->age = func_get_arg(2); break; case 0 : $this->nom = "vide"; $this->prenom = "vide"; $this->age = 0; break; public function affichertout () return "Nom = ". $this->nom. " Prenom = ". $this->prenom. " Age = ". $this->age $p1 = new Personne ();

21 $p1->settout ("Nouveau nom", "Nouveau prenom", 10); echo "<p>". $p1->affichertout (). "<p>"; $p1->settout (); echo "<p>". $p1->affichertout (). "<p>";?> <html> Hritage class Salarie extends Personne public $anciennete=0; public function affichertout () return Personne::afficherTout (). " Anciennete = ". $this->anciennete ; <html> <body> <h1>hritage</h1> <?php ; class Personne public $nom="vide"; public $prenom="vide"; public $age=1; public function affichertout () return "Nom = ". $this->nom. " Prenom = ". $this->prenom. " Age = ". $this->age class Salarie extends Personne $p1 = new Salarie (); echo "<p>". $p1->affichertout (). "<p>";?>

22 <html> Redfinition La classe drive reprend une fonction de classe de base. <html> <body> <h1>hritage</h1> <?php class Personne public $nom="vide"; public $prenom="vide"; public $age=1; public function affichertout () return "Nom = ". $this->nom. " Prenom = ". $this->prenom. " Age = ". $this->age ; class Salarie extends Personne public $anciennete=0; public function affichertout () return Personne::afficherTout (). " Anciennete = ". $this->anciennete ; $p1 = new Salarie (); echo "<p>". $p1->affichertout (). "<p>";?> <html> Interface interface IAfficher public function affichertout (); <html> <body> <h1>interface </h1> <?php

23 interface IAfficher public function affichertout (); ; class Personne implements IAfficher public $nom="vide"; public $prenom="vide"; public $age=1; public function affichertout () return "Nom = ". $this->nom. " Prenom = ". $this->prenom. " Age = ". $this->age $o = new Personne (); IAfficher $i = $o; echo "<p>". $i->affichertout (). "<p>";?> <html> Mots cls METHODE $self = classe courante $this = objet courant Classe parent = get_parent_class($o) Classe de l'objet = get_class($o) Instanceof class_exists() tostring() <html> <body> <h1>oprateurs</h1> <?php class Personne public $nom="vide"; public $prenom="vide"; public $age=1; public function affichertout ()

24 ; return "Nom = ". $this->nom. " Prenom = ". $self->prenom. " Age = ". $this->age $o = new Personne (); echo "<p>classe = ". get_class($o). "<p>"; echo "<p>parent =". get_parent_class($o). "<p>"; $ret = $o instanceof Personne; echo "<p>instance of =". (string) $ret. "<p>"; echo "<p>exist =". class_exists("personne"). "<p>";?> <html> Eval Permet d'valuer dynamiquement un texte par l'interprteur. Une variable <?php eval ("\$a=10;"); print $a;?> Sortie 10 Une fonction <?php eval ("function f() return 10;"); print f();?> Sortie 10 Build-ins CLASS METHOD FILE LINE construct, destruct, call, get, set, isset, unset, sleep, wakeup, tostring, set_state, clone and autoload are magical in PHP classes. You Introduction XML & XSLT 1. XML Modle de donnes Ascii Il est possible de stocker des donnes au format texte ascii avec une structure propritaire. Mais cela

25 prsente quelques inconvnients: Structure non documente Difficult dfinir un vocabulaire et une grammaire Obligation de dfinir des moyens de gestion XML A la manire dun fichier ascii, le format XML est bas sur des tags applicatifs issus dun vocabulaire et dune grammaire tablis dans un modle de dfinition appel DTD. reconnaissance en tant que standard par la W3C et OMG dploiement doutils (parsers, traduction vers RDB) Gestion aise par la programmation grce aux interfaces. XML est une considr comme l'ascii du WEB mais contrairement la description des donnes ascii, il prsente les avantages suivants : bas sur des tags donc pas de problme de sparateurs les tags constituent un vocabulaire de domaine tablit dans un fichier joint appel DTD contenu du document XML valid par sa DTD lors du parsing Les tags sont imbriqus et constituent une description objet du document Disponibilit de parser pour diffrents langages par le biais d'interfaces. Structure dun document Prologue <?xml version="1.0"?> <?xml version="1.0"encoding="utf-8" standalone="yes"?> body Structure du document en tant que tags imbriqus enrichis par des attributs. Epilogue Pouvant contenir des section PI et des commentaires <CATALOGUE> <LIVRES> <LIVRE titre="programmation C" auteur="bk" annee="2000"/> <LIVRE titre="programmation JAVA" auteur="fb" annee="2000"/> <LIVRE titre="administration NT2000" auteur="jj" annee="2000"/> <LIVRE titre="programmation PERL" auteur="bk" annee="2000"/> </LIVRES> </CATALOGUE> La DTD Le DTD dfinit le vocabulaire et la smantique des lments utiliss dans un document XML. vocabulaire rgles de grammaire Cest le parser qui exploite de DTD pour valider le contenu du document. Mot cl ELEMENT Signification Dclaration dun lment

26 ATTLIST ENTITY NOTATION Les lments <! Element Nom catgorie> La catgorie peut tre EMPTY ELEMENT MIXED ANY #REQUIRED #IMPLIED #FIXED Valeurs par dfaut Dclaration des attributs Dclaration dun contenu rutilisable Dclaration dun contenu externe pour viter de le voir interprter Ni texte ni lment enfant Contient un lment enfant mais pas de texte Combinaison de ELEMENT, de #PCDATA, de texte ou contenu. Contenu libre mais conforme XML ( viter) Apparition dans toutes les instances de llment Apparition optionnelle Lattribut doit toujours avoir les valeurs par dfaut. Si la valeur nest pas prsente alors valeur par dfaut prise. <!ELEMENT CATALOGUE (LIVRES) #REQUIRED> <!ELEMENT LIVRES (LIVRE MAGASINE) #REQUIRED> Analyseur syntaxique XML (Parser) Modle SAX Le document XML est valid par la DTD laquelle il est associ. Mais un document XML nest pas forcment associ un DTD, on dit quil nest pas valid. Le document XML est analys par un programme pour organiser en mmoire son hirarchie le rendant ainsi accessible la programmation. Le parser SAX intervient dans le code de l'application sous forme d'vnements (fonction php). Fichier traiter <?xml version= "1.0" encoding= "UTF-8" standalone= "yes"?> <CATALOGUE> <LIVRES> <LIVRE titre= " Programmation C" auteur= " BK" annee= " 2000"/> <LIVRE titre= " Programmation JAVA" auteur= " FB" annee= " 2000"/> <LIVRE titre= " Administration NT2000" auteur= " JJ" annee= " 2000">AAAAA</LIVRE> <LIVRE titre= " Programmation PERL" auteur= " BK" annee= " 2000"/> </LIVRES> </CATALOGUE> Programme PHP <? // Prparation des vnements SAX function startelement ($parser, $name, $attr)

27 printf ("Dbut de tag : Nom = %s Attribs = %s<br>", $name, implode ($attr)); function endelement ($parser, $name) printf ("Fin de tag : Nom = %s <br>", $name); function characterdata ($parser, $data) $info = strlen (trim($data))? $data : "rien"; printf ("Entre le tag, je trouve %s<br>", $info); // Instancier un parser SAX $parser = xml_parser_create (); // Mettre en place les vnments xml_set_element_handler ($parser, "startelement", "endelement"); xml_set_character_data_handler ($parser, "characterdata"); // Ouvrir et traiter un fichier if (!($fp = fopen ("livres.xml", "r"))) die ("Impossible de trouver le fichier livres.xml"); while (($data = fread ($fp, 4096))) if (!xml_parse ($parser, $data, feof ($fp))) die (sprintf ("XML erreur ligne = %d colonne = %d", xml_get_current_line_number($parser), xml_get_current_column_number($parser)));?> Sortie Dbut de tag : Nom = CATALOGUE Attribs = Entre le tag, je trouve rien Dbut de tag : Nom = LIVRES Attribs = Entre le tag, je trouve rien Entre le tag, je trouve rien Dbut de tag : Nom = LIVRE Attribs = Programmation C BK 2000 Fin de tag : Nom = LIVRE Entre le tag, je trouve rien Entre le tag, je trouve rien Dbut de tag : Nom = LIVRE Attribs = Programmation JAVA FB 2000 Fin de tag : Nom = LIVRE Entre le tag, je trouve rien

28 Entre le tag, je trouve rien Dbut de tag : Nom = LIVRE Attribs = Administration NT2000 JJ 2000 Entre le tag, je trouve AAAAA Fin de tag : Nom = LIVRE Entre le tag, je trouve rien Entre le tag, je trouve rien Dbut de tag : Nom = LIVRE Attribs = Programmation PERL BK 2000 Fin de tag : Nom = LIVRE Entre le tag, je trouve rien Fin de tag : Nom = LIVRES Entre le tag, je trouve rien Fin de tag : Nom = CATALOGUE Modle DOM 2. SCHEMA Introduction Le schema est un langage description de types de donnes. Il est crit en XML est valid et son vocabulaire est donn par site : Le schma est un document quivalent celui de la DTD. On y dcrit des types de donnes avec leurs rgles et contraintes. Il reprsente une amlioration par rapport la DTD car il est volutif. On peut crire son propre schma pour tous les lments que l'on trouve dans son document. Mais si on utilise un vocabulaire dj existant alors autant utiliser les schma disponibles : biologie, mathmatique, lectronique Notre schma doit son tour respecter le vocabulaire de base renferm dans Structure d'un document schema <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs=" </xs:schema> Les types de donnes peuvent tre simples (scalaires) ou complexes (agrgs). type simple : string <xs:element name="title" type="xs:string"/> <xs:element name="author" type="xs:string"/> type complexe : sequence <xs:element name="book"> <xs:complextype> <xs:sequence>.../...

29 </xs:sequence>.../... </xs:complextype> </xs:element> Ceci est une cration d'un type de donnes "character" <xs:element name="character" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <xs:sequence>.../... </xs:sequence> </xs:complextype> </xs:element> Ceci est une cration d'un type de donnes "lment" bas string <xs:element name="name" type="xs:string"/> <xs:element name="friend-of" type="xs:string" minoccurs="0" maxoccurs="unbounded"/> <xs:element name="since" type="xs:date"/> <xs:element name="qualification" type="xs:string"/> Exemple complet <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs=" <xs:element name="book"> <xs:complextype> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="author" type="xs:string"/> <xs:element name="character" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="friend-of" type="xs:string" minoccurs="0" maxoccurs="unbounded"/> <xs:element name="since" type="xs:date"/> <xs:element name="qualification" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> </xs:sequence> <xs:attribute name="isbn" type="xs:string"/> </xs:complextype> </xs:element> </xs:schema> Autre exemple <?xml version="1.0" encoding="utf-8"?>

30 <xs:schema xmlns:xs=" <!-- definition of simple type elements --> <xs:element name="title" type="xs:string"/> <xs:element name="author" type="xs:string"/> <xs:element name="name" type="xs:string"/> <xs:element name="friend-of" type="xs:string"/> <xs:element name="since" type="xs:date"/> <xs:element name="qualification" type="xs:string"/> <!-- definition of attributes --> <xs:attribute name="isbn" type="xs:string"/> <!-- definition of complex type elements --> <xs:element name="character"> <xs:complextype> <xs:sequence> <xs:element ref="name"/> <xs:element ref="friend-of" minoccurs="0" maxoccurs="unbounded"/> <xs:element ref="since"/> <xs:element ref="qualification"/> <!-- the simple type elements are referenced using the "ref" attribute --> <!-- the definition of the cardinality is done when the elements are referenced --> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="book"> <xs:complextype> <xs:sequence> <xs:element ref="title"/> <xs:element ref="author"/> <xs:element ref="character" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> <xs:attribute ref="isbn"/> </xs:complextype> </xs:element> </xs:schema> Types nomms <xs:simpletype name="nametype"> <xs:restriction base="xs:string"> <xs:maxlength value="32"/> </xs:restriction> </xs:simpletype> <xs:simpletype name="isbntype"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]10"/> </xs:restriction> </xs:simpletype>

31 Exemple complet <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs=" <!-- definition of simple types --> <xs:simpletype name="nametype"> <xs:restriction base="xs:string"> <xs:maxlength value="32"/> </xs:restriction> </xs:simpletype> <xs:simpletype name="sincetype"> <xs:restriction base="xs:date"/> </xs:simpletype> <xs:simpletype name="desctype"> <xs:restriction base="xs:string"/> </xs:simpletype> <xs:simpletype name="isbntype"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]10"/> </xs:restriction> </xs:simpletype> <!-- definition of complex types --> <xs:complextype name="charactertype"> <xs:sequence> <xs:element name="name" type="nametype"/> <xs:element name="friend-of" type="nametype" minoccurs="0" maxoccurs="unbounded"/> <xs:element name="since" type="sincetype"/> <xs:element name="qualification" type="desctype"/> </xs:sequence> </xs:complextype> <xs:complextype name="booktype"> <xs:sequence> <xs:element name="title" type="nametype"/> <xs:element name="author" type="nametype"/> <xs:element name="character" type="charactertype" minoccurs="0"/> <!-- the definition of the "character" element is using the "charactertype" complex type --> </xs:sequence> <xs:attribute name="isbn" type="isbntype" use="required"/> </xs:complextype> <!-- Reference to "booktype" to define the "book" element --> <xs:element name="book" type="booktype"/> </xs:schema> 3. XPath Introduction XPath est un langage permettant de reprer des nuds (lments) dans un document hirarchique XML.

32 C'est lui qui est utilis par XSLT pour localiser des parties de documents contenant des lments et leurs attributs. XPath est un standard du W3C : Un emplacement XPath est form de trois parties : Un axe : qui spcifie la relation hirarchique entre le contexte et les noeuds slectionns Le test du noeud : spcifiant le type de noeud recherch Le prdicat : expression boolenne devant tre satisfaite par le noeud pour faire partie de la slection. Contexte Lorsqu'on travaille avec XSLT le contexte est le noeud dans le document XML en cours de traitement. Le contexte consiste en : Un noeud (the context node) Une paire d'entiers poisitifs (context position + context size) Un ensembre de variables bindings Des espace de noms Le contexte "racine ou /" veut dire tout le document. <xsl:template match="/"> Le contexte de la boucle for est chaque lment sur le quel on se positionne avec for. <xsl:for-each loop> Il faut toujours se poser la question sur le contexte en cours de traitement. Chemin Le chemin XPath est une expression du langage XPath initialise pour trouver le contexte. Le chemin reconnat les nuds suivants root = racine du document XML element = un lment du document XML text = Texte d'un lment XML attribute = Attribut d'un lements XML namespace = espace de nom associ un lment XML (attribut commenant par xmlns) processing = PI comment Afin de simplifier les expressions les parsers XPath supportent des abrviations telles que. = nud courant.. = noeud parent chapitre//sparagraphe = child::chapitre//sparagraphe::sparagraphe [@type="warning"] = child::para[attribute::type="warning"] //para = /descendant-or-self::node()/child::para para[3] = para[position()=3]

33 para the para element children of the context node * all element children of the context node text() all text node children of the context the name attribute of the context all the attributes of the context node para[1] the first para child of the context node para[last()] the last para child of the context node */para all para grandchildren of the context node /doc/chapter[5]/section[2] the second section of the fifth chapter of the doc chapter//para the para element descendants of the chapter element children of the context node //para all the para descendants of the document root and thus = all para elements in the same document as the context node //olist/item all the item elements in the same document as the context node that have an olist parent. the context node.//para the para element descendants of the context node.. the parent of the context node../@lang the lang attribute of the parent of the context node para[@type="warning"] all para children of the context node that have a type attribute with value warning para[@type="warning"][5] the fifth para child of the context node that has a type attribute with value warning para[5][@type="warning"] the fifth para child of the context node if that child has a type attribute with value warning "Introduction"] the chapter children of the context node that have one or more title children with string-value equal to Introduction chapter[title] the chapter children of the context node that have one or more title children employee[@secretary all the employee children of the context node that have both a secretary attribute and an assistant attribute Predicate Un prdicat est un filtre qui permet d'isoler un ensemble de nuds partir d'un axe donn. Il s'agit d'une expression qui est value vraie pour le nud considr. [expression] paragraphe[titre='compte utilisateur'] paragraphe[position() = 1] paragraphe[starts-with(titre, "Gestion")] XPath: Expressions Les filtres de nuds sont forms d'expressions logiques

34 and, or logical and, or = equal to!= not equal to >, >= greater than, greater than or equal to <, <= less than, less than or equal to Remember to code the < character as the XML entity < in the XSL file. +, -, *, div addition, subtraction, multiply, divide mod modular, returns the integer remainder of a division Computes (unions) two node sets Filtre sur les positions paragraphe[position() >=2 and position() <=4] L'un ou l'autre des noeuds. paragraphe sparagraphe XPath: Functions XSLT dispose d'une grande liste de fonctions pouvant tre utilises dans les expressions Xpath. count Permet de compter le nombre de noeuds dans une liste de noeuds retourne par une expression Xpath. count(nodes) <xsl:value-of select="count(chapitre/paragraphe[id=1])"/> number Permet de convertir une valeur en un numrique. Si la conversion choue alors le rsultat est "NaN" (Not a Numbre) <xsl:value-of select="number(books/book/price)"/></p> position Retourne la position d'un lment dans son contexte. <xsl:number substring Retourne une partie d'une chane de caractres avec un index bas 1. substring(value, start) substring(value, start, length) <xsl:value-of select="substring(name, 1, 3)"/> sum Permet d'effectuer la somme des valeurs de nuds <xsl:value-of select="sum(//price)"/> Gestion de string string string(object?) = convertit des donnes en chane de caractres.

35 Donne Chane zero 0 +infini Infinity -infini -Infinity entier dcimal Boolen True / false string concat(string, string, string*) = Concatnation des chanes passes en argument. boolean starts-with(string, string) = Vrifie qu'une chane commence bien par une occurrence. Le rsultat est boolen. string substring-before(string, string) = retourne la chane aprs l'occurrence string substring-after(string, string) = retourne la chane avant l'occurrence boolean contains(string, string) = rechecher d'occurrence string substring(string, number, number?) = extrait de chane number string-length(string?) = retourne le nombre de caractres string normalize-space(string?) = enlve les espaces en dbut et en fin. Gestion de boolen boolean boolean(object) = permet la conversion d'objets en boolen un nombre est vrai un node-set est vrai une chane est vraie s'il n'est pas positif ni NaN s'il est non vide si la longueur est non nulle boolean not(boolean) = ngation de la proposition logique boolean true() = retourne vrai toujours boolean false() = retourne faux toujours Gestion de nombre number number(object?) une string contenant un numrique est convertie en numrique boolen true est converti en 1 boolen false est converti en 0 un node-set est converti d'abord en chane number sum(node-set) = la valeur de chaque noeud est convertie en un numrique et le cumule est effectu number floor(number) = convertir le nombre en un entier suprieur immdiat number ceiling(number) = convertir le nombre en un entier infrieur immdiat number round(number) = donne un arrondi du nombre. Gestion des Node-set

36 number last() =retourne un nombre gal au context size evaluation context. number position() = retourne un nombre gal au contexte position number count(node-set) = retourne le nombre de noeud dans le node-set node-set id(object) = slectionne un objet par son ID. id("foo") id("foo")/child::para[position()=5] string local-name(node-set?) string namespace-uri(node-set?) string name(node-set?) 4. XSL Modle de donnes Le modle de donnes est similaire celui de Xpath. Le traitement XSLT se fait conjointement sur les trois documents suivants: source XML rsultat XML document XSL Le rootnode peut contenir n'importe quelle squence d'lments. Chaque nud est repr par son URI qui peut tre relative ou absolue. para any para element * any element chapter appendix any chapter element and any appendix element olist/item any item element with an olist parent appendix//para any para element with an appendix ancestor element / the root node text() any text node processing-instruction() any processing instruction node() any node other than an attribute node and the root node id("w11") the element with unique ID W11 para[1] any para element that is the first para child element of its parent *[position()=1 and self::para] any para element that is the first child element of its parent para[last()=1] any para element that is the only para child element of its parent items/item[position()>1] any item element that has a items parent and that is not the first item child of its parent div[@class="appendix"]//p any p element with a div ancestor element that has a class attribute with value any class attribute (not any element that has a

37 @* Application des templates <!-- Category: instruction --> <xsl:apply-templates select = node-set-expression mode = qname> <!-- Content: (xsl:sort xsl:with-param)* --> </xsl:apply-templates> Rgles prdfinies Pour les root nodes et les lments node. <xsl:template match="* /"> <xsl:apply-templates/> </xsl:template> class attribute) any attribute Pour les root nodes et les lments node. On poursuit dans le mme mode <xsl:template match="* /" mode="m"> <xsl:apply-templates mode="m"/> </xsl:template> Pour les textes et attributs nodes <xsl:template <xsl:value-of select="."/> </xsl:template> Pour une processing instructions et comments <xsl:template match="processing-instruction() comment()"/> Templates nommes Les templates peuvent tre invoques par nom la manire d'une fonction <!-- Category: instruction --> <xsl:call-template name = qname> <!-- Content: xsl:with-param* --> </xsl:call-template> Cration d'lments et attributs Cration d'lment <!-- Category: instruction --> <xsl:element name = qname namespace = uri-reference use-attribute-sets = qnames> <!-- Content: template --> </xsl:element> Cration d'attributs <!-- Category: instruction --> <xsl:attribute name = qname namespace = uri-reference >

38 <!-- Content: template --> </xsl:attribute> Cration de Texte Une template peut contenir un texte noeud. <!-- Category: instruction --> <xsl:text disable-output-escaping = "yes" "no"> <!-- Content: #PCDATA --> </xsl:text> Cration d'une Processing Instructions <!-- Category: instruction --> <xsl:processing-instruction name = ncname > <!-- Content: template --> </xsl:processing-instruction> <xsl:processing-instruction name="xml-stylesheet">href="book.css" type="text/css"</xsl:processing-instruction> produira <?xml-stylesheet href="book.css" type="text/css"?> Cration d'un Commentaire <!-- Category: instruction --> <xsl:comment> <!-- Content: template --> </xsl:comment> <xsl:comment>this file is automatically generated. Do not edit!</xsl:comment> Produira <!--This file is automatically generated. Do not edit!--> Copier un noeud <!-- Category: instruction --> <xsl:copy use-attribute-sets = qnames> <!-- Content: template --> </xsl:copy> xsl:copy permet de copier le noeud courant. Mais les attributs et les noeuds enfant ne sont pas copis automatiquement. Seuls les noeuds pouvant possder des attributs et de noeuds enfants sont copis. Le noeud racine est trait spcialement car il est cr de manire implicite par xslt. <xsl:template match="@* node()">

39 <xsl:copy> <xsl:apply-templates node()"/> </xsl:copy> </xsl:template> Le noeud courant copier peut tre de type attribut <xsl:template name="apply-templates-copy-lang"> <xsl:for-each <xsl:copy/> </xsl:for-each> <xsl:apply-templates/> </xsl:template> On peut simplement faire <xsl:call-template name="apply-templates-copy-lang"/> au lieu <xsl:apply-templates/> Calcul et gnration de texte Avec xsl:value-of peut extraire du texte depuis la source ou depuis le contenu d'une variable. Les valeurs littrales sont encapsules dans (). Gnration de texte avec xsl:value-of <!-- Category: instruction --> <xsl:value-of select = string-expression disable-output-escaping = "yes" "no" /> xsl:value-of va crer un noeud de type texte dans l'arbre rsultat. L'attribut select est une expression. Cette expression est value et le rsultat est converti en chane de caractres. Le texte gnr est automatiquement fusionn avec les textes adjacents. xsl:copy-of peut utilis pour copier un ensemble de noeuds sur l'arbre sans passer par une conversion texte. <xsl:template match="person"> <p> <xsl:value-of select="@given-name"/> <xsl:text> </xsl:text> <xsl:value-of select="@family-name"/> </p> </xsl:template> <xsl:template match="person"> <p> <xsl:value-of select="given-name"/> <xsl:text> </xsl:text>

40 <xsl:value-of select="family-name"/> </p> </xsl:template> Attribute Value Templates La valeur d'un attribut peut tre value avant l'affectation. Pour cela on utilise L'exemple suivant cre un lment img depuis un noeud <photograph du source. L'emplacement de l'image est compos du contenu de la variable $image-dir et de la string-value de l'lment enfant <href> <xsl:variable name="image-dir">/images</xsl:variable> <xsl:template match="photograph"> <img src="$image-dir/href" </xsl:template> Le source <photograph> <href>headquarters.jpg</href> <size width="300"/> </photograph> Le rsultat est <img src="/images/headquarters.jpg" width="300"/> On n'aime pas les imbrications de... <a N'est pas permis, on utilise plutt <a Les nombres <!-- Category: instruction --> <xsl:number level = "single" "multiple" "any" count = pattern from = pattern value = number-expression format = string lang = nmtoken letter-value = "alphabetic" "traditional" grouping-separator = char grouping-size = number /> xsl:number est utilis pour insrer un nombre format dans l'arbre rsultat. Le nombre est spcifi dans une expression.

41 La valeur de l'attribut contient l'expression devant tre value. Le nombre est converti en entier naturel puis en chane de caractres. <xsl:template match="items"> <xsl:for-each select="item"> <xsl:sort select="."/> <p> <xsl:number value="position()" format="1. "/> <xsl:value-of select="."/> </p> </xsl:for-each> </xsl:template> Si aucune valeur de l'attribut n'est spcifie alors la valeur de position() du noeud courant est fournie. <xsl:template match="ol/item"> <fo:block> <xsl:number/><xsl:text>. </xsl:text><xsl:apply-templates/> </fo:block> <xsl:template> <xsl:template match="title"> <fo:block> <xsl:number level="multiple" count="chapter section subsection" format="1.1 "/> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="appendix//title" priority="1"> <fo:block> <xsl:number level="multiple" count="appendix section subsection" format="a.1 "/> <xsl:apply-templates/> </fo:block> </xsl:template> L'exemple suivant numrote squentiellement les notes du chapitre. <xsl:template match="note"> <fo:block> <xsl:number level="any" from="chapter" format="(1) "/> <xsl:apply-templates/> </fo:block> </xsl:template> The following example would number H4 elements in HTML with a three-part label: <xsl:template match="h4">

42 <fo:block> <xsl:number level="any" from="h1" count="h2"/> <xsl:text>.</xsl:text> <xsl:number level="any" from="h2" count="h3"/> <xsl:text>.</xsl:text> <xsl:number level="any" from="h3" count="h4"/> <xsl:text> </xsl:text> <xsl:apply-templates/> </fo:block> </xsl:template> Conversion nombre/chane de caractres Grce l'attribut format, il est possible de convertir une liste de numriques en chane de caractres. La valeur par dfaut est 1. format spare en squence de mots et chaque mot est une valeur maximale de squence alphanumrique : Nd, Nl, No, Lu, Ll, Lt, Lm or Lo. format token squence A A B C... Z AA AB AC... a a b c... z aa ab ac... i i ii iii iv v vi vii viii ix x... I I II III IV V VI VII VIII IX X... Rptition <!-- Category: instruction --> <xsl:for-each select = node-set-expression> <!-- Content: (xsl:sort*, template) --> </xsl:for-each> xsl:for-each contient une template qui est instancie pour chaque noeud slectionn. L'attribut select est requis et contient l'expression valuer pour retourner un node-set. Les nuds sont traits dans l'ordre du document moins que une spcification de tri ne soit demande. XML <customers> <customer> <name>...</name> <order>...</order> <order>...</order> </customer> <customer> <name>...</name> <order>...</order>

43 <order>...</order> </customer> </customers> XSL <xsl:template match="/"> <html> <head> <title>customers</title> </head> <body> <table> <tbody> <xsl:for-each select="customers/customer"> <tr> <th> <xsl:apply-templates select="name"/> </th> <xsl:for-each select="order"> <td> <xsl:apply-templates/> </td> </xsl:for-each> </tr> </xsl:for-each> </tbody> </table> </body> </html> </xsl:template> Les conditions XSLT support deux types de conditions : xsl:if = avec un seul if-then xsl:choose = avec plusieurs possibilits xsl:if <!-- Category: instruction --> <xsl:if test = boolean-expression> <!-- Content: template --> </xsl:if> xsl:if possde un attribut test dans lequel une expression boolenne est value. <xsl:template match="namelist/name"> <xsl:apply-templates/> <xsl:if test="not(position()=last())">, </xsl:if> </xsl:template>

44 <xsl:template match="item"> <tr> <xsl:if test="position() mod 2 = 0"> <xsl:attribute name="bgcolor">yellow</xsl:attribute> </xsl:if> <xsl:apply-templates/> </tr> </xsl:template> xsl:choose <!-- Category: instruction --> <xsl:choose> <!-- Content: (xsl:when+, xsl:otherwise?) --> </xsl:choose> <xsl:when test = boolean-expression> <!-- Content: template --> </xsl:when> <xsl:otherwise> <!-- Content: template --> </xsl:otherwise> xsl:choose slectionne la possibilit pour laquelle le test est valu vrai. <xsl:template match="orderedlist/listitem"> <fo:list-item indent-start='2pi'> <fo:list-item-label> <xsl:variable name="level" select="count(ancestor::orderedlist) mod 3"/> <xsl:choose> <xsl:when test='$level=1'> <xsl:number format="i"/> </xsl:when> <xsl:when test='$level=2'> <xsl:number format="a"/> </xsl:when> <xsl:otherwise> <xsl:number format="1"/> </xsl:otherwise> </xsl:choose> <xsl:text>. </xsl:text> </fo:list-item-label> <fo:list-item-body> <xsl:apply-templates/> </fo:list-item-body> </fo:list-item> </xsl:template> Tri avec sort <xsl:sort

45 select = string-expression lang = nmtoken data-type = "text" "number" qname-but-not-ncname order = "ascending" "descending" case-order = "upper-first" "lower-first" /> xsl:sort est un lment enfant de xsl:apply-templates ou de xsl:for-each. Lorsqu'il y a plus d'un lment, xsl:sort alors se comportent comme cl premire et cl secondaire. xsl:sort force xsl:apply-templates ou xsl:for-each trier la liste de noeuds avant de les traiter. Les attributs de xsl:sort permettent de contrler le tri. Attributs Valeurs possibles order ascending(defaut) ou descending data-type texte (dfaut), numbre ou QNames case-order upper-first ou lower-first Soit une base de donnes d'employs. <employees> <employee> <name> <given>james</given> <family>clark</family> </name>... </employee> </employees> La liste d'employs est trie par nom: <xsl:template match="employees"> <ul> <xsl:apply-templates select="employee"> <xsl:sort select="name/family"/> <xsl:sort select="name/given"/> </xsl:apply-templates> </ul> </xsl:template> <xsl:template match="employee"> <li> <xsl:value-of select="name/given"/> <xsl:text> </xsl:text> <xsl:value-of select="name/family"/> </li> </xsl:template> Variables et Parameters <!-- Category: top-level-element --> <!-- Category: instruction -->

46 <xsl:variable name = qname select = expression> <!-- Content: template --> </xsl:variable> <!-- Category: top-level-element --> <xsl:param name = qname select = expression> <!-- Content: template --> </xsl:param> Une variable est un nom associ une valeur. En XSLT il y a deux faons d'associer un nom une valeur : xsl:variable xsl:param Les deux lments ont un attribut "name" qui est un QName. Valeur de Variables et Paramtres Trois manires d'affecter une valeur: Si l'attribut select est prsent alors la valeur est donne par l'expression Si l'attribut select n'est pas prsent alors la template doit donner la valeur aprs valuation Si l'attribut select n'est pas prsent et possde un contenu vide alors la valeur est une chane vide. <xsl:variable name="x"/> est quivalent <xsl:variable name="x" select="''"/> Variables et Parameters avec xsl:copy-of <!-- Category: instruction --> <xsl:copy-of select = expression /> xsl:copy-of peut tre utilis pour insrer un fragment d'arbre rsultat dans l'arbre rsult sans passer par une conversion en chane de caractres. Variables et parameters Top-level xsl:variable et xsl:param sont autoriss au niveau global pour tre vus dans tous les blocs de code. Le paramtre variable para-font-size est dclar en global pour tre utilis par la template <xsl:variable name="para-font-size">12pt</xsl:variable> <xsl:template match="para">

47 <fo:block font-size="$para-font-size"> <xsl:apply-templates/> </fo:block> </xsl:template> Variables and parameters dans une Template xsl:variable et xsl:param sont autorises dans une template. xsl:variable est possible n'importe o dans la template tandis que xsl:param n'est permis que immdiatement aprs xsl:template. Attention au conflit de noms et la visibilit des entits dclares. Ceci est une erreur <xsl:template name="foo"> <xsl:param name="x" select="1"/> <xsl:variable name="x" select="2"/> </xsl:template> Ceci est correcte <xsl:param name="x" select="1"/> <xsl:template name="foo"> <xsl:variable name="x" select="2"/> </xsl:template> Passer des paramtres aux Templates <xsl:with-param name = qname select = expression> <!-- Content: template --> </xsl:with-param> Les paramtres sont passs aux templates au moyen xsl:with-param. La valeur du nom de param est un Qname. On peut utiliser xsl:with-param aussi bien dans xsl:call-template que dans xsl:applytemplates. <xsl:template name="numbered-block"> <xsl:param name="format">1. </xsl:param> <fo:block> <xsl:number format="$format"/> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="ol//ol/li"> <xsl:call-template name="numbered-block"> <xsl:with-param name="format">a. </xsl:with-param> </xsl:call-template> </xsl:template>

48 Autres fonctions node-set document(object, node-set?) Permet d'extraire un node-set depuis un document XML extrieur. Le rsultat est fusionn avec le node-set courant. Keys Keys fonctionne avec les documents possdant des rfrences croises explicites : ID, IDREF et IDREFS XSLT supporte cela au travers de XPath avec id() mais il y a certaines limitations. Les attributs ID sont dclars dans la DTD et doivent respecter : L'unicit Un nom valide (pas d'espace) L'lment key possde trois parties : Le noeud possdant la key Le nom du key (QName) La valeur du key Stylesheet dclare implicitement un ID au moyen de xsl:key pour chaque lment rencontr en se basant sur l'unicit du nom ainsi un lment de nom x aura un ID=x <!-- Category: top-level-element --> <xsl:key name = qname match = pattern use = expression /> <xsl:key permet de dclarer les keys. L'expression est value une seule fois pour chaque nud. <xsl:key name="idkey" match="div" use="@id"/> Une expression key("idkey",@ref) retournera le mme rsultat que id(@ref) en supposant la dclaration suivante dans la DTD. <!ATTLIST div id ID #IMPLIED> Supposant l'lment suivant. <prototype name="key" return-type="node-set"> <arg type="string"/> <arg type="object"/> </prototype> et une fonction y faisant rfrence <function>key</function>

49 Alors le stylesheet gnrera un hyperlien comme cela <xsl:key name="func" match="prototype" <xsl:template match="function"> <b> <a href="#generate-id(key('func',.))"> <xsl:apply-templates/> </a> </b> </xsl:template> <xsl:template match="prototype"> <p><a name="generate-id()"> <b>function: </b>... </a></p> </xsl:template> Key peut servir extraire une key depuis un autre document Soit un document contenant <bibref>xslt</bibref> Soit un autre document XML bib.xml possdant une entre <entry name="xslt">...</entry> Alors le stylesheet effectuera la transformation comme cela. <xsl:key name="bib" match="entry" <xsl:template match="bibref"> <xsl:variable name="name" select="."/> <xsl:for-each select="document('bib.xml')"> <xsl:apply-templates select="key('bib',$name)"/> </xsl:for-each> </xsl:template> Formater un nombre string format-number(number, string, string?) On convertit le nombre selon un modle (string) et avec un format dcimal (string). <!-- Category: top-level-element --> <xsl:decimal-format name = qname decimal-separator = char grouping-separator = char infinity = string minus-sign = char

50 NaN = string percent = char per-mille = char zero-digit = char digit = char pattern-separator = char /> xsl:decimal-format est inspir du modle : classe DecimalFormatSymbols de la JDK 1.1 decimal-separator grouping-separator percent per-mille zero-digit the character used for the decimal sign; the default value is the period character (.) the character used as a grouping (e.g. thousands) separator; the default value is the comma character (,) the character used as a percent sign; the default value is the percent character (%) the character used as a per mille sign; the default value is the Unicode per-mille character (#x2030) the character used as the digit zero; the default value is the digit zero (0) The following attributes control the interpretation of characters in the format pattern: digit the character used for a digit in the format pattern; the default value is the number sign character (#) pattern-separator the character used to separate positive and negative sub patterns in a pattern; the default value is the semi-colon character (;) Les attributs suivant sont utiliss pour le rsultat infinity the string used to represent infinity; the default value is the string Infinity NaN the string used to represent the NaN value; the default value is the string NaN minus-sign the character used as the default minus sign; the default value is the hyphen-minus character (-, #x2d) Fonctions utiles node-set current()=retourne un node-set ne contenant que le noeud courant comme membre. <xsl:value-of select="current()"/> Est quivalent <xsl:value-of select="."/> Le noeud courant est en principe diffrent de celui qui est spcifi entre [] <xsl:apply-templates select="//glossary/item[@name=current()/@ref]"/>

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition) Présentation du langage XML 1. De SGML à XML 17 2. Les bases de XML 18 2.1 Rappel sur HTML 18 2.2 Votre premier document XML 19 2.3 Les avantages de XML 21 3. La syntaxe XML 21 3.1 La première ligne du

Plus en détail

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition XML par la pratique Bases indispensables Concepts et cas pratiques 3 ième édition Nouvelle édition Thierry BOULANGER Table des matières 1 Les éléments à télécharger sont disponibles à l'adresse suivante

Plus en détail

BD et XML : Exercices

BD et XML : Exercices BD et XML : Exercices 1 Stockage XML Voici un arbre XML : A B E C F C F C F D C C D D D 1.1 Stockage générique Exercice 1.1.1 : Définissez un schéma de stockage relationnel générique (sans prendre en compte

Plus en détail

Master d Informatique Corrigé du partiel novembre 2010

Master d Informatique Corrigé du partiel novembre 2010 Universités d Aix-Marseille I & II Technologies XML Master d Informatique Corrigé du partiel novembre 2010 Année 2010-11 Documents autorisés Exercice 1 : Documents XML et Applications XML (4 points) Georges,

Plus en détail

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr Module BDWEB Maîtrise d informatique Cours 9 - Xquery Anne Doucet anne.doucet@lip6.fr 1 Langages de requêtes XML Concepts des langages de requêtes XML motivations caractéristiques Navigation dans les documents

Plus en détail

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch Faculté de Génie Chaire industrielle en infrastructures de communication La technologie XML Wajdi Elleuch Octobre 2004 SOMMAIRE Content : - XML : Définition - XML : Solution pour des applications réparties

Plus en détail

Programmation des Applications Réparties. Parsers XML DOM et SAX

Programmation des Applications Réparties. Parsers XML DOM et SAX Programmation des Applications Réparties Parsers XML DOM et SAX Luiz Angelo Steffenel luiz-angelo.steffenel@univ-reims.fr Steffenel Programmation des Applications Réparties Master M1-2007-2008 1 Comment

Plus en détail

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2) Le langage PHP (2) Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 54 1 La programmation orientée objet 2 Gestion de Connexions HTTP 3 Manipulation

Plus en détail

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>

<?xml version=1.0 encoding=iso-8859-1 standalone=yes?> Multimédia XML Benoît Piranda Équipe SISAR Université de Marne La Vallée XML l avenir de HTML? Extensible Markup Language, entre HTML et SGML tente de se servir des principes de simplicité du HTML et de

Plus en détail

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Projet de programmation (IK3) : TP n 1 Correction

Projet de programmation (IK3) : TP n 1 Correction Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Production de documents avec XSLT. Production de documents p.1/??

Production de documents avec XSLT. Production de documents p.1/?? Production de documents avec XSLT Production de documents p.1/?? Sommaire La balise xsl:output comment choisir le format de sortie Création de nœuds dans un document créer des éléments et attributs Création

Plus en détail

Exercices sur SQL server 2000

Exercices sur SQL server 2000 Exercices sur SQL server 2000 La diagramme de classe : Exercices sur SQL server 2000 Le modèle relationnel correspondant : 1 Créer les tables Clic-droit on Tables et choisir «New Table» Créer la table

Plus en détail

Document Object Model (DOM)

Document Object Model (DOM) Document Object Model (DOM) Jean-Claude Charr Maître de conférences IUT de Belfort Montbéliard Université de Franche Comté Description générale Définit un standard pour accéder aux documents structurés

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework L'objectif de ce document est de poser des bases de réflexion sur la modélisation d'un projet réalisé

Plus en détail

PDO : PHP Data Object 1/13

PDO : PHP Data Object 1/13 PDO : PHP Data Object 1/13 Tous ne sont que des extensions... Les fonstions mysql_* : API mysql Les fonctions mysqli_* aussi Il en est de même pour PDO PDO (avec le pilote PDO MySQL Driver et Extension

Plus en détail

WEB page builder and server for SCADA applications usable from a WEB navigator

WEB page builder and server for SCADA applications usable from a WEB navigator Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces Micro-ordinateurs, informations, idées, trucs et astuces Utiliser une WebCam Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser une WebCam.doc Préambule Voici quelques informations utiles

Plus en détail

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv> Langage HTML (2 partie) «Je n'ai fait que prendre le principe d - hypertexte et le relier au principe du TCP et du DNS et alors boum! ce fut le World Wide Web!» Tim Berners-Lee

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

Design et implémentation d un logiciel de validation et de génération de configurations réseaux

Design et implémentation d un logiciel de validation et de génération de configurations réseaux Département d Ingénierie Informatique Design et implémentation d un logiciel de validation et de génération de configurations réseaux Laurent Vanbever Grégory Pardoen Mémoire présenté sous la direction

Plus en détail

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Paris Airports - Web API Airports Path finding

Paris Airports - Web API Airports Path finding Paris Airports - Web API Airports Path finding Hackathon A660 Version Version Date writer Comment 1.0 19/05/2015 Olivier MONGIN Document creation Rédacteur : Olivier.MONGIN@adp.fr Date : 19/05/2015 Approbateur

Plus en détail

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions Module Magento SOON Soon_AdvancedCache Rédacteur Hervé G. Lead développeur Magento herve@agence-soon.fr AGENCE SOON 81 avenue du Bac 94210 LA VARENNE ST HILAIRE Tel : +33 (0)1 48 83 95 96 Fax : +33 (0)1

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

Installation de VirtualPOPC-1 sur Ubuntu Server 10.04 LTS 64bits

Installation de VirtualPOPC-1 sur Ubuntu Server 10.04 LTS 64bits Titre Propriétaire Classification Date dernière modification Chemin et NomFichier Installation de VirtualPOPC-1 sur Ubuntu Server 10.04 LTS 64bits Penas Cédric Privé 19.09.10 \\10.1.1.1\FilesTD\Group4\Personnel\Penas\ViSaG\Installation_VirtualP

Plus en détail

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes): Master Chimie Fondamentale et Appliquée : spécialité «Ingénierie Chimique» Examen «Programmation, Simulation des procédés» avril 2008a Nom : Prénom : groupe TD : I. Programmation I. 1 Ecrire un programme

Plus en détail

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2 Débuter avec EXPRESS Alain Plantec Table des matières 1 Schema 2 2 Entité 2 2.1 Attributs simples................................................ 2 2.2 Attributs collection...............................................

Plus en détail

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 HFFv2 1. OBJET L accroissement de la taille de code sur la version 2.0.00 a nécessité une évolution du mapping de la flash. La conséquence de ce

Plus en détail

Mysql avec EasyPhp. 1 er mars 2006

Mysql avec EasyPhp. 1 er mars 2006 Mysql avec EasyPhp 1 er mars 2006 Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requètes vers les bases de données relationnelles. Il en reprend la syntaxe

Plus en détail

La base de données XML exist. A. Belaïd

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

Plus en détail

Processus 2D-Doc. Version : 1.1 Date : 16/11/2012 Pôle Convergence AGENCE NATIONALE DES TITRES SECURISÉS. Processus 2D-Doc.

Processus 2D-Doc. Version : 1.1 Date : 16/11/2012 Pôle Convergence AGENCE NATIONALE DES TITRES SECURISÉS. Processus 2D-Doc. Page 1 sur 16 PROCESSUS 2D-DOC...1 1. ARCHITECTURE GLOBALE...4 1.1. 1.2. Les rôles... 4 Les étapes fonctionnelles... 5 1.2.1. Etape 1 : la création du code à barres... 5 1.2.2. Etape 2 : l envoi du document...

Plus en détail

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

Plus en détail

BIRT (Business Intelligence and Reporting Tools)

BIRT (Business Intelligence and Reporting Tools) BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

Plus en détail

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML XML : Extensible Markup Language SGML Une introduction (1) http://kiwi.emse.fr/3a/dn.html Ph. Jaillon / J.J. Girardot J.J. GIRARDOT - EMSE 10/2004 1 Standard Generalized Markup Language Norme ISO-8879

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Serveur d'archivage 2007 Installation et utilisation de la BD exist Type du document Procédure d'installation Auteur(s) Eric Bouladier Date de création 26/02/20007 Domaine de diffusion tous Validé par Equipe Versions Date Auteur(s) Modifications V1.00 26/02/2007 Eric Bouladier

Plus en détail

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper

Plus en détail

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

Accès à l'information XML par des requêtes XQuery au travers de son XSchema Rapport projet de fin d étude ASR Accès à l'information XML par des requêtes XQuery au travers de son XSchema Réalisé par : DAB Marwa MGARRECH Oussama Encadré par : Mme LOPES GANCARSKI Alda 2011/2012 Remerciements

Plus en détail

Optimiser les performances du mouvement de monte de l Axe Z.

Optimiser les performances du mouvement de monte de l Axe Z. Page/0 - BUT DE LA MANIPULATION : Optimiser les performances du mouvement de monte de l Axe Z. - LES PLANS D EXPERIENCE -LA METHODE DU DOCTEUR TAGUCHI. La mthodologie Taguchi de mise en oeuvre des plans

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau labsticc.univ-brest.fr/pages_perso/babau/ Ingénierie Dirigée par les Modèles Editeurs de modèles (Eclipse Modeling Tools) Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC

Plus en détail

SQL Parser XML Xquery : Approche de détection des injections SQL

SQL Parser XML Xquery : Approche de détection des injections SQL SQL Parser XML Xquery : Approche de détection des injections SQL Ramahefy T.R. 1, Rakotomiraho S. 2, Rabeherimanana L. 3 Laboratoire de Recherche Systèmes Embarqués, Instrumentation et Modélisation des

Plus en détail

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème Chapitre IX L intégration de données Le problème De façon très générale, le problème de l intégration de données (data integration) est de permettre un accès cohérent à des données d origine, de structuration

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Acronymes et abréviations. Acronymes / Abbréviations. Signification

Acronymes et abréviations. Acronymes / Abbréviations. Signification Acronymes et abréviations Acronymes / Abbréviations Signification AD CS Active Directory Certificate Services CA Certification Authority CRL Certificate Revocation List CDP Certificate Distribution Points

Plus en détail

BASE DE DONNÉES XML NATIVE

BASE DE DONNÉES XML NATIVE BASE DE DONNÉES XML NATIVE NXDB - exist - XQuery IvMad, 2011-2012 2 1. exist exist-db Open Source Native XML Database Ce cours s inspire, reprend, modifie et enrichi des supports disponibles sur Internet

Plus en détail

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition Surveillance de Scripts LUA et de réception d EVENT avec LoriotPro Extended & Broadcast Edition L objectif de ce document est de présenter une solution de surveillance de processus LUA au sein de la solution

Plus en détail

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)

Plus en détail

Open Source Job Scheduler

Open Source Job Scheduler Open Source Job Scheduler Interface web Pré-requis : o Installation Interface Web Configuration Utilisation Administration SOS-Paris 2 Rôle o Interface de publication o Gestion de la base de données o

Plus en détail

Module http MMS AllMySMS.com Manuel d intégration

Module http MMS AllMySMS.com Manuel d intégration Module http MMS AllMySMS.com Manuel d intégration Objectif du document... 3 1 Envoi de MMS par requête http... 4 1.1 Format de la requête utilisée... 4 1.2 Arborescence et explication des balises du flux

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

PHP 5. La base de données MySql. A. Belaïd 1

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14 Document FAQ Supervision et infrastructure - Accès aux EXP Page: 1 / 9 Table des matières Introduction... 3 Démarrage de la console JMX...4 I.Généralités... 4 II.WebLogic... 5 III.WebSphere... 6 IV.JBoss...

Plus en détail

Guide d'installation rapide TFM-560X YO.13

Guide d'installation rapide TFM-560X YO.13 Guide d'installation rapide TFM-560X YO.13 Table of Contents Français 1 1. Avant de commencer 1 2. Procéder à l'installation 2 Troubleshooting 6 Version 06.08.2011 16. Select Install the software automatically

Plus en détail

Créer une base de données vidéo sans programmation (avec Drupal)

Créer une base de données vidéo sans programmation (avec Drupal) Créer une base de données vidéo sans programmation (avec Drupal) 10.10.2013 Nicolas Bugnon (nicolas.bugnon@alliancesud.ch) Centre de documentation Alliance Sud www.alliancesud.ch Résultat de l atelier

Plus en détail

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl 2007 16, 17 novembre, Lyon. Alexis Sukrieh <sukria@sukria.

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl 2007 16, 17 novembre, Lyon. Alexis Sukrieh <sukria@sukria. Perl Console Votre compagnon pour développer en Perl Les Journées du Perl 2007 16, 17 novembre, Lyon Alexis Sukrieh Plan Pourquoi une console? Le modèle «Read-Eval-Print-Loop» Dépendances

Plus en détail

Le prototype de la fonction main()

Le prototype de la fonction main() Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

PIVOT. Pivot/Querier Documentation technique XML/XSD/XSLT

PIVOT. Pivot/Querier Documentation technique XML/XSD/XSLT Réf. : Pivot/Querier Auteur : JM. DERUYTER Rév. : 1.3 Rév. Date : 05/05/15 Distribution : Normale * Restreinte 1. Confidentielle PIVOT Pivot/Querier Documentation technique XML/XSD/XSLT Table des matières

Plus en détail

Introduction aux concepts d ez Publish

Introduction aux concepts d ez Publish Introduction aux concepts d ez Publish Tutoriel rédigé par Bergfrid Skaara. Traduit de l Anglais par Benjamin Lemoine Mercredi 30 Janvier 2008 Sommaire Concepts d ez Publish... 3 Système de Gestion de

Plus en détail

Instructions Mozilla Thunderbird Page 1

Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et

Plus en détail

Résoudre les problèmes PHP, les meilleures (et les pires) techniques

Résoudre les problèmes PHP, les meilleures (et les pires) techniques Résoudre les problèmes PHP, les meilleures (et les pires) techniques Xavier Gorse Architecte - Expert PHP (ELAO) xavier.gorse@elao.com Un peu d ordre dans la maison! Toutes les lignes téléphoniques sont

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Gestion centralisée d un réseau de sites discrets. Nicolas JEAN - @salemioche

Gestion centralisée d un réseau de sites discrets. Nicolas JEAN - @salemioche Gestion centralisée d un réseau de sites discrets Nicolas JEAN - @salemioche SEO / Technique,utilisation SEO Technique / Utilisation Intérêt du réseau Centralisé Discrétion Simplicité d utilisation Caractéristique

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf INSTALLATION ET CONFIGURATION ZIMBRA SUR DEBIAN 4.0 ETCH Zimbra est une solution Open Source d e-mail et de partage de calendrier destinée aux entreprises, aux prestataires de service, aux institutions

Plus en détail

3615 SELFIE. http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION

3615 SELFIE. http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION 3615 SELFIE http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION Hardware : Minitel Computer DIN FM545 45 connector (http://www.gotronic.fr/art-fiche-din-fm545-4747.htm) Cable Arduino compatible

Plus en détail

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion Copyright 2009 Alt-N Technologies. 3 allée de la Crabette Sommaire Résumé... 3 MDaemon

Plus en détail

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML Faculté Polytechnique de Mons Johnny TSHEKE SHELE Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML Travail de fin d études présenté en vue de l obtention du grade

Plus en détail