Les technologies XML Cours 3 : Les APIS XML Janvier 2009 - Version 1.0 -
Cours XML
Transcript of Cours XML
-
7/28/2019 Cours XML
1/146
Bernd Amann - CNAM, Paris 1
XMLBernd Amann
Conservatoire National des Arts et Mtiers
Paris
October 17, 2000
mailto:[email protected]:[email protected] -
7/28/2019 Cours XML
2/146
-
7/28/2019 Cours XML
3/146
Bernd Amann - CNAM, Paris 3
26 XML = Modle Documents Structurs
27 XML = Syntaxe pour Transfert de Donnes
28 Le Web et les Bases de Donnes
29 Notion de balisage structurel30 Un document XML
31 Explications
32 DTD : Dclaration de la Structure dun Document XML
33 Dclaration du Type de Document
34 DTD: Utilisation35 Rsum
36 Documents XML valides et bien-forms
37 DTD: Pourquoi Validation?
38 ELEMENT : Dclaration du Type de lment
39 ATTLIST : Dclaration des Attributs40 ATTLIST : Mode
41 ATTLIST: Exemple
-
7/28/2019 Cours XML
4/146
Bernd Amann - CNAM, Paris 4
42 Entits gnrales et Entits paramtres
43 Entits externes
44 Formal Public Identifier
45 NOTATION : entits non-XML46 Domaines nominaux (namespace)
47 Domaines nominaux: Exemple
48 Problme : comment valider un document XML ?
49 Domaines nominaux: Utilisation contrle
50 Autres Caractristiques de XML51 DTD : Quelques remarques
52 XML Schema
53 XML: Syntaxe pour Transfert de Donnes
54 Schema XML et DTD: Comparaison
55 Schema XML : Exemple57 XML Schema - Exemple
58 Types Simples
http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?- -
7/28/2019 Cours XML
5/146
Bernd Amann - CNAM, Paris 5
59 Dfinition de Types Simples
60 Restrictions de Types Simples
61 Restriction de Types Simples par Motifs
62 Listes de Valeurs de Type Simple63 Restriction de Listes par Longueur
64 Union de Types Simples
65 Types Complexes, Elments, Attributs
66 Type Complexe: Exemple
67 Types Simples avec Attributs69 Contenu mlang
70 Contenu Vide
71 Groupes: Exemple
72 Groupes dAttributs
73 Valeurs Nulles74 Domaines Nominaux
75 lments Locaux Qualifis et Non-qualifis
http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?- -
7/28/2019 Cours XML
6/146
Bernd Amann - CNAM, Paris 6
77 Extension de Types Complexes
79 Utilisation de types tendus
80 Restriction de Types Complexes
81 Redfinition de types82 Groupes de substitution
83 Types et Groupes Abstraits
84 Valeur unique
85 Cls et Rfrences
86 Adresser des Fragments XML: XPath et XPointer87 Slectionner des Fragments XML
88 XPath et XPointer
89 Chemins de Positionnement
90 Contexte dvaluation
91 Chemins absolus92 XPath: Exemples
93 XPath: Axes
http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?- -
7/28/2019 Cours XML
7/146
Bernd Amann - CNAM, Paris 7
94 XPath : Tests
95 XPath : Exemples de tests
96 XPath : Syntaxe simplifie
97 XPointer: Extensions de XPath98 XPointer: Axes range:: et string::
99 Chemins robustes
100 Liens XML: XLink
101 XLink
102 XLink Terminologie103 Adresser des Ressources XML
104 Exemple
105 lments de Lien
106 Attributs dun lment
107 Exemple : Lien HTML = Lien XML simple108 Exemple: lien tendu avec arcs
109 Contenu et Prsentation: CSS et XSL
http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?- -
7/28/2019 Cours XML
8/146
Bernd Amann - CNAM, Paris 8
110 Feuilles de Style CSS
111 Principes de base
112 Exemple
113 Types de mdia114 XSL
116 Example: Officiel des Spectacles
117 Fonctions dune Feuille de Style
118 Les Composants de XSL
119 Structure dune feuille XSL120 Rgles XSL : Exemple
122 Rgles XSL : Modle de Traitement
123 Rgles XSL : Rcursion infinie
124 Rsolution de conflits: Exemple
125 Rsolution de conflits126 Selection de Rgles: Modes
127 Rgle = Procdure avec Paramtres
http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?- -
7/28/2019 Cours XML
9/146
Bernd Amann - CNAM, Paris 9
128 Structures de controle: for-each, if, choose
129 Trier
130 Cls
131 Gnration dIdentificateurs dObjets
132 Objets de Formatage (FO): Exemple PDF
133 XML-QL : Un langage de requtes pour XML
134 XML-QL
135 Exemple
136 Construction de rsultats137 Requtes imbriques : lments optionnels
138 Requtes imbriques : Regroupement
139 Syntactic Sugaring
140 Jointures
141 Interrogation du schma142 Expressions rgulires
143 Integration
http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?- -
7/28/2019 Cours XML
10/146
Bernd Amann - CNAM, Paris 10
144 Integration: Fonctions de Skolem
145 Ordre
146 Ordre : Exemple
http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?- -
7/28/2019 Cours XML
11/146
Bernd Amann - CNAM, Paris 11
Introduction
-
7/28/2019 Cours XML
12/146
Bernd Amann - CNAM, Paris Introduction 12
La rvolution Internet
Depuis 10 ans, Internet rvolutionne linformatique grand publique
Au dbut, un serveur Web tait essentiellement un serveur de documents HTML.
Depuis, les serveurs Web sont devenus des vrais serveur dapplications :
qui accdent aux bases de donnes
fournissent des notions de session, transaction, scurit
avec des nouvelles technologies comme Java/Javascript, PHP, cookies,...
-
7/28/2019 Cours XML
13/146
Bernd Amann - CNAM, Paris Introduction 13
Nouvelles applications Web
Commerce lectronique:
Services: rservation de train, mto, ...
Bourse en-ligne
B2B, B2C
Communauts Web (online communities): Napster, ...
-
7/28/2019 Cours XML
14/146
Bernd Amann - CNAM, Paris Introduction 14
Les consquences
HTML est insuffisant pour la reprsentation des donnes qui sont changes sur Internet
Solution: XML
-
7/28/2019 Cours XML
15/146
Bernd Amann - CNAM, Paris HTML - Rappel 15
HTML
HTML: HyperText Markup Language
dernire version: XHTML 1.0 recommandation W3C
changement majeur depuis HTML 4.0: HTML devient une application de XML
B d A CNAM P i HTML R l 16
http://www.w3.org/TR/xhtml1http://www.w3.org/http://www.w3.org/TR/html4http://www.w3.org/TR/xhtml1http://www.w3.org/http://www.w3.org/TR/html4 -
7/28/2019 Cours XML
16/146
Bernd Amann - CNAM, Paris HTML - Rappel 16
Exemple
officiel.html:
Officiel du Spectacle
Officiel du Spectacle
Cinmas
St. Andr des Arts,
13, rue St. Andr des Arts, Paris
18:00 - Brazil
20:30 - Matrix
Bernd Amann CNAM Paris HTML Rappel 17
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.html -
7/28/2019 Cours XML
17/146
Bernd Amann - CNAM, Paris HTML - Rappel 17
Films:
Brazil avec:
Jonathan Pryce
Robert De Niro
Bernd Amann CNAM Paris HTML Rappel 18
-
7/28/2019 Cours XML
18/146
Bernd Amann - CNAM, Paris HTML - Rappel 18
Structure, Contenu et Prsentation
Dans un document HTML on mlange gnralement le contenu et la prsentation: le titre dun film
est entre les balises ..., la couleur de la page est spcifi dans la balise , ...
==> Sparation du contenu et de la prsentation: HTML avec feuille de style CSS Les informations dans une page HTML ne sont pas structures: on ne peut pas distinguer le nom du
cinma, le titre du film, ladresse du cinma etc...
==> Utilisation de balises spcifiques une application: XML.
Bernd Amann - CNAM Paris HTML - Rappel 19
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-avec-css.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-css.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-avec-css.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-css.html -
7/28/2019 Cours XML
19/146
Bernd Amann CNAM, Paris HTML Rappel 19
Bibliographie
Bernd Amann - CNAM, Paris Bibliographie 20
-
7/28/2019 Cours XML
20/146
Bernd Amann CNAM, Paris Bibliographie 20
Bibliographie
Ces rfrences biblio ont t trouv avec Google. Nhesitez pas en chercher dautres!
Gnralits: W3C Web server : http://www.w3.org/
A. Michard, XML - Langage et Applications, Eyrolles
Transparents de ce cours (2 slides/page): http://sikkim.cnam.fr:/Cours/Cours-XML/poly.pdf
V. Aguilra, XML et gestion de donnes semi-structures, supports de cours
Tutorial XML et BD: http://www.cs.huji.ac.il/ atdb/Lectures/xml/index.htm
Donnes semi-structures:
S. Abiteboul, P. Buneman, D. Suciu: Data on the Web - from relations to semi-structured data andXML
XSL:
Tutorial XSL:http://www.arbortext.com/xsl/ Projet XML Apache: http://xml.apache.org/
Langages de Requtes:
Bernd Amann - CNAM, Paris Bibliographie 21
http://www.google.com/http://www.w3.org/http://sikkim.cnam.fr/Cours/Cours-XML/poly.pdfhttp://www.cs.huji.ac.il/~atdb/Lectures/xml/index.htmhttp://www.arbortext.com/xsl/http://xml.apache.org/http://www.google.com/http://www.w3.org/http://sikkim.cnam.fr/Cours/Cours-XML/poly.pdfhttp://www.cs.huji.ac.il/~atdb/Lectures/xml/index.htmhttp://www.arbortext.com/xsl/http://xml.apache.org/ -
7/28/2019 Cours XML
21/146
, g p
XML query languages : http://www.w3.org/TandS/QL/QL98/
Recommendation XQL: http://www.w3.org/TandS/QL/QL98/pp/xql.html,http://www.cuesoft.com/docs/cuexsl_activex/xql_users_guide.htm
XML-QL : http://www.w3.org/TR/NOTE-xml-ql/
Quilt : Quilt
Xyleme: http://www.xyleme.com
Bernd Amann - CNAM, Paris Bibliographie 22
http://www.w3.org/TandS/QL/QL98/http://www.w3.org/TandS/QL/QL98/pp/xql.htmlhttp://www.cuesoft.com/docs/cuexsl_activex/xql_users_guide.htmhttp://www.w3.org/TR/NOTE-xml-ql/http://www.almaden.ibm.com/cs/people/chamberlin/quilt_euro.htmlhttp://www.xyleme.com/http://www.w3.org/TandS/QL/QL98/http://www.w3.org/TandS/QL/QL98/pp/xql.htmlhttp://www.cuesoft.com/docs/cuexsl_activex/xql_users_guide.htmhttp://www.w3.org/TR/NOTE-xml-ql/http://www.almaden.ibm.com/cs/people/chamberlin/quilt_euro.htmlhttp://www.xyleme.com/ -
7/28/2019 Cours XML
22/146
g p
XML
Bernd Amann - CNAM, Paris Introduction XML 23
-
7/28/2019 Cours XML
23/146
Le langage de marquage XML
XML: eXtensible Markup Language
standard (recommandation W3C, www.w3.org) pour
1. documents structurs : hritier de SGML
2. documents Web: gnralisation de HTML XML facilite(ra)
1. lchange de donnes sur le Web
2. lintgration dapplications Web
3. linterrogation du Web
Bernd Amann - CNAM, Paris Introduction XML 24
http://www.w3.org/http://www.w3.org/ -
7/28/2019 Cours XML
24/146
Le World Wide Web Consortium (W3C)
400 partenaires industriels, parmi lesquels Oracle, IBM, Compaq, Xerox, Microsoft, etc..
Laboratoires de recherche: MIT pour les tats Unis, INRIA pour lEurope, universit Keio (Japon)pour lAsie
Objectif: dfinir un modle pour faciliter lchange de donnes sur le Web
Bernd Amann - CNAM, Paris Introduction XML 25
-
7/28/2019 Cours XML
25/146
Historique
1993: premiers travaux sur ladaptation des techniques SGML au Web (Sperberg).
Juin 1996: cration dun groupe de travail au sein du W3C
10 Fvrier 1998: publication de la recommandation pour la version 1.0 du langage.
Bernd Amann - CNAM, Paris Introduction XML 26
-
7/28/2019 Cours XML
26/146
XML = Modle Documents Structurs
XML est compatible avec SGML (standard pour documents structurs)
ldition de documents XML est simple (un diteur texte standard suffit) la structure dun document peut tre prdfinie par une grammaire (DTD) et analyse par un parseur
le contenu dun document est spare de sa prsentation: feuille de style XSL
Bernd Amann - CNAM, Paris Introduction XML 27
-
7/28/2019 Cours XML
27/146
XML = Syntaxe pour Transfert de Donnes
ASCII du 21e sicle (H.S. Thompson)
ASCII (ISO 646) et UNICODE/ISO 10646: encodage de caractres
XML: encodage/linarisation de donnes
XML permet de reprsenter des donnes avec une structure irrgulire, implicite et partielle
(semi-structures).
les nouvelles techniques dintgration et dinterrogation de donnes semi-structures peuvent tre
appliques.
Bernd Amann - CNAM, Paris Introduction XML 28
-
7/28/2019 Cours XML
28/146
Le Web et les Bases de Donnes
RELATIONSOBJETSSCHEMAS
IMAGESSON
HTML
WEB BASES DE DONNEES
XML
Bernd Amann - CNAM, Paris Introduction XML 29
-
7/28/2019 Cours XML
29/146
Notion de balisage structurel
Principe cl de SGML
Ide: sparer la structure logique de la prsentation dun document
Avantages (par rapport HTML):1. indpendance entre les outils de navigation (browser) et les outils de gestion de donnes (e.g. BD),
2. diffrentes prsentations pour le mme document,
3. indexation et linterrogation structurelle
Bernd Amann - CNAM, Paris Introduction XML 30
-
7/28/2019 Cours XML
30/146
Un document XML
Fichier officiel.xml:
Ce document contient des informations sur des cinmas.
St. Andr des Arts
Paris
rue St. Andr des Arts
13
Voici linformation sur le film Brazil :
Brazil 1986
Bernd Amann - CNAM, Paris Introduction XML 31
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.xml -
7/28/2019 Cours XML
31/146
Explications
llment Officiel est la racine du document de contenu mlang
un cinma a un nom, une adresse et zro ou plusieurs sances
une sance contient un attribut ref_film qui permet de rfrencer dautres lments dans le mme
document. Remarque : les rfrences ne sont pas types.
les films sont identifis par la valeur de lattribut film_id
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 32
-
7/28/2019 Cours XML
32/146
DTD : Dclaration de la Structure dun Document XML
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 33
-
7/28/2019 Cours XML
33/146
Dclaration du Type de Document
Fichier officiel.dtd:
ref_film IDREF #REQUIRED>
actors IDREFS #IMPLIED>
...]>
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 34
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.dtdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.dtd -
7/28/2019 Cours XML
34/146
DTD: Utilisation
On ajoute au dbut du document XML (officiel.xml):
]>
sous-ensemble externe : SYSTEM officiel.dtd
sous-ensemble interne :
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 35
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.xml -
7/28/2019 Cours XML
35/146
Rsum
Un document XML est dfini par:
une structure physique : entits externes (fichiers); entit document
une structure logique :
prologue :
1. instructions dvaluation : e.g.
2. dclaration du type de document (DTD) :
document type dfinition : obtenu par le parseur partir de la dclaration de type de document
lment racine suivi dautres lments
pilogue
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 36
-
7/28/2019 Cours XML
36/146
Documents XML valides et bien-forms
document XML bien-form :
pas de DTD
la structure est imbrique (arborescence)
document XML valide :
DTD existe
respecte la DTD (grammaire, lment racine, spcifications dattributs)
respecte lintgrit rfrentielle : toutes les valeurs dattributs de type ID sont distinctes toutes les rfrences sont valides
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 37
-
7/28/2019 Cours XML
37/146
DTD: Pourquoi Validation?
Une DTD est une interface entre le producteurs et les consommateurs des donnes :
le producteur peut contrler la qualit des donnes produites le consommateur peut sparer la vrification syntaxique des donnes (parseur) de la logique de
lapplication
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 38
-
7/28/2019 Cours XML
38/146
ELEMENT : Dclaration du Type de lment
Syntaxe:
Modles du contenu : grammaire (structure) pour le document.
EMPTY est un MC : lment vide
ANY est un MC : toute combinaison de tous les lments
contenu lment : expression rgulire sur les noms dlments
contenu_element ::= [choice | seq] [? | * | +]?
cp ::= [Name | choice | seq] [? | * | +]?
choice ::= ( cp [ | cp ]* )
seq ::= ( cp [ , cp ]* )
contenu mixte : expression rgulire sur les noms dlments et #PCDATA :
contenu_mixed ::= (#PCDATA [| Name]* )*
| (#PCDATA)
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 39
-
7/28/2019 Cours XML
39/146
ATTLIST : Dclaration des Attributs
Syntaxe :
Types dattributs (type):
1. String : CDATA
2. Enumerated : squence de valeurs alternatives spares par
!
3. ID, IDREF, IDREFS : identification et rfrences
4. ENTITY/ENTITIES : nom dune entit non analyse dclare ailleurs
5. NMTOKEN/NMTOKENS : chane de caractres sans blancs
6. NOTATION : une ou plusieurs notations (spares par!
)
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 40
-
7/28/2019 Cours XML
40/146
ATTLIST : Mode
Modes dattributs:
"
#REQUIRED : la valeur doit tre dfinie
"
#IMPLIED : la valeur est optionnelle
"
#FIXED : la valeur est constante
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 41
-
7/28/2019 Cours XML
41/146
ATTLIST: Exemple
ref_film IDREF #REQUIRED>
langue (AN|FR|AL|ES|IT) #IMPLIED>
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 42
-
7/28/2019 Cours XML
42/146
Entits gnrales et Entits paramtres
]>
%copyright;
2000# Entits paramtres : dclaration et utilisation dans DTD.
# Entits gnrales : dclaration dans DTD et utilisation dans DTD et document.
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 43
-
7/28/2019 Cours XML
43/146
Entits externes
$ Segmentation du document en plusieurs sous-documents
$ Rutilisation de DTDs et de dclarations
$ Rfrences vers donnes non-XML (NOTATION)
Adressage:$ URL :
$ FPI : formal public identifier
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 44
-
7/28/2019 Cours XML
44/146
Formal Public Identifier
Un identificateur FPI est garanti unique sil est
% conforme ISO 9070,
% enregistr dans un fichier catalogue et
% dbute par +
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 45
-
7/28/2019 Cours XML
45/146
NOTATION : entits non-XML
Utilisation:
& dclaration du format (type = application) pour entits non-XML
& rfrence une entit de type notation seulement possible comme valeur dattribut
]>
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 46
-
7/28/2019 Cours XML
46/146
Domaines nominaux (namespace)
' Un domaine nominal XML (namespace) est une collection de noms dlments ou noms dattributs
(identifie par un URI).' Utilisation: viter les conflits de noms (par exemple, quand on utilise plusieurs DTD externes)
-
7/28/2019 Cours XML
47/146
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 48
-
7/28/2019 Cours XML
48/146
Problme : comment valider un document XML ?
Un acteur de thtre dans un film:
La dfinition de llment acteur ne correspond pas la dfinition dans films.dtd ) document
bien-form mais pas valide.
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 49
-
7/28/2019 Cours XML
49/146
Domaines nominaux: Utilisation contrle
Les acteurs de cinma et de thtre sont distingus dans le contexte de leurs
lments parent0
document valide :
]>
George Clooney
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 50
-
7/28/2019 Cours XML
50/146
Autres Caractristiques de XML
1 instructions dvaluation (processing instructions - PI) :
e.g. pour xml: version, encoding, standalone?
1 sections non-interprts : texte X nest pas analys par le parseur
1 sections conditionnelles : ,
1 commentaires :
1 alias :
Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 51
-
7/28/2019 Cours XML
51/146
DTD : Quelques remarques
2 DTD = grammaire (sans contexte)
2 DTD = modle de donnes
document XML = arbre ordonn
types atomiques limits (#PCDATA, ID, IDREF, ...)3
XML schema
rfrences non types (IDREF)3
XML schema
pas de types complexes3
XML schema
Bernd Amann - CNAM, Paris Schmas XML 52
-
7/28/2019 Cours XML
52/146
XML Schema
Bernd Amann - CNAM, Paris Schmas XML 53
-
7/28/2019 Cours XML
53/146
XML: Syntaxe pour Transfert de Donnes
4 Problme: DTD sont trop pauvres pour reprsenter des modles de donnes plus riches :
la relation lment/sous-lment correspond essentiellement la relation part-of
un seul type atomique: #PCDATA une DTD nest pas un document XML
4 Solution: XML Schma
Bernd Amann - CNAM, Paris Schmas XML 54
http://www.w3.org/TR/xmlschema-0/http://www.w3.org/TR/xmlschema-0/ -
7/28/2019 Cours XML
54/146
Schema XML et DTD: Comparaison
5 un schma XML est un document XML
5 sparation entre balises et types: diffrents lments peuvent partager le mme type (modles de
contenu)
5 43 Types simples, listes et union de types simple
5
constructeurs de types complexes: sequence, choice, group5 restriction de types par motifs (wildcards)
5 classes dquivalences entre lments
5 mcanisme dextension et raffinement de types
5 mcanismes de documentation
Bernd Amann - CNAM, Paris Schmas XML 55
Schema XML : Exemple
-
7/28/2019 Cours XML
55/146
Schema XML : Exemple
DTD: officiel.dtd
XML Schema: officiel.xsd
Schma pour officiel.com
Bernd Amann - CNAM, Paris Schmas XML 56
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.dtdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.xsdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.dtdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.xsd -
7/28/2019 Cours XML
56/146
Bernd Amann - CNAM, Paris Schmas XML 57
-
7/28/2019 Cours XML
57/146
XML Schema - Exemple
6 DTD: Fichier film.dtd
6 Schma XML: Fichier film.xsd
Bernd Amann - CNAM, Paris Schmas XML 58
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/film.dtdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/film.xsdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/film.dtdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/film.xsd -
7/28/2019 Cours XML
58/146
Types Simples
DTD: un seul type dlment (#PCDATA) et 10 types dattributs Schma XML: 43 typesatomiques
7
xsd:string, xsd:byte, xsd:unsignedByte
7
xsd:integer, xsd:long, xsd:float, xsd:double, ...
7
xsd:boolean
7
xsd:time, xsd:timeDuration, xsd:Date, xsd:year, xsd:month, ...
7
xsd:language, xsd:uriReference
7 Types DTD: xsd:ID, xsd:IDREF, xsd:NMTOKEN, ...
7
listes et unions de types simples
Bernd Amann - CNAM, Paris Schmas XML 59
-
7/28/2019 Cours XML
59/146
Dfinition de Types Simples
8 Anne Film: 1956
8 DTD: #PCDATA
8 XML schma : Restriction de type
Bernd Amann - CNAM, Paris Schmas XML 60
-
7/28/2019 Cours XML
60/146
Restrictions de Types Simples
9 longueur (length, minLength, maxLength) des chanes de caractres ou listes
9 par motifs (chanes de caractres, style Perl),
9
numration,9 intervalles (maxInclusive, maxExclusive, minInclusive, minExclusive) et
9 autres (precision, scale, encoding, period, duration).
Bernd Amann - CNAM, Paris Schmas XML 61
-
7/28/2019 Cours XML
61/146
Restriction de Types Simples par Motifs
@ Numro de tlphone: +33-(0)-1-34-45-67-89
@ DTD: #PCDATA
@ Schma XML: Similaire aux expressions rgulires de Perl
Bernd Amann - CNAM, Paris Schmas XML 62
-
7/28/2019 Cours XML
62/146
Listes de Valeurs de Type Simple
A lment XML:
33-(0)-1-34-45-67-89 33-(0)-3-25-56-98-78
A DTD: (attribut: NMTOKENS)
A XML Schma:
Attention: listes de xsd:string : le symbole (espace) est sparateur
Bernd Amann - CNAM, Paris Schmas XML 63
-
7/28/2019 Cours XML
63/146
Restriction de Listes par LongueurListes avec 5 numros de tlphone:
B XML Schma:
Bernd Amann - CNAM, Paris Schmas XML 64
-
7/28/2019 Cours XML
64/146
Union de Types Simples
C Numros europens: +33-(0)-1-45-67-89 +43-(0)-55-50-24-91
C DTD: #PCDATA ou NMTOKENS (attributs)
C XML schma:
Bernd Amann - CNAM, Paris Schmas XML 65
-
7/28/2019 Cours XML
65/146
Types Complexes, Elments, Attributs
D Constructeur de type: xsd:squence, xsd:choice, xsd:group
D Dclaration dlments:
Contraintes: minOccurs, maxOccurs, fixed
D Attributs:
Use: required, optional, fixed, prohibited
-
7/28/2019 Cours XML
66/146
Bernd Amann - CNAM, Paris Schmas XML 67
-
7/28/2019 Cours XML
67/146
Types Simples avec Attributs
F lment XML:
Le Got des Autres
F
DTD:
Bernd Amann - CNAM, Paris Schmas XML 68
-
7/28/2019 Cours XML
68/146
G XML schma: les types simples (e.g. xsd:string) nont pas dattributs:
Bernd Amann - CNAM, Paris Schmas XML 69
C t l
-
7/28/2019 Cours XML
69/146
Contenu mlang
H lment XML:
Cinmas: ... Films: ...
H DTD:
H Schma XML ( peut tre remplac par xsd:sequence):
Bernd Amann - CNAM, Paris Schmas XML 70
Contenu Vide
-
7/28/2019 Cours XML
70/146
I
lment XML: I Schma XML:
Bernd Amann - CNAM, Paris Schmas XML 71
Groupes: Exemple
-
7/28/2019 Cours XML
71/146
P
DTD: P XML schma:
Bernd Amann - CNAM, Paris Schmas XML 72
Groupes dAttributs
-
7/28/2019 Cours XML
72/146
Ladresse dun cinma ou dune personne est compose des mmes attributs (partage) :
...
...
Bernd Amann - CNAM, Paris Schmas XML 73
-
7/28/2019 Cours XML
73/146
Valeurs Nulles
Q Schma XML:
Q lment XML:
xsi:null est dfini dans le domaine de noms pour des instances
(http://www.w3.org/2000/10/XMLSchema-instance).
Bernd Amann - CNAM, Paris Schmas XML 74
Domaines Nominaux
-
7/28/2019 Cours XML
74/146
Bernd Amann - CNAM, Paris Schmas XML 75
lments Locaux Qualifis et Non-qualifis
-
7/28/2019 Cours XML
75/146
Document XML:
St Andr des Arts
Paris
rue St. Andr des Arts
13
Bernd Amann - CNAM, Paris Schmas XML 76
-
7/28/2019 Cours XML
76/146
Les lments nom, ville, rue, numro ne sont pas qualifis. La clause
elementForm=qualified dans le schma permet de forcer la qualification des lments locaux et,
comme dans une DTD, il nest plus possible davoir deux lments avec le mme nom.
Bernd Amann - CNAM, Paris Schmas XML 77
Extension de Types Complexes
-
7/28/2019 Cours XML
77/146
yp p
Cinmas avec un site Web et un pays (fichier webcountry.xsd):
Bernd Amann - CNAM, Paris Schmas XML 78
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/webcountry.xsdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/webcountry.xsd -
7/28/2019 Cours XML
78/146
R La clause permet dimporter un schma avec le mme domaine nominal cible (target
namespaces).
R Le type est un sous-type du type .
Bernd Amann - CNAM, Paris Schmas XML 79
Utili ti d t t d
-
7/28/2019 Cours XML
79/146
Utilisation de types tendus
Le type dun lment est dfini explicitement avec lattribut xsi:type:
St Andr des Arts
Paris
rue St. Andr des Arts
13
http://www.st-andr.com
Bernd Amann - CNAM, Paris Schmas XML 80
Restriction de Types Complexes
-
7/28/2019 Cours XML
80/146
Cinmas avec une trois sances (fichier seance.xsd):
Dfinition original: minOccurs=0 maxOccurs=unbounded.
Bernd Amann - CNAM, Paris Schmas XML 81
Redfinition de types
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/seance.xsdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/seance.xsd -
7/28/2019 Cours XML
81/146
Cinmas avec une url (chane de caractres) :
Attention: il est possible de crer des conflits avec des types drivs du type redfini: type
cybercinemaType-> deux lments
webaddress)
Bernd Amann - CNAM, Paris Schmas XML 82
-
7/28/2019 Cours XML
82/146
Groupes de substitution
Substitution dlments par dautres lments:
XML schma:
Llment movieTheatre peut remplacer cinma.
Bernd Amann - CNAM, Paris Schmas XML 83
Types et Groupes Abstraits
-
7/28/2019 Cours XML
83/146
S
Schma XML: il est possible de dfinir des lments abstraits qui ne peuvent pas tre instantisdirectement:
...
S Document XML: le type doit tre spcifi par lattribut xsi:type:
Bernd Amann - CNAM, Paris Schmas XML 84
-
7/28/2019 Cours XML
84/146
Valeur unique
T Lidentificateur dun film doit tre unique:
film
film_id
T Les valeurs des element et sont des expressions XPath.
T La valeur de doit tre unique lintrieur de chaque lment slectionn par le slecteur.
Bernd Amann - CNAM, Paris Schmas XML 85
Cls et Rfrences
-
7/28/2019 Cours XML
85/146
U Une cl est unique (filmcli attribut cl dune relation):
film
@film_id
U
Rfrence (filmref attribut cl etrangre dune relation)
sance
@ref_film
-
7/28/2019 Cours XML
86/146
Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 87
-
7/28/2019 Cours XML
87/146
Slectionner des Fragments XML
XPath est utilis par
V XML Schma pour crer des cls et rfrences
V
XLink pour crer des rfrences (liens) vers des documents/fragments XMLV XSL pour transformer des documents XML
Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 88
-
7/28/2019 Cours XML
88/146
XPath et XPointer
W XPath:
fond sur une reprsentation arborescente (DOM) du document XML
objectif : rfrencer noeuds (lments, attributs, commentaires, ...) dans un document XML
W XPointer:
extension de XPath pour rfrencer des fragments qui ne correspondent pas forcment des
noeuds entiers
Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 89
Ch i d P i i
-
7/28/2019 Cours XML
89/146
Chemins de Positionnement
Un chemin (de positionnement) est une squence dtapes de positionnement (location step) par rapport
un ensemble de noeuds donnes (contexte) :
axe::test/axe::test/.../axe::test
1. laxe slectionne un ensemble de noeuds par rapport leur position dans un document (arbre) ou
relative un contexte.
2. le test est valu pour chaque noeud dans la slection
3. chaque tape cre un nouveau contexte pour ltape suivante
Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 90
-
7/28/2019 Cours XML
90/146
Contexte dvaluation
Un contexte dvaluation est dfini par
X une liste de noeuds,
X un noeud dans cette liste,
X
un ensemble de liaisons de variables (non utilis dans la version actuelle),X un ensemble de fonctions (fonctions de XPath et XPointer),
X un ensemble de dclarations de domaines de nommage.
Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 91
-
7/28/2019 Cours XML
91/146
Chemins absolus
Le contexte dvaluation est choisi dune manire absolue :
Y
/: slectionne toute la ressource (avec le prologue)
Y
id(val): lment avec ID=val
Y
here(): lment qui contient le XPointer
Y
origin(): utilisation avec liens externes XLink
Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 92
XPath: Exemples
-
7/28/2019 Cours XML
92/146
XPath: Exemples
` La racine du document: /
` Tous les fils de type film de la racine du document XML :
/child::film
` Tous les fils de type film (dun contexte donn) :
child::film
` Tous les (premiers) fils de type film qui suivent un fils de type sance :
child::sance/following-sibling::film[position()=1]
Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 93
XPath: Axes
-
7/28/2019 Cours XML
93/146
Axes relatifs un noeud (lment, PI, commentaire, texte, CDATA):a child, descendant, ancestor, parent,
a preceding-sibling, following-sibling,
a preceding, following,
a
attribute,a self
Commentaire: Dans un lment XML, lensemble {self::*, preceding-sibling::*,
following-sibling::*, descendant::*, ancestor::*} forme une partition des lments
du document XML.
Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 94
XP h T
-
7/28/2019 Cours XML
94/146
XPath : Tests
Tests sur
b les noms des lments et des attributs
b le type du noeud (texte, comment, PI, *)
b
la position : [position()=N]b le nombre doccurrences : [count(child::acteur) > 1]
b la structure locale : chemins imbriqus avec connecteurs logiques (qualifiers)
-
7/28/2019 Cours XML
95/146
Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 96
-
7/28/2019 Cours XML
96/146
XPath : Syntaxe simplifie
XPath Syntaxe simplifie
/child::film/child::acteur /film/acteur
/child::cinma/descendant::acteur /cinma//acteur
/descendant::* //*
/descendant::film[@anne=2000] //film[@anne=2000]
Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 97
-
7/28/2019 Cours XML
97/146
XPointer: Extensions de XPath
d deux axes nouveaux : range:: et string:: (seulement comme dernire tape de positionnement)
d deux chemins absolues nouveaux : origin() et here()
d un nouveau prdicat unique pour vrifier si une position est unique (un seul noeud dans le contexte)
Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 98
-
7/28/2019 Cours XML
98/146
XPointer: Axes range:: et string::
e Slection dune rgion dans le document. Exemple : les trois premiers noeuds fils de llment a23.
id("a23")/range::child[1],following-sibling[2]
e Slection dune sous-chane dans le document (marqueurs sont ignors). Exemple : Slectionne la
troisime occurrence de la chane American Beauty :
string::3,"American Beauty"
Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 99
-
7/28/2019 Cours XML
99/146
Chemins robustes
Problmes : comment crer des chemins/pointeurs robustes (insensibles la modification dun
document)?
f cls : utiliser id(val)
f localit : position absolue le plus prs possible de la position finale
f typage : utilisation types dlments et noms dattributs
Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 100
-
7/28/2019 Cours XML
100/146
Liens XML: XLink
Bernd Amann - CNAM, Paris Liens XML: XLink 101
XLink
-
7/28/2019 Cours XML
101/146
Recommandation W3C (candidate: Juillet 2000) :
g spcifier des liens indpendamment des donnes (liens externes, bases de liens) (impossible dans
HTML)
g crer des liens multi-directionnels (HTML: unidirectionnel)
g crer des liens entre deux ressources et plus (HTML: deux ressources)
g dfinir une smantique de parcours (insrer, remplacer, nouvelle fentre, parcours automatique)
(HTML: dfini par lapplication/browser)
Bernd Amann - CNAM, Paris Liens XML: XLink 102
-
7/28/2019 Cours XML
102/146
XLink Terminologie
h Ressource : information ou service qui peut tre rfrenc (document, image, scripte cgi, portail)
ressource externe (remote): adresse contient une URI
h
Lien: relation explicite entre deux ou plusieurs ressourcesh Arc: dfinition du comportement dun lien: direction de parcours, affichage, ...
Bernd Amann - CNAM, Paris Liens XML: XLink 103
-
7/28/2019 Cours XML
103/146
Adresser des Ressources XML
i URL: http://www.officiel.com/index.xml
i URL+XPath: http://www.officiel.com/index.xml#/cinma//film
i FPI (formal public identifier)
i IDREF/IDREFS: a123
i Requtes XML
Bernd Amann - CNAM, Paris Liens XML: XLink 104
Exemple
-
7/28/2019 Cours XML
104/146
Lien simple vers le document brazil.xml. Le document est affich dans une nouvelle fentre :
xlink:type=simple
xlink:href=brazil.xml
xlink:role=film
xlink:title=Brazilxlink:show=new
xlink:actuate=onRequest>
Brazil
Bernd Amann - CNAM, Paris Liens XML: XLink 105
lments de Lien
-
7/28/2019 Cours XML
105/146
Les diffrents types dlments sont distingus par la valeur de lattribut type :
p
simple: liens entre deux ressources (liens HTML)
p
extended: liens complexes entre plusieurs ressources (bases liens). Un lien tendu contient
directement les lments de lien suivants :
locator: identification de ressources externes arc: rgles de parcours pour deux ressources (from-to)
resource: ressources internes
title: tiquettes (pour laffichage)
Bernd Amann - CNAM, Paris Liens XML: XLink 106
Attributs dun lment
-
7/28/2019 Cours XML
106/146
q Attribut de typage: type dlment de lien
q Attribut dadressage : href: CDATA (e.g. http://www.officiel.com)
q Attributs smantiques: role, arcrole, title
q Attributs comportementaux :
show: (new|replace|embed|undefined)
actuate: (onload|onRequest|undefined)
q Attributs de parcours : from, to, label
Bernd Amann - CNAM, Paris Liens XML: XLink 107
Exemple : Lien HTML = Lien XML simple
r Dfinition de llment A de HTML:
-
7/28/2019 Cours XML
107/146
xml:link CDATA #FIXED simple
inline CDATA #FIXED true
href CDATA #IMPLIED
name ID #IMPLIED
show (replace|new) #IMPLIEDactuate CDATA #FIXED onRequest>
r Lien HTML:
Projet XML
...
Ce projet a pour but ...
Bernd Amann - CNAM, Paris Liens XML: XLink 108
Exemple: lien tendu avec arcs
Une base de liens pour des films :
-
7/28/2019 Cours XML
108/146
Les Films:
Les Rgisseurs:
Bernd Amann - CNAM, Paris Liens XML: XLink 109
-
7/28/2019 Cours XML
109/146
Contenu et Prsentation: CSS et XSL
Bernd Amann - CNAM, Paris Afficher du HTML: Feuilles de Style CSS 110
Feuilles de Style CSS
-
7/28/2019 Cours XML
110/146
Feuilles de Style CSS
s CSS: Cascading Style Sheets
s Initialement conues pour HTML
s CSS-1: publi en 1996 par le W3C, CSS-2: mai 1998
s CSS sapplique parfaitement XML
s On ne donnera quun aperu de ce langage (la spcification compte 358 pages!)
-
7/28/2019 Cours XML
111/146
Bernd Amann - CNAM, Paris Afficher du HTML: Feuilles de Style CSS 112
-
7/28/2019 Cours XML
112/146
Exemple
u Document HTML: Samples/officiel-avec-css.html
u
Feuille de style: Samples/officiel.css
Bernd Amann - CNAM, Paris Afficher du HTML: Feuilles de Style CSS 113
Types de mdia
v Les feuilles de style CSS permettent de spcifier les rgles de ralisation physique de documents sur
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-avec-css.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.csshttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-avec-css.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.css -
7/28/2019 Cours XML
113/146
des supports varis comme les crans dordinateur, les crans miniatures (notepad, tlphoneportable), le papier, les terminaux Braille, la synthse vocale
v Exemple:
@media print {
article {font-size: 10 pt; font-family: Garamond}
}@media screen {
article {font-size: 12 pt; font-family: Arial}
}
@media screen,print {
/* rgles communes */}
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 114
XSL
-
7/28/2019 Cours XML
114/146
w Working draft W3C (avril 1999)
w Efforts antrieurs : XSL sest fortement inspir de CSS (extension: XSL permet la transformation de
la structure) et de DSSSL (SGML)
w Une feuille de style XSL utilise deux langages (la syntaxe est XML) :
XSLT: pour la transformation de la structure du document
Vocabulaire pour la spcification de la prsentation (papier, cran, ...)x
CSS
w XSLT domaine nominal (namespace) = http://www.w3.org/1999/XSL/Transform
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 115
XSLFeuille de Style
-
7/28/2019 Cours XML
115/146
Feuille de Style
XSL
Document XML
Document HTMLXSL Transformation Navigateur Web
XSL Transformation Document PDFAcrobat Reader
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 116
-
7/28/2019 Cours XML
116/146
Example: Officiel des Spectacles
y XML
y Feuille de Style XSL
y
Rsultat Dynamiquey Rsultat Stock
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 117
Fonctions dune Feuille de Style
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-1.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-1.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-1.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-1.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-1.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-1.html -
7/28/2019 Cours XML
117/146
Gnration de texte
Suppression de contenu (noeuds)
Dplacer texte (noeuds)
Dupliquer texte (noeuds)
Trier
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 118
-
7/28/2019 Cours XML
118/146
Les Composants de XSL
Langage de programmation (avec une syntaxe XML) : variables, fonctions (JavaScript), rcursion, ...
Extension de XPath pour la slection de noeuds et le choix de traitement dun noeud
Rsultat peut ne pas tre bien-form (racine nest pas unique)
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 119
Structure dune feuille XSL
-
7/28/2019 Cours XML
119/146
Une feuille XSL est un ensemble de rgles
Une rgle associe un motif un constructeur ou modle
Le motif dfinit la structure laquelle peut sappliquer cette rgle
Le constructeur dfinit la structure du sous-arbre gnr lors de lactivation de la rgle
Si plusieurs rgles sappliquent un lment, la plus spcifique est retenue
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 120
Rgles XSL : Exemple
Gnrer une liste HTML avec les titres et les annes de production de films :
-
7/28/2019 Cours XML
120/146
-
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 121
Officiel OL
LI LIXSL
-
7/28/2019 Cours XML
121/146
B
Brazil 1986
film
anne
film
titre anne titre
Matrix 1999
Brazil
- 1986 B
Matrix
- 1999
Brazil- 1986Matrix- 1999
Linarisation
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 122
Rgles XSL : Modle de Traitement
-
7/28/2019 Cours XML
122/146
Une liste de noeuds (contexte) est traite pour crer un fragment rsultat
Pour chaque noeud, on :
slectionne le motif qui correspond au noeud,
value le constructeur (rcursivement),
ajoute le fragment gnr pour chaque noeud dans le rsultat
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 123
-
7/28/2019 Cours XML
123/146
Rgles XSL : Rcursion infinie
Problme : bien que XSL travaille sur des arbres (sans cycles) il est possible de crer des boucles infinies
(goto) :
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 124
Rsolution de conflits: Exemple
Cinmas parisien en gras avec la rue et autres cinmas avec le nom de la ville (XML, XSL,
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-4.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-4.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.html -
7/28/2019 Cours XML
124/146
rsultat dynamique, rsultat stock)
()
()
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.html -
7/28/2019 Cours XML
125/146
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 126
Selection de Rgles: Modes
L tt ib t mode t d h i i l li it t L i i t h i it l d i l
-
7/28/2019 Cours XML
126/146
Lattribut mode permet de choisir une rgle explicitement. Lexpression suivante choisit la deuxime rgle( XML, XSL, rsultat dynamique, rsultat stock):
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 127
Rgle = Procdure avec Paramtres
La liste des cinmas ( XML, XSL, rsultat dynamique, rsultat stock):
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-3.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-3.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-3.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-3.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-3.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-3.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-5.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-5.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-5.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-5.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-5.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-5.html -
7/28/2019 Cours XML
127/146
Nom inconnu
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 128
Structures de controle: for-each, if, choose
La liste des cinmas ( XML, XSL, rsultat dynamique, rsultat stock):
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-6.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-6.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-6.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-6.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-6.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-6.html -
7/28/2019 Cours XML
128/146
La liste des cinmas
()
()
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 129
T i
-
7/28/2019 Cours XML
129/146
Trier
Cinmas par ordre alphabtique (XML, XSL, rsultat dynamique, rsultat stock):
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 130
Cls
Les cls sont une
gnralisation du mechanisme ID/IDREF, et permettent un
accs rapide
XML F ill d S l XSL l d i l k
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-8.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-8.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-8.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-8.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-8.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-8.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-11.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-11.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.html -
7/28/2019 Cours XML
130/146
XML, Feuille de Style XSL, rsultat dynamique, rsultat stock :
...
Film inconnu
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 131
Gnration dIdentificateurs dObjets
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-11.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-11.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.html -
7/28/2019 Cours XML
131/146
Cration de liens HTML (XML, XSL, rsultat dynamique, rsultat stock):
-
...
....
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 132
Objets de Formatage (FO): Exemple PDF
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-9.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-9.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-9.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-9.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-9.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-9.html -
7/28/2019 Cours XML
132/146
Objets de Formatage (FO): Exemple PDF
XML
Feuille de Style XSL
Rsultat Dynamique
Rsultat Stock PDF
Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 133
http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-10.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-10.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-10.pdfhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-10.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-10.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-10.pdf -
7/28/2019 Cours XML
133/146
XML-QL : Un langage de requtes pour XML
Bernd Amann - CNAM, Paris Interrogation de XML 134
XML-QL
Proposition Workshop W3C, WWW99, Logiciel
http://www.w3.org/TR/1998/NOTE-xml-qlhttp://www.research.att.com/~mff/xmlql/doc/files/final.htmlhttp://www.research.att.com/~mff/xmlql/doc/http://www.w3.org/TR/1998/NOTE-xml-qlhttp://www.research.att.com/~mff/xmlql/doc/files/final.htmlhttp://www.research.att.com/~mff/xmlql/doc/ -
7/28/2019 Cours XML
134/146
Proposition Workshop W3C, WWW99, Logiciel
Syntaxe XML
Expressions de chemins et motifs
Templates pour la construction du rsultat
Complet dans le sens relationnel (algbre/calcul) Modle de donnes : graphe avec tiquettes sur les arcs (XML : noeuds tiquets)
Autres langages: XQL, Quilt
Bernd Amann - CNAM, Paris Interrogation de XML 135
Exemple
Les films quon peut voir lOdon :
http://www.w3.org/TR/1998/NOTE-xml-qlhttp://www.research.att.com/~mff/xmlql/doc/files/final.htmlhttp://www.research.att.com/~mff/xmlql/doc/http://www.w3.org/TandS/QL/QL98/pp/xql.htmlhttp://www.almaden.ibm.com/cs/people/chamberlin/quilt_euro.htmlhttp://www.w3.org/TR/1998/NOTE-xml-qlhttp://www.research.att.com/~mff/xmlql/doc/files/final.htmlhttp://www.research.att.com/~mff/xmlql/doc/http://www.w3.org/TandS/QL/QL98/pp/xql.htmlhttp://www.almaden.ibm.com/cs/people/chamberlin/quilt_euro.html -
7/28/2019 Cours XML
135/146
Les films qu on peut voir l Odon :
where
Odon
$T
in www.officiel.com/cinemas.xml
construct $T
Rsultat nest pas bien-form.
Bernd Amann - CNAM, Paris Interrogation de XML 136
Construction de rsultats
Les cinmas, sances et les films (relation) :
-
7/28/2019 Cours XML
136/146
where $N
$T
in www.officiel.com/cinemas.xml
construct
$N $H $T
Transformation de lattribut heure en lment.
-
7/28/2019 Cours XML
137/146
Bernd Amann - CNAM, Paris Interrogation de XML 138
Requtes imbriques : Regroupement
Chaque film avec les cinmas o on peut le voir :
-
7/28/2019 Cours XML
138/146
where $F
in www.officiel.com/cinemas.xml,
construct
$F
where $N
$F
in www.officiel.com/cinemas.xml
construct $N
Bernd Amann - CNAM, Paris Interrogation de XML 139
Syntactic Sugaring
where ...
-
7/28/2019 Cours XML
139/146
g g
element_as $B in URL
construct ...
$B est affect par le noeud ...
where ...
content_as $B in URL
construct ...
$B est affect par le contenu du noeud ...
Bernd Amann - CNAM, Paris Interrogation de XML 140
Jointures
Les cinmas qui montrent le mme film que lOdon :
where Odeon
-
7/28/2019 Cours XML
140/146
where Odeon
$T
content_as C1,
$N
$T
content_as C2 in www.officiel.com/cinemas.xml,
C1 C2
construct $N
Bernd Amann - CNAM, Paris Interrogation de XML 141
Interrogation du schma
-
7/28/2019 Cours XML
141/146
Les lments avec un attribut id = &123 :
where $C
construct $C
Bernd Amann - CNAM, Paris Interrogation de XML 142
Expressions rgulires
Les descendants de Charlemagne :
-
7/28/2019 Cours XML
142/146
where $N
$E
construct $E
Ne pas confondre avec la smantique horizontale de (enfant|child)* dans une DTD.
Bernd Amann - CNAM, Paris Interrogation de XML 143
Integration
Les films avec les cinmas et les critiques :h fil i $ / i i $C / /
-
7/28/2019 Cours XML
143/146
where $T $C
in www.cahier.com/films.xml
construct $T
$C
( where $N
$T
in www.officiel.com/cinemas.xml
construct $N )
Bernd Amann - CNAM, Paris Interrogation de XML 144
Integration: Fonctions de Skolem
Les films avec les cinmas et les critiques :
{where $T $C
in www.cahier.com/films.xml
construct
-
7/28/2019 Cours XML
144/146
construct
$T
$C
}
{where $N
$T
in www.officiel.com/cinemas.xml
construct $N
}
Bernd Amann - CNAM, Paris Interrogation de XML 145
Ordre
-
7/28/2019 Cours XML
145/146
Deux smantiques :
modle sans ordre
modle avec ordre :
le filtrage (pattern matching) dans la clause where est fait sans ordre le rsultat (clause construct) est tri par rapport lordre dans le motif de la clause where
Bernd Amann - CNAM, Paris Interrogation de XML 146
Ordre : Exemple
where $B $C
construct $B $C
-
7/28/2019 Cours XML
146/146
Document : b1c1b2b3c2
Rsultat :
b1c1
b1c2b2c1
b2c2
b3c1
b3c2