Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux...
Transcript of Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux...
![Page 1: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/1.jpg)
IntroductionXML
DescriptionTraitements
Le langage de documents XML
Anne-Laure Ligozat
ENSIIE
derniere maj: mars 2017
1 / 102
![Page 2: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/2.jpg)
IntroductionXML
DescriptionTraitements
1 Introduction
2 Langage de description de donnees : XML
3 Description de documents
4 Traitement des documents
2 / 102
![Page 3: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/3.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
3 / 102
![Page 4: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/4.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
4 / 102
![Page 5: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/5.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
Programmation logicielle
= programmation
utilisationcompilation,modelisation...
+ donnees
stockage: bases de donneesstockage a long terme, echange: ?
Stockage/echange sur long terme
dans certains domaines (aeronautique par exemple), produits aveccycles de vie de plusieurs decennies
besoin d’une representation explicite (par ex stockage dans fichiers)
approche naive: definir un format (binaire ?) de representation et unparser
mais pose probleme lorsque plusieurs machines/entreprises doiventcommuniquer !
5 / 102
![Page 6: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/6.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
Motivation pour XML
un seul langage pour decrire et echanger des donnees
6 / 102
![Page 7: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/7.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
Pourquoi ce cours ?
Objectifs de XML
XML = eXtensible Markup Language
XML = meta-langage universel pour les donnees sur le Web, quipermet au developpeur de delivrer du contenu depuis les applicationsa d’autres applications ou aux navigateurs
Apports decisifs
extensibilite et structure
modularite et reutilisation de structures types
controle de validite
dissociation forme (presentation) et fond (donnees)
format d’echange general independant du materiel et logiciel (texte)
richesse des standards derives
7 / 102
![Page 8: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/8.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
8 / 102
![Page 9: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/9.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
Historique
Au debut etait SGML
1969 : C. Goldfarb, E. Mosher, R. Lorie inventent GML chez IBM
cree pour editer des documents, les mettre en page et les partager ausein de systemes de gestion editoriaux
1986 : devient une norme internationale Standard GeneralizedMarkup Language (ISO 8879)
prevu pour Gestion Electronique de Documents (GED) tres complexelisible par l’etre humain et traitable par une machinemetalangage de balisage de documents : permet de definir deslangages de balisage
9 / 102
![Page 10: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/10.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
Historique
∗
HTML
langage de description de pages web
instance de SGML, adapte a la presentation/ liens trop simples/ inadapte a l’echange entre programmes/ inadapte au traitement automatique du contenu des documents
∗1991 : premiere description, 1995 : HTML 2.0, 1997 : HTML 3.2 recommandation W3C
10 / 102
![Page 11: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/11.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
Historique
XML
nouveau langage d’echange de documents fonde sur le balisage
plus simple que SGMLpas limite ”presentation” comme HTML
developpe par le XML Working Group dirige par le W3C (depuis1996)
XML 1.0 = recommandation officielle du W3C depuis le 10 fevrier1998, 5e version en 2008
11 / 102
![Page 12: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/12.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
Applications
publication multisupports
echange de donnees (B2B, ETL, XML EDI...)
gestion de documents semi-structures
integration de donnees heterogenes
...
12 / 102
![Page 13: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/13.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
Avantages et inconvenients
/ tres verbeux ⇒ balisage repetitif, fichiers volumineux
, repond aux objectifs ambitieux de duree dans le temps, standardlargement partage
13 / 102
![Page 14: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/14.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
14 / 102
![Page 15: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/15.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
Galaxie des standards autour de XML
XSchema : schemas de documents
XSL, XSLT : presentations, transformations
SAX : API de programmation evenementielle
DOM : API de programmation objet
SOAP : protocole web services
RDF : description de graphes de documents
SMIL : presentations multimedia
SVG : langage de representation de dessinsvectoriels
Cml, MathML, ebXML... : standards parmetiers
...
15 / 102
![Page 16: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/16.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
Differents standards
16 / 102
![Page 17: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/17.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
XML vs JSON
JSON: JavaScript Object Notation
XML
<employees><employee>
<f i r s t N a m e>John</ f i r s t N a m e><lastName>Doe</ lastName>
</ employee><employee>
<f i r s t N a m e>Anna</ f i r s t N a m e><lastName>Smith</ lastName>
</ employee><employee>
<f i r s t N a m e>P e t e r</ f i r s t N a m e><lastName>Jones</ lastName>
</ employee></ employees>
JSON
{” employees ” : [{” f i r s t N a m e ” : ” John ” ,
” lastName ” : ”Doe”} ,{” f i r s t N a m e ” : ”Anna” ,
” lastName ” : ” Smith ”} ,{” f i r s t N a m e ” : ” P e t e r ” ,
” lastName ” : ” Jones ”}]}
17 / 102
![Page 18: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/18.jpg)
IntroductionXML
DescriptionTraitements
XML, pour quoi faire ?HistoriqueStandards
XML vs JSON
XML
+ lisibiliteannotationsvalidationtypageoutils/standards
- taille des donnees
JSON
+ lisibilitesyntaxe simplefacilite d’integration enprogrammation webvalidation (JSONschema)
- annotation
18 / 102
![Page 19: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/19.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
19 / 102
![Page 20: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/20.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
20 / 102
![Page 21: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/21.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Commencons par un exemple !
<?xml version=”1.0” encoding=”UTF-8”? ><!−− C a t a l o g u e d ’ une l i b r a i r i e −−>< l i b r a i r i e>
< l i v r e c a t e g o r i e=” e n f a n t s ”>< t i t r e l a n g u e=” en ”>
Harry P o t t e r</ t i t r e><a u t e u r>J K. Rowl ing</ a u t e u r><annee>2005</ annee><p r i x>29 ,99</ p r i x>
</ l i v r e>< l i v r e c a t e g o r i e=” programmation ”>
< t i t r e l a n g u e=” f r ”>A p p r e n t i s s a g e de l a programmation
avec Ocaml</ t i t r e><a u t e u r>C a t h e r i n e Dubois</ a u t e u r><annee>2004</ annee><p r i x>39 ,95</ p r i x>
</ l i v r e></ l i b r a i r i e>
Document XML compose de :
un prologue
des elements organiseshierarchiquement
dont un element racine
des commentaires
21 / 102
![Page 22: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/22.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Commencons par un exemple !
<?xml version=”1.0” encoding=”UTF-8”? ><!−− C a t a l o g u e d ’ une l i b r a i r i e −−>< l i b r a i r i e>
< l i v r e c a t e g o r i e=” e n f a n t s ”>< t i t r e l a n g u e=” en ”>
Harry P o t t e r</ t i t r e><a u t e u r>J K. Rowl ing</ a u t e u r><annee>2005</ annee><p r i x>29 ,99</ p r i x>
</ l i v r e>< l i v r e c a t e g o r i e=” programmation ”>
< t i t r e l a n g u e=” f r ”>A p p r e n t i s s a g e de l a programmation
avec Ocaml</ t i t r e><a u t e u r>C a t h e r i n e Dubois</ a u t e u r><annee>2004</ annee><p r i x>39 ,95</ p r i x>
</ l i v r e></ l i b r a i r i e>
Document XML compose de :
un prologue
des elements organiseshierarchiquement
dont un element racine
des commentaires
21 / 102
![Page 23: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/23.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Commencons par un exemple !
<?xml version=”1.0” encoding=”UTF-8”? ><!−− C a t a l o g u e d ’ une l i b r a i r i e −−>< l i b r a i r i e>
< l i v r e c a t e g o r i e=” e n f a n t s ”>< t i t r e l a n g u e=” en ”>
Harry P o t t e r</ t i t r e><a u t e u r>J K. Rowl ing</ a u t e u r><annee>2005</ annee><p r i x>29 ,99</ p r i x>
</ l i v r e>< l i v r e c a t e g o r i e=” programmation ”>
< t i t r e l a n g u e=” f r ”>A p p r e n t i s s a g e de l a programmation
avec Ocaml</ t i t r e><a u t e u r>C a t h e r i n e Dubois</ a u t e u r><annee>2004</ annee><p r i x>39 ,95</ p r i x>
</ l i v r e></ l i b r a i r i e>
Document XML compose de :
un prologue
des elements organiseshierarchiquement
dont un element racine
des commentaires
21 / 102
![Page 24: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/24.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Commencons par un exemple !
<?xml version=”1.0” encoding=”UTF-8”? ><!−− C a t a l o g u e d ’ une l i b r a i r i e −−>< l i b r a i r i e>
< l i v r e c a t e g o r i e=” e n f a n t s ”>< t i t r e l a n g u e=” en ”>
Harry P o t t e r</ t i t r e><a u t e u r>J K. Rowl ing</ a u t e u r><annee>2005</ annee><p r i x>29 ,99</ p r i x>
</ l i v r e>< l i v r e c a t e g o r i e=” programmation ”>
< t i t r e l a n g u e=” f r ”>A p p r e n t i s s a g e de l a programmation
avec Ocaml</ t i t r e><a u t e u r>C a t h e r i n e Dubois</ a u t e u r><annee>2004</ annee><p r i x>39 ,95</ p r i x>
</ l i v r e></ l i b r a i r i e>
Document XML compose de :
un prologue
des elements organiseshierarchiquement
dont un element racine
des commentaires
21 / 102
![Page 25: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/25.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Visualisation dans le navigateur firefox
22 / 102
![Page 26: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/26.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Visualisation (simplifiee) sous forme d’arbre
23 / 102
![Page 27: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/27.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Prologue
<?xml version=”1.0” encoding=”UTF-8”? >
facultatif
si existe, premiere ligne du document
precise l’encodage des caracteres (UTF-8 par defaut)
pour l’affichage par exemple des caracteres accentues: e, e, A...
24 / 102
![Page 28: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/28.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Elements
<?xml version=”1.0” encoding=”UTF-8”? ><!−− C a t a l o g u e d ’ une l i b r a i r i e −−>< l i b r a i r i e>
< l i v r e><c a t e g o r i e name=” e n f a n t s ”/>< t i t r e l a n g u e=” en ”>
Harry P o t t e r</ t i t r e><a u t e u r>J K. Rowl ing</ a u t e u r><annee>2005</ annee><p r i x u n i t=” e u r o ”>29 ,99</ p r i x>
</ l i v r e>< l i v r e>
<c a t e g o r i e name=” programmation ”/>< t i t r e l a n g u e=” f r ”>
A p p r e n t i s s a g e de l a programmationavec <motCle>Ocaml</ motCle>
</ t i t r e><a u t e u r>C a t h e r i n e Dubois</ a u t e u r><annee>2004</ annee><p r i x u n i t=” e u r o ”>39 ,95</ p r i x>
</ l i v r e></ l i b r a i r i e>
Composition d’un element
nom
attributs
contenu :
vide (categorie)forme d’elements (livre)forme de texte (auteur,annee, prix, motCle)forme d’un melanged’elements et de texte (titre)
25 / 102
![Page 29: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/29.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Elements de syntaxe XML
un texte est une chaıne de caracteres
si un texte contient des delimiteurs XML (<, >, &), l’inclure dansune section CDATA pour qu’il ne soit pas analyse :
une section CDATA commence par <![CDATA[ et finit par ]] >ex : <![CDATA[texte non analyse]] >
un attribut a un nom et une valeur qui est une chaıne de caracteres(heure=”18.00”)
chaque element est marque par une paire de balises ouvrante etfermante
26 / 102
![Page 30: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/30.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Espaces de nom
Motivation
Des elements peuvent avoir le meme nom mais correspondre a un contenuet un sens differents, par exemple venant de deux applications differentes
Document HTML
<t a b l e><t r>
<td>A pp l es</ td><td>Bananas</ td>
</ t r></ t a b l e>
Document concernant des meubles
<t a b l e><name>A f r i c a n C o f f e e Table</name><width>80</ width><l e n g t h>120</ l e n g t h>
</ t a b l e>
⇒ necessaire de gerer le conflit si documents integres
27 / 102
![Page 31: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/31.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Espaces de nom
prefixes devant le nom des elements
espaces de nom pour definir les prefixes de l’element et de ses fils
syntaxe: xmlns:prefix=”URI”l’URI ne sert qu’a donner un nom unique a l’espace de nom
Document XML
<r o o t><h: t a b l e>
<h: t r><h:td>A pp l es</h:td><h:td>Bananas</h:td>
</h: t r></h: t a b l e>
<f: t a b l e><f:name>A f r i c a n C o f f e e Table</f:name><f:w idth>80</f:w idth><f: l e n g t h>120</f: l e n g t h>
</f: t a b l e></ r o o t>
28 / 102
![Page 32: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/32.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Espaces de nom
prefixes devant le nom des elements
espaces de nom pour definir les prefixes de l’element et de ses fils
syntaxe: xmlns:prefix=”URI”l’URI ne sert qu’a donner un nom unique a l’espace de nom
Document XML
<r o o t><h: t a b l e xmlns:h=”http://www.w3.org/TR/html4/”>
<h: t r><h:td>A pp l es</h:td><h:td>Bananas</h:td>
</h: t r></h: t a b l e>
<f: t a b l e xmlns:f=”http://www.w3schools.com/furniture/”><f:name>A f r i c a n C o f f e e Table</f:name><f:w idth>80</f:w idth><f: l e n g t h>120</f: l e n g t h>
</f: t a b l e></ r o o t>
28 / 102
![Page 33: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/33.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Espaces de nom
prefixes devant le nom des elements
espaces de nom pour definir les prefixes de l’element et de ses fils
syntaxe: xmlns:prefix=”URI”l’URI ne sert qu’a donner un nom unique a l’espace de nom
Document XML
<r o o t xmlns:h=”http://www.w3.org/TR/html4/”xmlns:f=”http://www.w3schools.com/furniture/>
<h: t a b l e><h: t r>
<h:td>A pp l es</h:td><h:td>Bananas</h:td>
</h: t r></h: t a b l e>
<f: t a b l e><f:name>A f r i c a n C o f f e e Table</f:name><f:w idth>80</f:w idth><f: l e n g t h>120</f: l e n g t h>
</f: t a b l e></ r o o t>
28 / 102
![Page 34: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/34.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Deux niveaux de validation
1 document bien forme ?
le document correspond-il a une structure d’arbre ?
2 document valide ?
le document correspond-il a un dialecte XML specifique ?
29 / 102
![Page 35: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/35.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
30 / 102
![Page 36: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/36.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Documents XML bien formes
Un document XML bien forme respecte la syntaxe XML.
Document bien forme
une racine unique
au moins un element
presence de balise fermante
identite balise ouvrante et fermante, y compris la casse
imbrication ”correcte”
les valeurs des attributs doivent etre entre guillemets
Attention : avec XML, erreurs non permises (6= HTML)Verification : navigateur ou programme specifique
31 / 102
![Page 37: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/37.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Exemple de document mal forme
<p e r s o n n e><nom>C . Dubois</nom><bureau s i t e=” ENSIIE−Evry ”>
<n o p i e c e>110</ n o p i e c e><n o t e l>01 69 36 73 40</ n o t e l>
</ p e r s o n n e><p e r s o n n e>
<nom>B . Grau</Nom><bureau s i t e=” ENSIIE−Evry ”>
<n o p i e c e>104</ n o p i e c e><n o t e l>01 69 36 73 44</ n o t e l>
</ bureau></ p e r s o n n e>
(3 erreurs. tester avec xmllint annuaire ensiie.xml)
32 / 102
![Page 38: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/38.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
33 / 102
![Page 39: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/39.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Regles de “bonne conception” de documents XML
Marquage metatypographique
ex : <p>eviter d’imposer une methode particuliere pour la<em>mise en valeur</em> de texte</p>
<tableau><ligne><cel>2000</cel><cel>2001</cel><cel>2002</cel> </ligne><ligne><cel>67.8</cel><cel>89</cel><cel>91.4</cel></ligne></tableau>
34 / 102
![Page 40: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/40.jpg)
IntroductionXML
DescriptionTraitements
Definition d’un document XMLDocument bien formeRegles de bonne conception
Regles de “bonne conception” de documents XML
Marquage semantique
marquer toutes les unites qui ont une semantique definie dansl’univers du discours
Bonne utilisation des attributs
les valeurs des attributs sont plutot des parametres utilises par lesapplications qui traitent le contenu des elements
valeurs d’attributs non structurees
attributs non ordonnes
35 / 102
![Page 41: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/41.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
36 / 102
![Page 42: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/42.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Meta-description de documents
Definir des modeles, des classes de documents ou definir un documentvalide
DTD (Document Type Definition)
Herite de SGML, oriente description de la structure des documentsContraintes sur le type des informations tres pauvres
Schema (XSD pour XML Schema Definition)
Oriente echange de donneesSysteme tres evolue avec typage fortSyntaxe XML
37 / 102
![Page 43: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/43.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
38 / 102
![Page 44: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/44.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
DTD
Presentation
Document Type Definition
fait partie de la recommandation XML
decrit la structure du fichier XML
declaration des elementsliste des attributs
→ validation structurelle du document
39 / 102
![Page 45: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/45.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Exemple de document XML
<? xml v e r s i o n=” 1 . 0 ” e n c o d i n g=”UTF−8”?><g u i d e c i n e><!−− e x t r a i t d ’ un gu ide , par a r r o n d i s s e m e n t , des f i l m s a P a r i s −−>
<t i t r e>Guide c i n ema de P a r i s</ t i t r e><semaine>16 mars 2011 au 22 mars 2011</ semaine><a r r o n d i s s e m e n t>
<t i t r e a r r>5 eme a r r o n d i s s e m e n t</ t i t r e a r r><cinema>
<nom>Le Q u a r t i e r L a t i n</nom><a d r e s s e>
<r u e>9 , r u e Champo l l i on</ r u e><metro nom=” Cluny ”/>
</ a d r e s s e><s e a n c e h e u r e=” 1 8 . 0 0 ” r e f f i l m=” s l e e p y h o l l o w ”/><s e a n c e h e u r e=” 2 0 . 0 0 ” r e f f i l m=” e d w a r d s c i s s o r h a n d s ”/>
</ cinema><f i l m f i l m i d=” s l e e p y h o l l o w ”>
<t i t r e>S l e e p y Hol low</ t i t r e><r e a l i s a t e u r r e a l i d= ’ t i m b u r t o n ’>
<nom>Tim Burton</nom></ r e a l i s a t e u r><a c t e u r s>
<comedien>Johnny Depp</ comedien><comedienne>C r i s t i n a R i c c i</ comedienne>
</ a c t e u r s></ f i l m><f i l m f i l m i d=” e d w a r d s c i s s o r h a n d s ” r e f r e a l=” t i m b u r t o n ” >
<t i t r e>Edward S c i s s o r h a n d s</ t i t r e><a c t e u r s><comedien>Johnny Depp</ comedien></ a c t e u r s>
</ f i l m></ a r r o n d i s s e m e n t>
</ g u i d e c i n e>
40 / 102
![Page 46: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/46.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Exemple de DTD
Definitions pour le guide cinema<!−− d e f i n i t i o n des e l e ments , des a t t r i b u t s des documents de t y p e ‘ ‘
g u i d e c i n e ’ ’ −−><!ELEMENT g u i d e c i n e ( t i t r e , semaine , a r r o n d i s s e m e n t +)><!ELEMENT t i t r e (#PCDATA)><!ELEMENT semaine (#PCDATA)><!ELEMENT a r r o n d i s s e m e n t ( t i t r e a r r , ( c inema , f i l m ∗) ∗)><!ELEMENT t i t r e a r r (#PCDATA)><!ELEMENT cinema (nom , a d r e s s e , ( s e a n c e ) ∗)><!ELEMENT nom (#PCDATA)><!ELEMENT a d r e s s e ( rue , metro )><!ELEMENT r u e (#PCDATA)><!ELEMENT metro EMPTY><! ATTLIST metro nom ( S t M i c h e l | Cluny | J u s s i e u ) ” Inconnu ”><!ELEMENT s e a n c e EMPTY><! ATTLIST s e a n c e h e u r e NMTOKEN #REQUIRED
r e f f i l m IDREF #REQUIRED><!ELEMENT f i l m ( t i t r e , r e a l i s a t e u r ∗ , a c t e u r s )><! ATTLIST f i l m f i l m i d ID #REQUIRED
r e f r e a l IDREFS #IMPLIED><!ELEMENT a c t e u r s ( comedien | comedienne )∗><!ELEMENT comedien (#PCDATA)><!ELEMENT comedienne (#PCDATA)><!ELEMENT r e a l i s a t e u r (nom , ( f i l m ) ∗)><! ATTLIST r e a l i s a t e u r r e a l i d ID #REQUIRED>
41 / 102
![Page 47: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/47.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Composition d’un document XML
Dans une DTD, un document XML est vu comme un ensemble de:
elements
attributs
entites: reference
entites predefinies en XML
< <> >& &" ”' ’
PCDATA (parsed character data): chaıne de caracteres analysee parun outil
CDATA: chaıne de caracteres non analysee par un outil
42 / 102
![Page 48: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/48.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Definition des elementsDeclaration du type
Syntaxe : <!ELEMENT nom element modele de contenu>
nom element : unique dans une DTD
modele de contenu
EMPTY : element vide→ <!ELEMENT metro EMPTY>
<metro nom=”Cluny”/>#PCDATA : texte analysable
→ <!ELEMENT titre (#PCDATA) ><titre>Sleepy Hollow</titre>ANY : contenu libre, toute combinaison de tous les elements
→ <!ELEMENT section ANY ><section> Nouvelle section avec <chapitre/> </section>compose d’elements fils ou #PCDATA : grammaire definissant lastructure
→ <!ELEMENT adresse (rue, metro)><adresse><rue>9, rue Champollion</rue><metronom=”Cluny”/></adresse>
43 / 102
![Page 49: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/49.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Element compose d’elements fils
Expressions regulieres sur l’alphabet des noms d’elements
name ? : l’element peut apparaıtre 0 ou 1 fois
name * : l’element peut apparaıtre 0, 1 ou plusieurs fois
name + : l’element peut apparaıtre 1 ou plusieurs fois
name : l’element doit apparaıtre une fois
(name1, name2) : succession
(name1 | name2) : apparition dans un ordre quelconque
Exemples
<!ELEMENT f i l m ( t i t r e , r e a l i s a t e u r +, a c t e u r s )><!ELEMENT a c t e u r s ( come d i e n | come d i e n n e ) ∗>
44 / 102
![Page 50: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/50.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Modele mixte
Melange de texte et d’elements
<!ELEMENT p(#PCDATA | em | e x p o s a n t | i n d i c e | r e n v o i )∗><!ELEMENT em (#PCDATA | e x p o s a n t | i n d i c e )∗><!ELEMENT e x p o s a n t (#PCDATA)><!ELEMENT i n d i c e (#PCDATA)>
Exemple de document v a l i d e<p> On remarquera que <em> x=a <e x p o s a n t>( y+z ) </ e x p o s a n t> </em>e s t
t o u j o u r s p o s i t i f</p>
45 / 102
![Page 51: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/51.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Declaration des Attributs
ATTLIST
Syntaxe :<!ATTLIST nom element nom attribut type mode [defaut]>
nom element : element concerne
puis pour chaque attribut :
nom attribut : nom de l’attribut, unique dans le contexte del’elementtype : cf transparent suivantmode et defaut
#REQUIRED : la valeur est obligatoire#IMPLIED : la valeur est optionnelle#FIXED valeur: la valeur est fixee dans la DTD et non modifiablevaleur : si une autre valeur n’est pas definie
46 / 102
![Page 52: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/52.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Types des Attributs
Types possibles
CDATA : chaıne de caracteres
liste de valeurs alternatives (separees par |)<!ATTLIST metro nom (StMichel|Cluny|Jussieu) ”Inconnu”>
ID : identificateur d’element<!ATTLIST film film id ID #REQUIRED>
IDREF, IDREFS : reference de valeur d’identificateur d’element(eventuellement liste separee par espaces)<!ATTLIST seance ref film IDREF #REQUIRED><!ATTLIST film ref real IDREFS #IMPLIED>
entites externes (non analysees : fichiers, CGI, HTML, gif,...)<!ATTLIST Films intro ENTITY #REQUIRED><!ENTITY intro SYSTEM “http://www.films.com/INTRO.html”>
NMTOKEN, NMTOKENS : token XML, chaıne de caracteressans blancs
47 / 102
![Page 53: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/53.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
DTD : utilisation
Clause DOCTYPE ajoutee au debut du fichier XML
Definition locale
<? xml v e r s i o n=” 1 . 0 ” e n c o d i n g=”UTF−8”?><!DOCTYPE g u i d e c i n e [
<!ELEMENT g u i d e c i n e ( t i t r e , semaine , a r r o n d i s s e m e n t +)><!ELEMENT t i t r e (#PCDATA)> . . .
]><g u i d e c i n e>
< t i t r e>Guide c i n ema de P a r i s</ t i t r e> . . .
Definition externe
<? xml v e r s i o n=” 1 . 0 ” e n c o d i n g=”UTF−8”?><!DOCTYPE g u i d e c i n e SYSTEM ” g u i d e c i n e . dtd ”><g u i d e c i n e>
< t i t r e>Guide c i n ema de P a r i s</ t i t r e> . . .
et dans guide cine.dtd:
<!ELEMENT g u i d e c i n e ( t i t r e , semaine , a r r o n d i s s e m e n t +)><!ELEMENT t i t r e (#PCDATA)> . . .
→ a privilegier: extensibilite, reutilisation48 / 102
![Page 54: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/54.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Validite d’un document
Document XML valide
la DTD existe
le document XML respecte la DTD
grammaire, element racine, specification des elements et des attributs
integrite referentielle respectee
toutes les valeurs d’attribut ID sont distinctestoutes les references (valeurs des attributs IDREF) sont valides : onne peut pas referencer un element qui n’existe pas dans le document
49 / 102
![Page 55: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/55.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Exemple d’un document XML non valide mais bien forme
<g u i d e c i n e>Ce document c o n t i e n t des i n f o r m a t i o n s s u r l e s f i l m s<cinema>
<a d r e s s e>< v i l l e nom=” Toulouse ”/><r u e>9 , r u e Champo l l i on</ r u e>
</ a d r e s s e><nom>Le Q u a r t i e r L a t i n</nom><s e a n c e h e u r e = ” 1 8 . 0 0 ” r e f f i l m = ”batman”/><s e a n c e h e u r e = ” 2 0 . 0 0 ”/>
</ cinema><f i l m f i l m I D = ” s l e e p y h o l l o w ”>
< t i t r e>S l e e p y Hol low</ t i t r e>< t i t r e>Une h i s t o i r e f a n t a s t i q u e</ t i t r e>< r e a l i s a t e u r r e a l I D = ” t i m b u r t o n ”>
<nom>Tim Burton</nom></ r e a l i s a t e u r><a c t e u r s>
<comedienne>Miranda R i c h a r d s o n</ comedienne><comedien>Johnny Depp</ comedien><comedienne>C r i s t i n a R i c c i</ comedienne>
</ a c t e u r s></ f i l m>
</ g u i d e c i n e>
(6 erreurs. tester avec xmllint guide cine.xml –noout –dtdvalidguide cine non valide.dtd)
50 / 102
![Page 56: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/56.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
51 / 102
![Page 57: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/57.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Schema XML
Presentation
description de la structure et contraintes sur le contenu d’undocument XML
recommandation W3C depuis 2001, version 1.0 en 2004, version 1.1en cours (2009 phase finale)
W3.org/TR/xmlschema-0W3.org/TR/xmlschema-1W3.org/TR/xmlschema-2
Espace de noms associe a XML Schema :www.w3.org/2001/XMLSchema (prefixe xsd dans la suite de cedocument)
52 / 102
![Page 58: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/58.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Motivation
Exemple de document
<? xml v e r s i o n=” 1 . 0 ” ?><meteo>
<obs num=”PY54476VZ32”>< l o c>P a r i s−M o n t s o u r i s</ l o c><d a t e>1998−10−22 T15:31 :05</ d a t e><temp u n i t=” c e l s i u s ”>1 2 . 3</temp><hygro>88</ hygro><anemo>3</anemo><p l u v i o>6</ p l u v i o>
</ obs><obs num=”BM655S55”>
< l o c>Pic−du−Midi−B i g o r r e</ l o c><d a t e>1998−10−22 T15:31 :30</ d a t e><temp u n i t=” c e l s i u s ”>3 . 2</temp><hygro>55</ hygro><anemo>48</anemo><p l u v i o>0</ p l u v i o><message>Anemo . p r i m a i r e HS</ message>
</ obs></ meteo>
Exemple de DTD associee
<!ELEMENT meteo ( obs )+><!ELEMENT obs ( l o c , date , temp ? ,
hygro ? , n e b u l o ? , anemo ? ,p l u v i o ? , message ?)>
<! ATTLIST obs num ID #REQUIRED><!ELEMENT l o c (#PCDATA)><!ELEMENT d a t e (#PCDATA)><!ELEMENT temp (#PCDATA)><! ATTLIST temp u n i t CDATA #
REQUIRED><!ELEMENT hygro (#PCDATA)><!ELEMENT n e b u l o (#PCDATA)><!ELEMENT anemo (#PCDATA)><!ELEMENT p l u v i o (#PCDATA)><!ELEMENT message (#PCDATA)>
⇒ Tres peu de contraintes, notamment sur les types de donnees[XML, langage et applications, Alain Michard, Eyrolles 2001] 53 / 102
![Page 59: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/59.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Schema
Definition
Element schema = racine de tout schema XML
<xsd : schema x m l n s : x s d=” h t t p : //www. w3 . org /2001/XMLSchema”>contenu
</ xsd : schema>
Les elements et types viennent de ce namespace; ces donnees seront prefixees par ”xsd”
Contenu
Definitions :
d’elements
de types d’elements
simplescomplexes
d’attributs
d’annotations et documentation
54 / 102
![Page 60: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/60.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Elements simples vs complexes
Element simple
ne contient pas d’autre element ni d’attributs
Element complexe
contient autres elements et/ou attributs
55 / 102
![Page 61: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/61.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Definition d’element simple
<x s d : e l e m e n t name=” nomElement ” t y p e=” t y p e S i m p l e ” />
Exemples d’elements simples
<x s d : e l e m e n t name=” r u e ” t y p e=” x s d : s t r i n g ” />
<x s d : e l e m e n t name=” v i l l e ” t y p e=” x s d : s t r i n g ” />
<x s d : e l e m e n t name=” c o d e P o s t a l ” t y p e=” x s d : d e c i m a l ” />
Valeur par defaut
<x s : e l e m e n t name=” c o u l e u r ” t y p e=” x s : s t r i n g ” d e f a u l t=” rouge ”/>
Valeur fixee
<x s : e l e m e n t name=” c o u l e u r ” t y p e=” x s : s t r i n g ” f i x e d=” rouge ”/>
56 / 102
![Page 62: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/62.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Types simples
Elements et attributs peuvent avoir un contenu simple :
43 types predefinis atomiques
57 / 102
![Page 63: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/63.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Restrictions/facettes
Restrictions
Les restrictions permettent de definir les valeurs que peut prendre unelement (ou un attribut); elles sont appelees facettes.
Restriction a un intervalle de valeurs
<x s d : s i m p l e T y p e name=” c o d e P r o d u i t ”><x s d : r e s t r i c t i o n base=” x s d : i n t e g e r ”>
<x s d : m i n I n c l u s i v e v a l u e=” 100 ”/><x s d : m a x I n c l u s i v e v a l u e=” 1000 ”/>
</ x s d : r e s t r i c t i o n></ x s d : s i m p l e T y p e>
Restriction a un ensemble de valeurs
<x s d : s i m p l e T y p e name=” v o i x ”><x s d : r e s t r i c t i o n base=” x s d : s t r i n g ”>
<x s d : e n u m e r a t i o n v a l u e=” s o p r a n o ”/><x s d : e n u m e r a t i o n v a l u e=” a l t o ”/><x s d : e n u m e r a t i o n v a l u e=” t e n o r ”/><x s d : e n u m e r a t i o n v a l u e=” b a s s e ”/>
</ x s d : r e s t r i c t i o n></ x s d : s i m p l e T y p e>
58 / 102
![Page 64: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/64.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Restrictions/facettes (suite)
Restriction par expression reguliere
<x s d : s i m p l e T y p e name=” c o d e P o s t a l ”><x s d : r e s t r i c t i o n base=” x s d : s t r i n g ”>
<x s d : p a t t e r n v a l u e=”\d{5}” /></ x s d : r e s t r i c t i o n>
</ x s d : s i m p l e T y p e>
Facettes
enumeration, fractionDigits, length, maxExclusive, maxInclusive,maxLength, minExclusive, minInclusive, minLength, pattern, totalDigits,whiteSpace
59 / 102
![Page 65: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/65.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Definition d’elements complexes
Types d’elements complexes
elements vides
elements qui contiennent uniquement d’autres elements
elements qui ne contiennent que du texte (mais avec attributs)
elements qui contiennent a la fois d’autres elements et du texte
60 / 102
![Page 66: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/66.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Definition d’elements complexes
Premiere methode : definition d’un type dans l’element
<x s : e l e m e n t name=” employ e ”><xs :complexType>
<x s : s e q u e n c e><x s : e l e m e n t name=” pr enom” t y p e=” x s : s t r i n g ”/><x s : e l e m e n t name=” n o m f a m i l l e ” t y p e=” x s : s t r i n g ”/>
</ x s : s e q u e n c e></ xs :complexType>
</ x s : e l e m e n t>
⇒ seul l’element employe peut utiliser le type complexe forme d’unprenom et d’un nomfamille
61 / 102
![Page 67: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/67.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Definition d’elements complexes
Deuxieme methode : definition d’un type et d’un element
<x s : e l e m e n t name=” employ e ” t y p e=” i n f o p e r s o n n e ”/>
<xs :complexType name=” i n f o p e r s o n n e ”><x s : s e q u e n c e>
<x s : e l e m e n t name=” pr enom” t y p e=” x s : s t r i n g ”/><x s : e l e m e n t name=” n o m f a m i l l e ” t y p e=” x s : s t r i n g ”/>
</ x s : s e q u e n c e></ xs :complexType>
⇒ possibilite de definir d’autres elements ayant ce meme type, comme
<x s : e l e m e n t name=” e t u d i a n t ” t y p e=” i n f o p e r s o n n e ”/>
62 / 102
![Page 68: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/68.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Definition d’elements complexes : exemples (1)
Element vide
<me t r o nom=” Cluny ” />
⇒<x s : e l e m e n t name=”me t r o ”>
<xs :complexType><x s : a t t r i b u t e name=”name” t y p e=” x s : s t r i n g ”/>
</ xs :complexType></ x s : e l e m e n t>
63 / 102
![Page 69: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/69.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Definition d’elements complexes : exemples (2)
Element ne contenant que d’autres elements
<p e r s o n n e><pr enom>Jean</ pr enom><nom>Dupond</nom>
</ p e r s o n n e>
⇒<x s : e l e m e n t name=” p e r s o n n e ” t y p e=” i n f o p e r s o n n e ”/>
<xs :complexType name=” i n f o p e r s o n n e ”><x s : s e q u e n c e>
<x s : e l e m e n t name=” pr enom” t y p e=” x s : s t r i n g ”/><x s : e l e m e n t name=” n o m f a m i l l e ” t y p e=” x s : s t r i n g ”/>
</ x s : s e q u e n c e></ xs :complexType>
64 / 102
![Page 70: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/70.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Definition d’elements complexes : exemples (3)
Element ne contenant que du texte (avec attribut)
<p o i n t u r e pays=” f r a n c e ”>39</ p o i n t u r e>
⇒<x s : e l e m e n t name=” p o i n t u r e ” t y p e=” p o i n t u r e ”/>
<xs :complexType name=” p o i n t u r e ”><x s : s i m p l e C o n t e n t>
<x s : e x t e n s i o n base=” x s : i n t e g e r ”><x s : a t t r i b u t e name=” pays ” t y p e=” x s : s t r i n g ” />
</ x s : e x t e n s i o n></ x s : s i m p l e C o n t e n t>
</ xs :complexType>
simpleContent car le type ne contient que du contenu simple (pasd’autres elements)⇒ definition d’une extension ou d’une restriction obligatoire
65 / 102
![Page 71: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/71.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Definition d’elements complexes : exemples (4)
Element avec contenu mixte
<e n t e t e>
A < l o c>P a r i s</ l o c> , l e <d a t e>26/02/2013</ d a t e>
A l ’ a t t e n t i o n de M. <nom>Durand</nom></e n t e t e>
⇒<x s : e l e m e n t name=” e n t e t e ” t y p e=” t y p e e n t e t e ”/>
<xs :complexType name=” t y p e e n t e t e ” mixed=” t r u e ”><x s : s e q u e n c e>
<x s : e l e m e n t name=” l o c ” t y p e=” x s : s t r i n g ”/><x s : e l e m e n t name=” d a t e ” t y p e=” x s : d a t e ”/><x s : e l e m e n t name=”nom” t y p e=” x s : s t r i n g ”/>
</ x s : s e q u e n c e></ xs :complexType>
mixed=”true” pour permettre le texte entre les elements fils de l’en-tete66 / 102
![Page 72: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/72.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Indicateurs
Indicateurs de nombre d’occurrences
Par defaut, les elements apparaissent une fois.Sinon, minOccurs et maxOccurs
Exemple
<x s d : e l e m e n t name =” i d e n t i f i c a t i o n ” t y p e=” a d r e s s e ” /><xsd :complexType name =” a d r e s s e ”>
<x s d : s e q u e n c e><x s d : e l e m e n t name=”nom” t y p e=” x s d : s t r i n g ” /><x s d : e l e m e n t name=” r u e ” t y p e=” x s d : s t r i n g ” /><x s d : e l e m e n t name=” v i l l e ” t y p e=” x s d : s t r i n g ” /><x s d : e l e m e n t name=” c o d e P o s t a l ” t y p e=” x s d : d e c i m a l ” /><!−− t e l e phone p o r t a b l e , f i x e , bureau −−><x s d : e l e m e n t name=” noTel ” t y p e=” x s d : d e c i m a l ” m i n o c c u r s=”0”
maxoccurs=”3” /></ x s d : s e q u e n c e>
</ xsd :complexType>
67 / 102
![Page 73: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/73.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Indicateurs
Indicateurs d’ordre
sequence : les elements apparaissent dans un ordre specifique
choice : choix entre les elements
<x s d : e l e m e n t name=” p e r s o n n e ”><xsd :complexType>
<x s d : c h o i c e><x s d : e l e m e n t name=” employ e ” t y p e=” employ e ”/><x s d : e l e m e n t name=”membre” t y p e=”membre”/>
</ x s d : c h o i c e></ xsd :complexType>
</ x s d : e l e m e n t>
all : chaque element apparaıt 0 ou 1 fois
<x s d : e l e m e n t name=” p e r s o n n e ”><xsd :complexType>
<x s d : a l l><x s d : e l e m e n t name=” pr enom” t y p e=” x s d : s t r i n g ”/><x s d : e l e m e n t name=” n o m f a m i l l e ” t y p e=” x s d : s t r i n g ”/>
</ x s d : a l l></ xsd :complexType>
</ x s d : e l e m e n t>
68 / 102
![Page 74: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/74.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Definition d’attributs
<x s d : a t t r i b u t e name=” n omA tt r ibu t ” t y p e=” t y p e S i m p l e ”use=” r e q u i r e d | o p t i o n a l | f i x e d | d e f a u l t ” v a l u e=” v a l e u r ”/>
Exemple
<x s d : e l e m e n t name =” i d e n t i f i c a t i o n ” t y p e=” a d r e s s e ” /><xsd :complexType name =” a d r e s s e ”>
<x s d : s e q u e n c e><x s d : e l e m e n t name=”nom” t y p e=” x s d : s t r i n g ” /><x s d : e l e m e n t name=” r u e ” t y p e=” x s d : s t r i n g ” /><x s d : e l e m e n t name=” v i l l e ” t y p e=” x s d : s t r i n g ” /><x s d : e l e m e n t name=” c o d e P o s t a l ” t y p e=” x s d : d e c i m a l ” /><x s d : e l e m e n t name=” noTel ” t y p e=” x s d : d e c i m a l ” m i n o c c u r s=”0”
maxoccurs=”3” /></ x s d : s e q u e n c e><x s d : a t t r i b u t e name=” pays ” t y p e=” x s d : s t r i n g ” use=” f i x e d ” v a l u e=”
France ” /></ xsd :complexType>
69 / 102
![Page 75: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/75.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Extension de types simples ou complexes (1)
Extension
Permet d’ajouter des attributs ou des elements a un type existant
Ajout d’attributs
<x s : s i m p l e T y p e name=” s i z e ”><x s : r e s t r i c t i o n base=” x s : s t r i n g ”>
<x s : e n u m e r a t i o n v a l u e=” s m a l l ” /><x s : e n u m e r a t i o n v a l u e=”medium” /><x s : e n u m e r a t i o n v a l u e=” l a r g e ” />
</ x s : r e s t r i c t i o n></ x s : s i m p l e T y p e>
<xs :complexType name=” j e a n s ”><x s : s i m p l e C o n t e n t>
<x s : e x t e n s i o n base=” s i z e ”><x s : a t t r i b u t e name=” h f ”>
<x s : s i m p l e T y p e><x s : r e s t r i c t i o n base=” x s : s t r i n g ”>
<x s : e n u m e r a t i o n v a l u e=” male ” /><x s : e n u m e r a t i o n v a l u e=” f e m a l e ” />
</ x s : r e s t r i c t i o n></ x s : s i m p l e T y p e>
</ x s : a t t r i b u t e></ x s : e x t e n s i o n>
</ x s : s i m p l e C o n t e n t></ xs :complexType>
70 / 102
![Page 76: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/76.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Extension de types simples ou complexes (2)
Ajout d’elements
<x s : e l e m e n t name=” employ e ” t y p e=” i n f o p e r s o n n e c o m p l e t e ”/>
<xs :complexType name=” i n f o p e r s o n n e ”><x s : s e q u e n c e>
<x s : e l e m e n t name=” pr enom” t y p e=” x s : s t r i n g ”/><x s : e l e m e n t name=” n o m f a m i l l e ” t y p e=” x s : s t r i n g ”/>
</ x s : s e q u e n c e></ xs :complexType>
<xs :complexType name=” i n f o p e r s o n n e c o m p l e t e ”><x s : c o m p l e x C o n t e n t>
<x s : e x t e n s i o n base=” i n f o p e r s o n n e ”><x s : s e q u e n c e>
<x s : e l e m e n t name=” a d r e s s e ” t y p e=” x s : s t r i n g ”/><x s : e l e m e n t name=” v i l l e ” t y p e=” x s : s t r i n g ”/><x s : e l e m e n t name=” pays ” t y p e=” x s : s t r i n g ”/>
</ x s : s e q u e n c e></ x s : e x t e n s i o n>
</ x s : c o m p l e x C o n t e n t></ xs :complexType>
71 / 102
![Page 77: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/77.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Exemple
<? xml v e r s i o n=” 1 . 0 ” e n c o d i n g=”UTF−8” ?><x s : s c h e m a x m l n s : x s=” h t t p : //www. w3 . org /2001/XMLSchema”>
<x s : a n n o t a t i o n><x s : d o c u m e n t a t i o n>Exemple de sch ema pour r e l e v e me t e o</ x s : d o c u m e n t a t i o n>
</ x s : a n n o t a t i o n>
<x s : e l e m e n t name=” meteo ” t y p e=” meteoType ” />
<xs :complexType name =” meteoType ” ><x s : s e q u e n c e>
<x s : e l e m e n t name=” obs ” t y p e=” o b s e r v a t i o n ” minOccurs=”1” maxOccurs=” unbounded ” /></ x s : s e q u e n c e>
</ xs :complexType>
<xs :complexType name=” o b s e r v a t i o n ”><x s : s e q u e n c e>
<x s : e l e m e n t name=” l o c ” t y p e=” x s : s t r i n g ” /><x s : e l e m e n t name=” d a t e ” t y p e=” x s : d a t e T i m e ” /><x s : e l e m e n t name=”temp” t y p e=”tempType” minOccurs=”0” maxOccurs=”1” /><x s : e l e m e n t name=” hygro ” t y p e=” p o u r c e n t ” minOccurs=”0” maxOccurs=”1” /><x s : e l e m e n t name=”anemo” t y p e=” x s : n o n N e g a t i v e I n t e g e r ” minOccurs=”0” maxOccurs=”1” /><x s : e l e m e n t name=” p l u v i o ” t y p e=” x s : n o n N e g a t i v e I n t e g e r ” minOccurs=”0” maxOccurs=”1” /><x s : e l e m e n t name=” n e b u l o ” t y p e=” o c t a l ” minOccurs=”0” maxOccurs=”1” /><x s : e l e m e n t name=” message ” t y p e =” x s : s t r i n g ” minOccurs=”0” maxOccurs=”1” />
</ x s : s e q u e n c e><x s : a t t r i b u t e name=”num” t y p e=” x s : s t r i n g ” use=” r e q u i r e d ” />
</ xs :complexType>
<x s : s i m p l e T y p e name=” o c t a l ”><x s : r e s t r i c t i o n base=” x s : n o n N e g a t i v e I n t e g e r ”>
<x s : m a x I n c l u s i v e v a l u e=”7” /></ x s : r e s t r i c t i o n>
</ x s : s i m p l e T y p e>72 / 102
![Page 78: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/78.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Exemple (suite)
<x s : s i m p l e T y p e name=” p o u r c e n t ”><x s : r e s t r i c t i o n base=” x s : n o n N e g a t i v e I n t e g e r ”>
<x s : m a x I n c l u s i v e v a l u e=” 100 ” /></ x s : r e s t r i c t i o n>
</ x s : s i m p l e T y p e>
<x s : s i m p l e T y p e name=” v a l e u r s t e m p ”><x s : r e s t r i c t i o n base=” x s : d e c i m a l ”>
<x s : m i n I n c l u s i v e v a l u e=”−50.0”/><x s : m a x I n c l u s i v e v a l u e=” +50.0 ”/>
</ x s : r e s t r i c t i o n></ x s : s i m p l e T y p e>
<xs :complexType name =”tempType”><x s : s i m p l e C o n t e n t>
<x s : e x t e n s i o n base=” v a l e u r s t e m p ”><x s : a t t r i b u t e name=” u n i t ” t y p e=” tempUnit ” use=” r e q u i r e d ” />
</ x s : e x t e n s i o n></ x s : s i m p l e C o n t e n t>
</ xs :complexType>
<x s : s i m p l e T y p e name=” tempUnit ”><x s : r e s t r i c t i o n base=” x s : s t r i n g ”>
<x s : e n u m e r a t i o n v a l u e=” c e l s i u s ” /><x s : e n u m e r a t i o n v a l u e=” k e l v i n s ” /><x s : e n u m e r a t i o n v a l u e=” f a r e n h e i g h t ” />
</ x s : r e s t r i c t i o n></ x s : s i m p l e T y p e>
</ x s : s c h e m a>
[inspire de XML, langage et applications, Alain Michard, Eyrolles 2001]73 / 102
![Page 79: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/79.jpg)
IntroductionXML
DescriptionTraitements
DTDSchemas
Integration au document XML
Exemple de document
<? xml v e r s i o n=” 1 . 0 ” ?><meteo x m l n s : x s i=” h t t p : //www. w3 . org /2001/XMLSchema−i n s t a n c e ”
xs i :noNamespaceSchemaLocat ion=” schemameteo . xsd ”><obs num=”PY54476VZ32”>
< l o c>P a r i s−M o n t s o u r i s</ l o c><d a t e>1998−10−22 T15:31 :05</ d a t e><temp u n i t=” c e l s i u s ”>1 2 . 3</temp><hygro>88</ hygro><anemo>3</anemo><p l u v i o>6</ p l u v i o>
</ obs>. . .</ meteo>
74 / 102
![Page 80: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/80.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
75 / 102
![Page 81: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/81.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
76 / 102
![Page 82: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/82.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
API des analyseurs syntaxiques (parser) XML
DOM - analyseur ”hierarchique”
Document Object Model
recommandation W3C (level 1 en 1998, level 2 en 2000, level 3 en 2004)
construit l’arbre correspondant au document en memoire
, facilite les deplacements ou recherches dans l’arbre
/ tres lourd si document de taille importante
SAX - API evenementielle
Simple API for XML
originellement specifique au langage Java (1998), actuellement version 2.0 (2004)
parcourt le document et envoie des evenements (debut element, finelement, caracteres...)
, permet de traiter des documents de taille quelconque
/ pas de retour arriere possible
77 / 102
![Page 83: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/83.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Comparaison DOM/SAX
78 / 102
![Page 84: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/84.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
DOM
interface pour acceder et modifier un document (contenu, structure,style) independante du langage
Proprietes
nodeName
nodeValue
parentNode
childNode
attributes
Methodes
getElementsByTagNames()
appendChild()
removeChild()
79 / 102
![Page 85: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/85.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Reprenons le fichier XML de la librairie
<?xml version=”1.0” encoding=”UTF-8”? ><!−− C a t a l o g u e d ’ une l i b r a i r i e −−>< l i b r a i r i e>
< l i v r e c a t e g o r i e=” e n f a n t s ”>< t i t r e l a n g u e=” en ”>
Harry P o t t e r</ t i t r e><a u t e u r>J K. Rowl ing</ a u t e u r><annee>2005</ annee><p r i x>29 ,99</ p r i x>
</ l i v r e>< l i v r e c a t e g o r i e=” programmation ”>
< t i t r e l a n g u e=” f r ”>A p p r e n t i s s a g e de l a programmation avec Ocaml
</ t i t r e><a u t e u r>C a t h e r i n e Dubois</ a u t e u r><annee>2004</ annee><p r i x>39 ,95</ p r i x>
</ l i v r e></ l i b r a i r i e>
80 / 102
![Page 86: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/86.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Representation DOM d’un document XML
Pour DOM, un document XML = un ensemble de nœuds
librairie
livre livre
categorie...
titre
langue Harry Potter
auteur
JK Rowling
annee
2005
prix
29,99
root
element
attribute
text
81 / 102
![Page 87: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/87.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
DOM: acceder au titre du premier livre
<!DOCTYPE html><html><body><h1>Test XML JS</h1>
<p>T i t r e : <span i d=”demo”></ span></p>
<s c r i p t>v a r x h t t p = new XMLHttpRequest ( ) ;x h t t p . o n r e a d y s t a t e c h a n g e = f u n c t i o n ( ) {
i f ( t h i s . r e a d y S t a t e == 4 && t h i s . s t a t u s == 200) { // 4 = r e q u e s t f i n i s h e d and r e s p o n s e i sready , 200 = ”OK”
myFunction ( t h i s ) ;}
};
x h t t p . open ( ”GET” , ” books . xml ” , t r u e ) ;x h t t p . send ( ) ;
f u n c t i o n myFunction ( xml ) {v a r xmlDoc = xml . responseXML ;document . getE lementBy Id ( ”demo” ) . innerHTML = xmlDoc . getElementsByTagName ( ” t i t r e ” ) [ 0 ] .
c h i l d N o d e s [ 0 ] . nodeValue ; // <− ACCES AU PREMIER TITRE DU DOC XML}</s c r i p t>
</ body></ html>
Plus d’informations sur w3schools
82 / 102
![Page 88: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/88.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
83 / 102
![Page 89: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/89.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Selectionner des fragments XML : XPath
Presentation
XML Path Language
identifier un ensemble de nœuds dans un document XML
concu pour XSLT et Xpointer
XPath 1.0 recommandation W3C depuis 1999, XPath 2.0 depuis2007, XPath 3.0 depuis 2014
http://www.w3/org/TR/xpath
84 / 102
![Page 90: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/90.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Exemple
< f i l m s>Ce document c o n t i e n t des i n f o r m a t i o n s s u r l e s f i l m s<cinema>
<nom>R e f l e t s Me d i c i s</nom><a d r e s s e>
< v i l l e nom=P a r i s /><r u e>9 , r u e Champo l l i on</ r u e>
</ a d r e s s e><s e a n c e h e u r e = ” 1 8 . 0 0 ” r e f f i l m = ” s l e e p y h o l l o w ”/><s e a n c e h e u r e = ” 2 0 . 0 0 ” r e f f i l m = ” e d w a r d s c i s s o r h a n d s ”/>
</ cinema><f i l m f i l m I D = ” s l e e p y h o l l o w ”/>
< t i t r e>S l e e p y Hol low</ t i t r e>< r e a l i s a t e u r r e a l I D = ” t i m b u r t o n ”/>
<nom>Tim Burton</nom></ r e a l i s a t e u r><a c t e u r s>
<comedien>Johnny Depp</ comedien><comedienne>C r i s t i n a R i c c i</ comedienne>
</ a c t e u r s></ f i l m><f i l m f i l m I D = ” e d w a r d s c i s s o r h a n d s ” r e f r e a l = ” t i m b u r t o n ” />
< t i t r e>Edward S c i s s o r h a n d s</ t i t r e><a c t e u r s><comedien>Johnny Depp</ comedien> </ a c t e u r s>
</ f i l m></ f i l m s>
85 / 102
![Page 91: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/91.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XPath : chemins de positionnement (location path)
Chemin de positionnement
Un chemin de positionnement est une sequence d’etapes depositionnement (ou selecteurs) par rapport a un ensemble de nœudsdonnes (contexte)
Syntaxe : selecteur1/selecteur2/selecteur3 (forme relative)
/selecteur1/selecteur2/selecteur3 (forme absolue)
Selecteur
Chaque selecteur selectionne un ensemble de nœuds en fonction duselecteur precedent (= nouveau contexte)
Syntaxe : axe::test
Exemple : films/descendant::acteurs/child::comedien
86 / 102
![Page 92: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/92.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Axe
L’axe selectionne un ensemble de nœuds par rapport a leur positiondans un document ou relative a un contexte
Exemples
descendant::acteurs→ selectionne un ensemble de sous-nœuds de type acteurs dans le
documentchild::comedien
→ selectionne un ensemble de nœuds fils de type comedien par rapportau contexte defini par descendant::acteurs
87 / 102
![Page 93: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/93.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XPath : axes (directions)
Axes relatifs a un nœud
nœuds enfants et descendants : child,descendant, descendant-or-self
nœud parent et ancetres : parent, ancestor,ancestor-or-self
freres : preceding-sibling, following-sibling
nœuds precedents et suivants de la balise dansle document (sans les ascendants /descendants du nœud contexte) : preceding,following
attributs : attribute
self
88 / 102
![Page 94: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/94.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XPath : axes (directions)
Axes relatifs a un nœud
nœuds enfants et descendants : child,descendant, descendant-or-self
nœud parent et ancetres : parent, ancestor,ancestor-or-self
freres : preceding-sibling, following-sibling
nœuds precedents et suivants de la balise dansle document (sans les ascendants /descendants du nœud contexte) : preceding,following
attributs : attribute
self
88 / 102
![Page 95: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/95.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XPath : axes (directions)
Axes relatifs a un nœud
nœuds enfants et descendants : child,descendant, descendant-or-self
nœud parent et ancetres : parent, ancestor,ancestor-or-self
freres : preceding-sibling, following-sibling
nœuds precedents et suivants de la balise dansle document (sans les ascendants /descendants du nœud contexte) : preceding,following
attributs : attribute
self
88 / 102
![Page 96: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/96.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XPath : axes (directions)
Axes relatifs a un nœud
nœuds enfants et descendants : child,descendant, descendant-or-self
nœud parent et ancetres : parent, ancestor,ancestor-or-self
freres : preceding-sibling, following-sibling
nœuds precedents et suivants de la balise dansle document (sans les ascendants /descendants du nœud contexte) : preceding,following
attributs : attribute
self
88 / 102
![Page 97: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/97.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XPath : axes (directions)
Axes relatifs a un nœud
nœuds enfants et descendants : child,descendant, descendant-or-self
nœud parent et ancetres : parent, ancestor,ancestor-or-self
freres : preceding-sibling, following-sibling
nœuds precedents et suivants de la balise dansle document (sans les ascendants /descendants du nœud contexte) : preceding,following
attributs : attribute
self
88 / 102
![Page 98: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/98.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XPath : axes (directions)
Axes relatifs a un nœud
nœuds enfants et descendants : child,descendant, descendant-or-self
nœud parent et ancetres : parent, ancestor,ancestor-or-self
freres : preceding-sibling, following-sibling
nœuds precedents et suivants de la balise dansle document (sans les ascendants /descendants du nœud contexte) : preceding,following
attributs : attribute
self
88 / 102
![Page 99: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/99.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XPath : axes (directions)
Axes relatifs a un nœud
nœuds enfants et descendants : child,descendant, descendant-or-self
nœud parent et ancetres : parent, ancestor,ancestor-or-self
freres : preceding-sibling, following-sibling
nœuds precedents et suivants de la balise dansle document (sans les ascendants /descendants du nœud contexte) : preceding,following
attributs : attribute
self
88 / 102
![Page 100: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/100.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XPath : axes (directions)
Axes relatifs a un nœud
nœuds enfants et descendants : child,descendant, descendant-or-self
nœud parent et ancetres : parent, ancestor,ancestor-or-self
freres : preceding-sibling, following-sibling
nœuds precedents et suivants de la balise dansle document (sans les ascendants /descendants du nœud contexte) : preceding,following
attributs : attribute
self
88 / 102
![Page 101: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/101.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XPath : test
Test
Un test est compose d’un filtre sur le nom ou le type du nœud aselectionner suivi d’un predicat optionnel
Exemples
child::seance[@heure=”18.00”]child::seance/@heuredescendant::film[titre=”Sleepy Hollow”]
Filtre
nom d’element : seance
nom d’attribut : @heure
type de nœud : text(), comment()...
“tous les” : * (elements ou attributs)
descendant::film/* pour les elementsdescendant::seances/@* pour les attributs
n’importe quel nœud : node()89 / 102
![Page 102: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/102.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XPath : predicats
Predicat
Existence d’un attribut ou d’un element avec une valeur donnee
[@heure=”18.00”],[titre=”Sleepy Hollow”][comedien=”Johnny Depp” AND comedienne=”Cristina Ricci”]
Existence d’attributs et d’elements
[@heure],[not(titre) ],[comedien OR comedienne]
Position d’un element (un document XML est un arbre ordonne)
film[2] ou film[position()=2]film[2]/child::acteurs/child::comedien[1]film[2]/child::acteurs/child::comedien[position()=last()]
Nombre d’occurrences d’un element
acteurs[count(child::comedien) > 1]
Renvoi absolu
id(”val identifiant”)
90 / 102
![Page 103: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/103.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Xpath : syntaxe simplifiee
xpath syntaxe simplifiee
/child::film/child::titre /film/titre/child::film/descendant::comedien /film//comediendescendant::* //*Attribute:: @/descendant::seance[@heure=”18.00”] //seance[@heure=”18.00”]parent::node() ..
91 / 102
![Page 104: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/104.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XPath : exemples de tests
//comedien|comedienne : tous les elements comedien et tous leselements comedienne
id(”sleepy hollow”): element avec ID ”sleepy hollow”
film[1] : le premier element film
*[position()=1 AND self::comedien] : l’element comedien, s’il est lepremier fils de son pere (et non pas premier comedien)
92 / 102
![Page 105: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/105.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Exemples de requetes XPath
films//film/titre/text()
films//realisateur
films//film/@film ID
films/cinema[nom=”Reflets Medicis”]/seance/ @*
films/cinema[nom=”Reflets Medicis”]/seance[2]/ @*
films//film/(* except realisateur)
93 / 102
![Page 106: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/106.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XPointer : utilisation de XPath avec des URIs
Deux axes nouveaux : range et string
range : selection d’une region dans un document
les trois premiers nœuds fils, de l’element ”sleepy hollow”id(”sleepy hollow”)/range::child[1],following-sibling[2]
string : selection d’une sous-chaıne dans le document
la troisieme occurrence de la chaıne ”Johnny Depp”string::3, ”Johnny Depp”
Un nouveau predicat : unique
Pour verifier s’il existe un seul nœud dans le contexte
94 / 102
![Page 107: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/107.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
1 IntroductionXML, pour quoi faire ?HistoriqueStandards
2 Langage de description de donnees : XMLDefinition d’un document XMLDocument bien formeRegles de bonne conception
3 Description de documentsDescription structurelle de documentsDescription typee de documents
4 Traitement des documentsInterfaces de programmation : SAX et DOMSelection d’informations : XPathTransformation d’un document
95 / 102
![Page 108: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/108.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
XSLT
Presentation
XSLT = eXtensible Stylesheet Language Transformations
pour transformer des documents XML en un autre format XML
XSLT 1.0 recommandation W3C en 1999 (encore tres largement utilise),
XSLT 2.0 en 2007
http://www.w3.org/TR/xslt
http://www.w3.org/TR/xslt20/
Liens avec XPath et XQuery
XSLT 2.0 egalement base sur XPath
possibilites proches de celles de XQuery mais
implementations XSLT plutot optimisees pour transformer desdocuments entiers, XQuery des fragments de donneesXQuery a une syntaxe non XML plus compacte (et plus facile a lire)XQuery prevu pour interroger des collections de documents
96 / 102
![Page 109: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/109.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Feuille de style XSL
Presentation
Objectif : specifier la presentation d’un document XML
mecanismes plus puissants que CSS pour XML
Contenu
Ensembles de regles appeles templates
Un template contient des regles a appliquer lorsqu’un certain nœudest rencontre
97 / 102
![Page 110: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/110.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Exemple : fichier XML
<? xml v e r s i o n=” 1 . 0 ” e n c o d i n g=”ISO−8859−1”?><? xml−s t y l e s h e e t t y p e=” t e x t / x s l ” h r e f=” c d c a t a l o g . x s l ”?><c a t a l o g>
<cd>< t i t l e>Empire B u r l e s q u e</ t i t l e>< a r t i s t>Bob Dylan</ a r t i s t><c o u n t r y>USA</ c o u n t r y><company>Columbia</company><p r i c e>1 0 . 9 0</ p r i c e><y e a r>1985</ y e a r>
</ cd>. . .</ c a t a l o g>
98 / 102
![Page 111: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/111.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Feuille de style XSL
<? xml v e r s i o n=” 1 . 0 ” e n c o d i n g=”ISO−8859−1”?>
<x s l : s t y l e s h e e t v e r s i o n=” 1 . 0 ”x m l n s : x s l=” h t t p : //www. w3 . org /1999/XSL/ Transform ”>
<x s l : t e m p l a t e match=”/”><html><body><h2>My CD C o l l e c t i o n</h2><t a b l e b o r d e r=”1”>
<t r b g c o l o r=”#9acd32 ”><th>T i t l e</ th><th>A r t i s t</ th>
</ t r><x s l : f o r −each s e l e c t=” c a t a l o g / cd ”><t r>
<td><x s l : v a l u e−o f s e l e c t=” t i t l e ”/></ td><td><x s l : v a l u e−o f s e l e c t=” a r t i s t ”/></ td>
</ t r></ x s l : f o r −each>
</ t a b l e></ body></ html>
</ x s l : t e m p l a t e>
</ x s l : s t y l e s h e e t>99 / 102
![Page 112: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/112.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Generer l’arbre de sortie
Elements XSLT
generer du texte : xsl:value-of
inserer un nombre : xsl-number
copier un nœud : xsl-copy
creer un element, un attribut... : xsl-element, xsl-attribute
repetition : xsl:for-each
instructions conditionnelles : xsl:if et xsl-choose
tri : xsl-sort
appliquer les templates pour le nœud courant et ses fils :xsl-apply-templates
100 / 102
![Page 113: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/113.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Transformation
processeur peut etre lenavigateur internet
101 / 102
![Page 114: Le langage de documents XML · 2018-03-09 · Standards Avantages et inconv enients / tr es verbeux ) balisage r ep etitif, ... Standards XML vs JSON XML + lisibilit e annotations](https://reader033.fdocuments.us/reader033/viewer/2022060401/5f0e314a7e708231d43e0d9a/html5/thumbnails/114.jpg)
IntroductionXML
DescriptionTraitements
Programmation : SAX et DOMSelection d’informations : XPathTransformation : XSLT
Vue d’ensemble
102 / 102