X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=xpi%2Fxpi_01.xhtml;fp=xpi%2Fxpi_01.xhtml;h=0000000000000000000000000000000000000000;hb=564cbcc2c27a723d2bdf12cf690a66eb7f36b813;hp=0ca0c8a7fbd29f24fa922dda7e1b5fab74c20845;hpb=1f1881ec66dcaac7b574a13eb78f61249b4f6308;p=hacks%2FsimpleWebSlides.git
diff --git a/xpi/xpi_01.xhtml b/xpi/xpi_01.xhtml
deleted file mode 100644
index 0ca0c8a..0000000
--- a/xpi/xpi_01.xhtml
+++ /dev/null
@@ -1,506 +0,0 @@
-
-
-
-
- Introduction, UTF-8 et XML
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Contenu du cours
-
- XML pour la représentation des données
-
- Motivation, présentation d'XML sérialisé (cours 1)
- Notions de schémas et de validation (cours 1)
-
-
- Interroger des
- documents XML
-
- XPath (cours 2-3)
- XSLT (cours 3-4)
-
-
- Programmer
- avec XML
-
- Les modèles DOM et SAX (cours 5)
- XML Avancé: encodage relationnel (cours 6)
-
-
-
-
-
-
-
-
Modalités de Contrôle des Connaissances (MCC)
-
2 sessions:
-
- 1ère session
-
- Contrôle continu (33%): Projet (soutenances fin janvier)
-
- Examen écrit (67%)
-
-
-
- 2ème session (examen 100%)
-
-
Organisation:
-
- 8 séances de cours
- 8 séances de TD (sur machine)
-
-
- Introduction
-
-
Qu'est-ce qu'XML ?
-
XML (eXtensible Markup Language) est un standard de
- représentation de données
-
- Conçu pour être lisible par un humain, mais traîtable
- simplement par les machines
- Permet la représentation de données structurées
- Est normalisé (par le W3C)
- Typé (notion de schéma très fine)
-
-
-
-
En a-t-on besoin ?
-
Quels sont les autres moyen de représenter les données ?
-
- Table relationnelle
- Fichiers textes non structurés
- Format binaires ad-hoc
-
-
Quels sont les désavantages des
- représentations ci-dessus ?
-
- Non échangeable (il faut faire
- un dump de la base), contraintes simples
- Lisible, mais sans structure donc
- difficilement utilisable par un programme, pas de schéma
- Lié à une utilisation particulière
-
-
-
-
-
-
-
Historique
-
- Fin des années 1980: SGML adopté pour la publication de
- média
- Milieu des années 1990: un groupe de travail commence Ã
- étudier l'utilisation de SGML pour le Web (qui débutait)
-
- 1998 : XML 1.0 devient une recommandation du W3C
-
-
-
-
Exemples d'utilisation
-
- Page Web (XHTML)
- Flux RSS (atom)
- Voix sur IP/Messagerie instantanée (SMIL/Jabber)
- Images vectorielles (SVG)
- Données biologiques (séquençages)
- Données financières et bancaires (XBRL)
- Document bureautiques (OpenDocument Format, Office
- 2010)
- Données linguistiques (TreeBank)
-
-
-
- Le standard UTF-8
-
-
Représentation des textes
-
Avant de représenter des documents complexes, on s'intéresse
- aux textes (sans structure particulière)
-
Problématique: comment représenter du texte
- réaliste ?
-
Exemple de texte réaliste:
- " ٠عÙÙÙÙ
اÙسÙاÙ
,ÐдÑавей,¡Hola!, ä½ å¥½,Góðan daginn,â¦
- "
-
-
-
-
Historiquementâ¦
-
Encodage 1 caractère = 1 octet (8 bits) :
-
Encodage ASCII sur 7 bits (128 caractères)
- ASCII étendu 8 bits (256 caractères, dont 128 de «
- symboles »
- Latin 1 : ASCII 7 bits + 128 caractères « ouest-européens »
- (lettres accentuées française, italienne, â¦)
- Latin 2 : ASCII 7 bits + 128 caractères « est-européens »
- (Serbe, Hongrois, Croate, Tchèque, â¦)
- Latin 3 : ASCII 7 bits + 128 caractères turques, maltais,
- esperanto,
- Latin 4 : ASCII 7 bits + 128 caractères islandais,
- lituanien, â¦
- â¦
- Latin 15 : Latin 1 avec 4 caractères « inutiles »
- remplacés (par exemple pour « ⬠» à la place de « ¤ »)
-
-
-
-
⦠et pendant ce temps là , ailleur dans le monde
-
Encodage multi-octets:
-
- Encodages spécifiques pour le Chinois (Big5, GB, â¦)
- Encodages spécifiques pour le Japonais (Shift-JIS, EUC, â¦)
-
-
Impossibilité de mettre plusieurs « alphabets » dans un même
- texte
-
Chaque logiciel « interprétait » les séquences d'octet de
- manière prédéfinie
-
-
-
UTF-8
-
Universal (Character Set) Transformation Format 8 bit
-
Encodage à taille variable « universel » (contient tous
- les alphabets connus)
- Un organisme (ISO) donne un code à chaque symbole
- Compatible avec ASCII 7 bits
-
-
Encodage
-
- Nombre d'octets Octet 1 Octet
- 2 Octet 3 Octet 4 Octet 5 Octet 6
- 1 0xxxxxxx
-
- 2 110xxxxxx 10xxxxxx
- 3 1110xxxxx 10xxxxxx 10xxxxxx
- 4 11110xxxx 10xxxxxx 10xxxxxx 10xxxxxx
-
- 5 111110xxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
- 6 1111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
-
-
-
-
-
Exemples
-
A ⟶ 6510
- ⟶ 0100 10102 (représenté sur un
- seul octet)
-
-
á»
⟶ 787710
- ⟶ 0001 1110 1100 01012 (représenté
- 3 octets) :
- 1110 0001 10 11 10
- 11 10 00 0101 â¡ 225 187 133
-
-
🐵
- ⟶ 12805310 ⟶ â¦
- â¡ 240 237 220 181
-
Avantages
-
compatible ASCII 7 bits (d'anciens documents texte en
- anglais sont toujours lisibles)
- pas d'espace gaspillé (à l'inverse d'UTF-32 ou tous les
- caractères font 32 bits)
-
-
Inconvénients
-
- Caractères à taille variable: il faut parcourir le texte
- pour trouver le nème caractère
- Les vieux logiciels doivent être adaptés
-
-
- XML
-
-
Qu'est-ce qu'un document XML ? (1)
-
- C'est un fichier texte, encodé par défaut en UTF-8
- Le texte peut être structuré au moyen
- de balises
- Une balise est de la forme <foo> (ouvrante)
- ou </foo> (fermante)
- Les balises doivent être bien parenthésées
- Il doit y avoir une racine « englobant » tout le contenu du
- document (texte et autres balises). On appelle cette balise la
- racine
- Les balises sont sensibles à la casse
- <foo/> est un raccourcis pour <foo> </foo>
-
-
Exemple
-
- ceci est la racine on peut y mettre des
- balises imbriquées comme
- on veut si
- elles sont bien parenthésées
-]]>
-
-
-
-
Qu'est-ce qu'un document XML ? (2)
-
- On peut mettre des espaces et des commentaires en dehors de
- la racine
- Les commentaires sont délimités par <!-- et -->
- On peut annoter les balises ouvrantes avec
- des attributs de la forme att ="v" (on
- peut aussi utiliser « ' » pour délimiter les chaînes)
- Au sein d'un même élément (ou balise) on ne peut pas avoir
- deux fois un attribut avec le même nom
- On dispose de séquences d'échappement : < pour <,
- > pour >, ' pour ', " pour
- ", & pour & et &nnnn ; pour un caractère
- UTF-8 dont le code décimal est nnnn .
-
-
Exemple
-
<
-
- Un autre exemple
- ]]>
-
-
-
-
-
Exemple complet (trouver toutes les erreurs)
-
-
- On se donne cette fois un exemple complet, mais
-
- incorrect. En effet, il y a
-
- plusieurs erreurs dans
-
- dans ce document .
-
- Il n'est pas simple de toutes les trouver
-
-
-En plus cet exemple est en deux parties
-]]>
-
-
-
Utilisations d'XML (1)
-
- Les noms de balise sont libres . La personne qui
- conçoit le document choisit les balises
- Un document XML est une manière de représenter
- un arbre (l'élement racine est la racine de
- l'arbre)
-
-
Un bon exemple est XHTML (XML pour les pages Web)
-
- La structure des documents (titres, sections, paragraphes,
- tableaux) est donnée par les balises
-
- Le rendu graphique ne fait pas partie de la structure du
- document et est donné par un moyen annexe (feuille de style
- CSS par exemple)
-
-
Autre exemple: les flux RSS de mises à jour d'un blog
-
-
-
-
Utilisation d'XML (2)
-
- Le format texte est un mauvais format pour
- l'interrogation
- Il encode un arbre mais ne permet pas de le manipuler
- directement
-
-
En réalité, on ne manipule pratiquement jamais de XML tel que stocké
- sur le disque
-
- On peut charger un document XML sous la forme d'un arbre
- (Objet Java par exemple) dans lequel on peut naviguer
- Certaines bases de données permettent de stocker des
- fichiers XML dans des colones (comme un VARCHAR)
-
-
Une application moderne mélange BD relationnelle et XML (et
- aussi d'autres choses si besoin: JSON, YAML, â¦)
-
-
-
Ãtude de cas: journal en ligne
-
On se pose dans le cas du site internet d'un journal en
- ligne
-
- Le site a des utilisateurs enregistrés (ainsi qu'un accès
- invité)
- Le site propose des articles en lecture sur le site
- Le site permet d'exporter des articles en PDF pour
- impression
- Le site permet la lecture sur smartphone/tablette
-
-
-
-
Une solution possible
-
On stocke les articles comme des fichiers XML avec une
- syntaxe particulière:
-
- Science
- A new planet discovered
- 2014/09/09
-
- Jonh Doe
- Someone Else
-
-
- A new plange has been discovered â¦
-
-]]>
-
-
-Une BD relationelle stocke les données dynamiques (utilisateurs, â¦)
-Un programme (Java ou PHP) applique une transformation (XSLT) pour
- transformer les articles XML en pages XHTML
-Le programme utilise la BD pour personaliser l'affichage
-Le programme applique une autre transformation pour transformer
- les articles en PDF plutot que XHTML
-Le programme transforme l'article en un
- XML RSS pour affichage dans un lecteur de blog
-
-
- Validation de documents
-
-
Schéma d'un document
-
Comme tout le monde peut définir son propre format XML, on
- veut pouvoir être sûr que des données en entrées d'un
- programme ont un certain
- format (par exemple, c'est du XHTML valide, sans balise inconnue
- des navigateurs)
-
-
Il existe plusieurs manières de contraindre les balises d'un
- document XML. On s'intéresse dans le cours à la plus simple.
-
-
-
-
DTD
-
Document Type Definitions. Permet de définir le contenu d'un
- document par des expressions régulières
-
Syntaxe particulière qui n'est pas du XML
-
Permet de définir:
-
les balises autorisées dans un document
- le contenu des balises au moyen d'expressions
- régulières
- les attributs d'un élément
- le type des valeurs que peut prendre un
- attribut
-
-
-
-
Syntaxe des DTD
-
Un fichier contenant une suite de directives de la forme suivantes:
-
<!ELEMENT nom_elem regexp_elem >
- dit qu'un élement de nom nom_elem contient
- des éléments décrits par l'expression
- régulière regexp_elem
- <!ATTLIST nom_elem nom_att type_att val_att >
-signifie que l'élément (balise) nom_elem
- a un attribut nom_att , dont le type
- est type_att et la valeur
- est val_att
- Les expressions régulières sont formées
- de * , + ,? , mise en séquence
- (, ), EMPTY (contenu vide), ANY
- (n'importe quel contenu), #PCDATA (du texte)
- Les types d'attributs sont ID (attribut unique
- dans tous le document ⡠clé primaire), IDREF (fait
- référence à un ID unique ⡠clé étrangère), CDATA (du
- texte simple), v1|v2|â¦|vn (une liste de valeurs fixées)
-
- Les valeurs d'attributs sont: v (une valeur par
- défaut si l'attribut est absent), #REQUIRED
- (l'attribut est obligatoire), #IMPLIED (l'attribut
- est optionnel), #FIXED v (valeur constante v)
-
-
-
-
-
Exemple de DTD
-
-
-
-
-
-
-
-
-
-]]>
-
Question: quel est la taille minimale d'un document valide ?
-
-
-
Utilisation d'une DTD (1)
-
Il suffit de référencer la DTD dans un élément
- spécial <!DOCTYPE racine SYSTEM "fichier.dtd" > avant la racine du
- document
-
-
-Tiramisú
-
- mascarpone
- oeufs
- â¦
-
-2h
-
- Séparer les blancs des jaunes
- â¦
- â¦
-
-
-]]>
-
-
-
Utilisation d'une DTD (2)
-
- Les bibliothèques permettant de charger des fichiers XML
- vérifient qu'il est bien formé (parenthésages, attributs, â¦)
-
- Elles peuvent aussi valider le document par
- rapport à une DTD
- Si le fichier est invalide, elles lèvent une erreur
- C'est une forme de vérification de contraintes
- d'intégrité
-
-
-
-