Vous êtes sur la page 1sur 38

Programmation web Avancée

Par O. Boutkhoum

Faculté des Sciences – El Jadida SMI S6, 2022/2023


Programme
Partie I: XML

 Introduction et Concepts: de SGML à XML


 Structure d’un fichier XML
 DTD
 Schémas XML
 XPath
 XSLT
 RelaxNG
 Xquery

2
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Programme
Partie II: PHP

 Introduction à la programmation web en PHP


 Eléments du langage I: Les variables, Les types, Les constantes, …
 Eléments du langage II: Structures de contrôle & Fonctions
 Formulaire
 Fichiers
 Interfaçage de MySql via le langage PHP
 Sessions et Cookies
 Les Objets en PHP

3
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Démarche d’évaluation
 Evaluation:

 TPs + comptes rendu


30%
 Exposés

 Examen Final: 1ère session ~ 29/05/2023


~ 70%

4
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Partie I : XML

5
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts

 Origine de XML
◼ XML dérive d'un langage développé dans les années 80, le SGML (Standard Generalized
Markup Language).

Problème de complexité d’emploi (trop complexe techniquement)


(inadapté à l'écriture de documents pour Internet)

Développement du langage HTML : standard du développement web

Avec l’augmentation des besoins des développeurs + champ d'action limités

Création du langage XML


6
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts

 Origine de XML

Standard Generalized Markup Language (ISO 8879, 1986)


(Sépare les données, la structure des données et la
SGML mise en forme )

Hyper Text Markup Language


HTML (Mélange les données et la mise en forme )

XML eXtensible Markup Language


(Sépare les données, la structure des données et
la mise en forme )

7
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts
 La principale différence entre XML & HTML : XML a été conçu pour échanger des données

◼ XML ne remplace pas HTML

◼ XML et HTML ont des finalités différentes


 XML a été conçu pour décrire les données, et se focalise sur ce qu’est la donnée.
 HTML a été conçu pour présenter les données, et se focalise sur comment présenter la donnée
 HTML présente les données quand XML s’attache à les décrire.

 XML et HTML sont complémentaires

8
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts
 La principale différence entre XML & HTML :

Les tags utilisés en HTML sont Les tags utilisés ici


prédéfinis, on ne peut utiliser ont été « inventés »
que les tag définis par le par l’auteur du
standard HTML (comme document.
<p>,<h1>

9
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts
XML ?
 XML est un langage d’échange de données structurés entre applications.

 XML est Basé sur des tags (comme HTML) qui ne sont pas prédéfinis. Il faut définir ses propres <tags>
 Les données d’un fichier XML sont organisée d’une manière hiérarchique

 Les données d’un fichier XML peuvent provenir des bases de données relationnelles. (Documents XML
Dynamiques)

 Les fichiers XML sont également utilisés en tant que fichiers de configuration d’une application.
(Documents XML Statiques )

 Pour lire un fichier XML, une application doit utiliser un parseur XML.

 Un parseur XML est une API qui permet de parcourir un fichier XML et le manipuler.

10
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts
 Correspondance entre XML et Bases de données relationnelles:

BD Fichier XML
Relationnelles

SGBDR Parseur XML


SQL Xquery[Xpath]

Application Application

11
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts
XML?
 Le parseur XML permet de créer une structure hiérarchique contenant les
données contenues dans le document XML.

 Il existe deux types de parseurs XML:


◼ DOM (Document Object Model) : permet d’accéder et d’agir d’une manière directe sur le
contenu et la structure de l’arbre XML.

◼ SAX (Simple API for XML) : permet de réagir sur le contenu et la structure d’un document
XML pendant une lecture séquentielle.

12
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts
➢ Domaines d’application

XML est un sujet important car il couvre:

◼ le domaine du développement d’application Web, modèle désormais généralisé

◼ La structuration des systèmes d’information:


 Échange de données et interopérabilité

 Formalisme d’appel de procédure distante (Web services).

13
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts
➢ Exemple de document XML

biblio

livre livre livre

14
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts
➢ Exemple de document XML

Représentation graphique
de l’arbre XML

15
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts
Exemples de Structuration d'informations

 XML permet de structurer une information. Il est donc nécessaire, avant d'envisager
d'utiliser ce format, de se familiariser avec cette structuration:

16
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts
Exemple 1. Structuration d'informations
 Le paragraphe suivant contient de l'information "en vrac". Réorganisez-la de manière à mettre en évidence sa structure
logique, sans forcément passer par une mise en forme XML.
Une bouteille d'eau Cristaline de 150 cl contient par litre 71 mg d'ions positifs calcium, et 5,5 mg
d'ions positifs magnésium. On y trouve également des ions négatifs comme des chlorures à 20 mg
par litre et des nitrates avec 1 mg par litre. Elle est recueillie à St-Cyr la Source, dans le
département du Loiret. Son code barre est 3274080005003 et son pH est de 7,45. Comme la
bouteille est sale, quelques autres matériaux comme du fer s'y trouvent en suspension.
Une seconde bouteille d'eau Cristaline a été, elle, recueillie à la source d'Aurèle dans les Alpes
Maritimes. La concentration en ions calcium est de 98 mg/l, et en ions magnésium de 4 mg/l. Il y
a 3,6 mg/l d'ions chlorure et 2 mg/l de nitrates, pour un pH de 7,4. Le code barre de cette
bouteille de 50 cl est 3268840001008.
Une bouteille de même contenance est de marque Volvic, et a été puisée à... Volvic, bien connu
pour ses sources donnant un pH neutre de 7. Elle comprend 11,5 mg/l d'ions calcium, 8,0 mg/l
d'ions magnésium, 13,5 mg/l d'ions chlorures et 6,3 mg/l d'ions nitrates. Elle contient également
des particules de silice. Son code barre est 3057640117008. 17
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts
Exemple 1. Correction

Une bouteille d'eau Cristaline de 150 cl


contient par litre 71 mg d'ions positifs
calcium, et 5,5 mg d'ions positifs
magnésium. On y trouve également des
ions négatifs comme des chlorures à
20 mg par litre et des nitrates avec 1 mg
par litre. Elle est recueillie à St-Cyr la
Source, dans le département du Loiret.
Son code barre est 3274080005003 et son
pH est de 7,45. Comme la bouteille est
sale, quelques autres matériaux comme
du fer s'y trouvent en suspension.

18
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Introduction et Concepts
Exemple 2. Structuration d'informations

 Exemple de structuration : Université Chouaib Doukkali et ses établissements?

19
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
➢ Un document XML se compose de 3 fichiers :

◼ Le fichier XML stocke les données du document sous forme d’un arbre

◼ DTD ( Document Type Definition ) ou Schémas XML définit la structure du fichier XML

◼ La feuille de style définit la mise en forme des données de la feuille xml

20
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
Un document XML est composé de deux parties :
 1- Prologue ▪ 2- Arbre des éléments
◼ Déclaration XML ▪ Éléments (balises)
◼ Déclaration de type ▪ Attributs
◼ Instructions de traitement ▪ Entités
▪ ...

21
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
 Prologue
◼ Déclaration XML

 La déclaration XML indique :


◼ la conformité du document à une version de la norme XML,
◼ le jeu de caractères utilisé dans le document,
◼ la présence ou non de références externes.

 Cette déclaration est facultative mais fortement conseillée notamment pour le problème
d’encodage des caractères

22
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
 Prologue
◼ Déclaration de type
<!DOCTYPE root-element [element-declarations]> <!DOCTYPE root-element SYSTEM "produit.dtd">

<!DOCTYPE root-element SYSTEM "produit.dtd" [element-declarations]>

 La DTD (Document Type Definition) d’un document XML définit la grammaire d’un document XML :
◼ Permet de définir la structure logique du document et sa validité

 Elle peut être :


◼ Interne/externe/mixte : un document ou plusieurs documents
◼ System/public : stockée localement ou publiée sur internet

Accès pour un ou plusieurs destiné à une large utilisation:


utilisateurs: URL relative ou absolue
URL relative ou absolue

23
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
 Prologue
◼ Instructions de traitement

 Instructions “facultatives” : Leur contenu est transmis à une application pour traitement:
◼ <? cible nom d’une application (XML est un mot réservé)
◼ arg1, arg2, arguments passés à l’application cible
 Cette instruction est une transformation définie par une feuille de style (CSS ou XSL) qui permet
de définir la présentation

 Exemple:

24
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
 Un document possède une racine et une seule.
 Les éléments :
◼ doivent avoir une balise ouvrante et une balise fermante,
◼ peuvent être vides (éléments auto-fermants),
◼ doivent être imbriquées,
◼ peuvent avoir 0,1 ou plusieurs attributs.
 Un nom d’élément :
▪ peut contenir des lettres, des chiffres ou d'autres caractères.
▪ ne peut débuter par un nombre ou un signe de ponctuation.
▪ ne peut commencer par les lettres xml (ou XML ou Xml...).
▪ ne peut contenir des espaces.
▪ Sa longueur est libre mais on conseille de rester raisonnable.
▪ Certains signes pourraient selon les logiciels, prêter à confusion comme "-", ";", ".", etc.
▪ Les caractères spéciaux comme é, à, ê, ï, ù sont à priori permis mais pourraient être mal interprétés par certains
programmes.
◼ peut posséder un nom de domaine : "domaineDeNoms:nomElement",
◼ est sensible à la casse.
25
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
 Un document possède une racine et une seule.
 Les attributs d’un élément :
◼ donnent des précisions sur les éléments et sur leur contenu,
◼ doivent avoir un nom et une valeur,
◼ ne sont pas sensibles à l’ordre.

26
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
 Exemples explicatifs:

◼ Contrairement au HTML, les tags XML sont sensibles à la casse.


<Lettre> est différent de <lettre>
◼ Les tags ouvrant et fermant doivent respecter la casse

<Message> n’est pas correct </message>

<message> est correct </message>

27
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
 Exemples explicatifs:

◼ Les éléments non imbriqués n’ont pas de sens en XML.


 En HTML certains éléments peuvent ne pas être imbriqués correctement.

<b><i>Ce texte est gras et italique</b></i>

 Les éléments XML doivent être impérativement imbriqués

<b><i>Ce texte est gras et italique</i>/b>

28
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
 Exemples explicatifs:

◼ En XML il est obligatoire de mettre les guillemets autour des valeurs d’attributs.
 Les éléments XML peuvent avoir des attributs (paire variable/valeur) comme en HTML.

Erreur Correct
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<note date=12/11/2002> <note date="12/11/2002">
<to>Tove</to> <to>Tove</to>
<from>Jani</from> <from>Jani</from>
</note> </note>

29
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
 Exemples explicatifs:

◼ Les documents XML peuvent être étendus pour contenir davantage d’informations.

L’application
<note> doit fonctionner
<to>Tove</to> même si le
<from>Jani</from> document est
<body>N’oublie pas le rendez-vous du week end </body> enrichi
</note>
MESSAGE POUR : Tove
DE LA PART DE : Jani
<note>
<date>2002-08-01</date>
<to>Tove</to>
<from>Jani</from> <heading>Rappel</heading>
<body N’oublie pas le rendez-vous du week end </body>
</note>

30
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
 Exemples explicatifs:
 Les attributs fournissent des informations complémentaires sur un élément.
<file type="gif">computer.gif</file>
 Les données peuvent être exprimées dans un attribut ou dans un élément fils (« child element »).

<person>
<person gender="femme">
<gender>femme</gender>
<firstname>Anna</firstname>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
<lastname>Smith</lastname>
</person>
</person>

 Le choix dépend essentiellement des traitements les plus courants à appliquer à la structure de
données.
31
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
Commentaires, CDATA et Entités prédéfinies
 Entités prédéfinies pour les Caractères spéciaux
Pour le contenu de tags et les attributs, XML prédéfinit les 5 entités suivantes :
& → &amp; ’ → &apos; > → &gt; < → &lt; " → &quot;
 Commentaires
<!-- ceci est un commentaire -->

 Tout le contenu sera ignoré par l’analyseur XML

 CDATA
Indique à l’analyseur de ne pas tenir compte du balisage (signifie données textuelles ):

<![CDATA[=>a ne pas interpreter par l’analyseur]]>

NB: CDATA fait toujours partie du document, alors qu'un commentaire n'en fait pas partie.

32
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
Document XML bien formé : Récapitulatif

 Pour qu'un document soit bien formé, il doit obéir à 4 règles :


1) Un document XML ne doit posséder qu'une seule racine

2) Tous les éléments doivent être fermés

3) Les éléments contenus et contenant doivent être imbriqués.

4) La valeurs des attributs s'écrit entre guillemets (ou entre cotes)

33
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
Document XML bien formé : Récapitulatif
 Un document XML ne doit posséder qu'un seul élément racine qui contient tous les autres.
◼ Un document XML est un arbre.

34
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
Document XML bien formé: Récapitulatif
 Tous les éléments doivent être fermés
◼ A chaque balise ouvrant doit correspondre une balise fermante.
◼ A défaut, si un élément n'a pas de contenu, il est possible d'agréger la balise fermante à
la balise ouvrant en terminant celle-ci par un "slash« : <……../>

35
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
Document XML bien formé: Récapitulatif
 Les éléments contenus et contenant doivent être imbriqués.
◼ Tous les éléments fils doivent être contenus dans leur père.

◼ Si un document XML est un arbre, un élément est une branche.

36
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML
Document XML bien formé: Récapitulatif
 La valeurs des attributs s'écrit entre guillemets..

37
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida
Structure d’un fichier XML

 Exemples de logiciels XML open source:

 Oxygen XML Editor 20.1

 EditiX XML Editor

 XML Cooktop
38
Omar Boutkhoum – boutkhoum.o@ucd.ac.ma Prog. web Avancée – SMI S6 / F.S El Jadida

Vous aimerez peut-être aussi