Escolar Documentos
Profissional Documentos
Cultura Documentos
XML
Bernd Amann amann@cnam.fr Conservatoire National des Arts et Mtiers Paris October 17, 2000
*
List of Slides 2 *
11 Introduction 12 La rvolution Internet 13 Nouvelles applications Web 14 Les consquences 15 HTML 16 Exemple 18 Structure, Contenu et Prsentation 19 Bibliographie 20 Bibliographie 22 XML 23 Le langage de marquage XML 24 Le World Wide Web Consortium (W3C) 25 Historique
26 XML = Modle Documents Structurs 27 XML = Syntaxe pour Transfert de Donnes 28 Le Web et les Bases de Donnes 29 Notion de balisage structurel 30 Un document XML 31 Explications 32 DTD : Dclaration de la Structure dun Document XML 33 Dclaration du Type de Document 34 DTD: Utilisation 35 Rsum 36 Documents XML valides et bien-forms 37 DTD: Pourquoi Validation? 38 ELEMENT : Dclaration du Type de lment 39 ATTLIST : Dclaration des Attributs 40 ATTLIST : Mode 41 ATTLIST: Exemple
42 Entits gnrales et Entits paramtres 43 Entits externes 44 Formal Public Identier 45 NOTATION : entits non-XML 46 Domaines nominaux (namespace) 47 Domaines nominaux: Exemple 48 Problme : comment valider un document XML ? 49 Domaines nominaux: Utilisation contrle 50 Autres Caractristiques de XML 51 DTD : Quelques remarques 52 XML Schema 53 XML: Syntaxe pour Transfert de Donnes 54 Schema XML et DTD: Comparaison 55 Schema XML : Exemple 57 XML Schema - Exemple 58 Types Simples
59 Dnition de Types Simples 60 Restrictions de Types Simples 61 Restriction de Types Simples par Motifs 62 Listes de Valeurs de Type Simple 63 Restriction de Listes par Longueur 64 Union de Types Simples 65 Types Complexes, Elments, Attributs 66 Type Complexe: Exemple 67 Types Simples avec Attributs 69 Contenu mlang 70 Contenu Vide 71 Groupes: Exemple 72 Groupes dAttributs 73 Valeurs Nulles 74 Domaines Nominaux 75 lments Locaux Qualis et Non-qualis
77 Extension de Types Complexes 79 Utilisation de types tendus 80 Restriction de Types Complexes 81 Rednition de types 82 Groupes de substitution 83 Types et Groupes Abstraits 84 Valeur unique 85 Cls et Rfrences 86 Adresser des Fragments XML: XPath et XPointer 87 Slectionner des Fragments XML 88 XPath et XPointer 89 Chemins de Positionnement 90 Contexte dvaluation 91 Chemins absolus 92 XPath: Exemples 93 XPath: Axes
94 XPath : Tests 95 XPath : Exemples de tests 96 XPath : Syntaxe simplie 97 XPointer: Extensions de XPath 98 XPointer: Axes range:: et string:: 99 Chemins robustes 100 Liens XML: XLink 101 XLink 102 XLink Terminologie 103 Adresser des Ressources XML 104 Exemple 105 lments de Lien 106 Attributs dun lment 107 Exemple : Lien HTML = Lien XML simple 108 Exemple: lien tendu avec arcs 109 Contenu et Prsentation: CSS et XSL
110 Feuilles de Style CSS 111 Principes de base 112 Exemple 113 Types de mdia 114 XSL 116 Example: Ofciel des Spectacles 117 Fonctions dune Feuille de Style 118 Les Composants de XSL 119 Structure dune feuille XSL 120 Rgles XSL : Exemple 122 Rgles XSL : Modle de Traitement 123 Rgles XSL : Rcursion innie 124 Rsolution de conits: Exemple 125 Rsolution de conits 126 Selection de Rgles: Modes 127 Rgle = Procdure avec Paramtres
128 Structures de controle: for-each, if, choose 129 Trier 130 Cls 131 Gnration dIdenticateurs 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 rsultats 137 Requtes imbriques : lments optionnels 138 Requtes imbriques : Regroupement 139 Syntactic Sugaring 140 Jointures 141 Interrogation du schma 142 Expressions rgulires 143 Integration
10
11
Introduction
Introduction
12
La rvolution Internet
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,...
Introduction
13
Commerce lectronique: Services: rservation de train, mto, ... Bourse en-ligne B2B, B2C
Introduction
14
Les consquences
HTML est insufsant pour la reprsentation des donnes qui sont changes sur Internet
Solution:
XML
HTML - Rappel
15
HTML
dernire version: XHTML 1.0 recommandation W3C changement majeur depuis HTML 4.0: HTML devient une application de XML
HTML - Rappel
16
Exemple
ofciel.html: <HTML> <HEAD><TITLE>Officiel du Spectacle</TITLE></HEAD> <BODY BGCOLOR="yellow"> <H1>Officiel du Spectacle</H1> <H2>Cinmas</H2> <UL> <LI><B>St. Andr des Arts</B>, 13, rue St. Andr des Arts, Paris <OL> <LI>18:00 - <A HREF="#brazil">Brazil</A></LI> <LI>20:30 - Matrix</LI> </OL> </LI> </UL>
HTML - Rappel
17
<H2>Films:</H2> <UL> <LI><A NAME="brazil"><B>Brazil</B> avec: <OL> <LI>Jonathan Pryce</LI> <LI>Robert De Niro</LI> </OL> </LI> </UL> </BODY> </HTML>
HTML - Rappel
18
Dans un document HTML on mlange gnralement le contenu et la prsentation: le titre dun lm est entre les balises <B>...</B>, la couleur de la page est spci dans la balise <BODY BGCOLOR=...>, ... ==> 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 lm, ladresse du cinma etc... ==> Utilisation de balises spciques une application: XML.
HTML - Rappel
19
Bibliographie
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 and XML
Langages de Requtes:
Bibliographie
21
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
Bibliographie
22
XML
Introduction XML
23
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
Introduction XML
24
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
Introduction XML
25
Historique
1993: premiers travaux sur ladaptation des techniques SGML au Web (Sperberg).
Introduction XML
26
ldition de documents XML est simple (un diteur texte standard suft)
la structure dun document peut tre prdnie par une grammaire (DTD) et analyse par un parseur
Introduction XML
27
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.
Introduction XML
28
WEB
HTML IMAGES SON
BASES DE DONNEES
RELATIONS OBJETS SCHEMAS
XML
Introduction XML
29
Principe cl de SGML
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
Introduction XML
30
Un document XML
Fichier ofciel.xml:
<Officiel> Ce document contient des informations sur des cinmas. <cinma> <nom> St. Andr des Arts </nom> <adresse> <ville> Paris </ville> <rue> rue St. Andr des Arts </rue> <numro> 13 </numro> </adresse> <sance heure = 18:00 ref_film = &13 /> <sance heure = 20:00 ref_film = &14 /> </cinma> Voici linformation sur le film Brazil : <film film_id = &13 actors = &156 &158 /> <titre> Brazil </titre><anne> 1986 </anne> </film></Officiel>
Introduction XML
31
Explications
une sance contient un attribut ref_film qui permet de rfrencer dautres lments dans le mme document. Remarque : les rfrences ne sont pas types.
32
33
34
DTD: Utilisation
On ajoute au dbut du document XML (ofciel.xml): <!DOCTYPE SYSTEM officiel.dtd [ <!ATTLIST salle places NDATA #IMPLIED> ]>
35
Rsum
Un document XML est dni par:
une structure logique : prologue : 1. instructions dvaluation : e.g. <?xml version=1.0> 2. dclaration du type de document (DTD) : <!DOCTYPE ...> document type dnition : obtenu par le parseur partir de la dclaration de type de document lment racine suivi dautres lments pilogue
36
document XML valide : DTD existe respecte la DTD (grammaire, lment racine, spcications dattributs) respecte lintgrit rfrentielle :
toutes les valeurs dattributs de type ID sont distinctes toutes les rfrences sont valides
37
le consommateur peut sparer la vrication syntaxique des donnes (parseur) de la logique de lapplication
38
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 cp ::= choice seq ::= [choice | seq] [? | * | +]? [Name | choice | seq] [? | * | +]? ::= ( cp [ | cp ]* ) ::= ( cp [ , cp ]* )
contenu mixte : expression rgulire sur les noms dlments et #PCDATA : contenu_mixed ::= (#PCDATA [| Name]* )* | (#PCDATA)
39
Syntaxe : <!ATTLIST lment nom type mode [default] > Types dattributs (type): 1. String : CDATA
!
2. Enumerated : squence de valeurs alternatives spares par 3. ID, IDREF, IDREFS : identication et rfrences 4. ENTITY/ENTITIES : nom dune entit non analyse dclare ailleurs 5. NMTOKEN/NMTOKENS : chane de caractres sans blancs
!
40
ATTLIST : Mode
Modes dattributs:
"
41
ATTLIST: Exemple
heure NMTOKEN #REQUIRED ref_film IDREF #REQUIRED> <!ATTLIST film film_id ID #REQUIRED actors IDREFS #IMPLIED langue (AN|FR|AL|ES|IT) #IMPLIED> <!ATTLIST adresse ville CDATA #IMPLIED Paris>
<!ATTLIST sance
42
43
Entits externes
Adressage:
$
44
dbute par +
45
rfrence une entit de type notation seulement possible comme valeur dattribut
<!DOCTYPE exemple [ <!NOTATION gif SYSTEM /usr/local/bin/xv > <!ENTITY myphoto SYSTEM ./moi.gif NDATA gif > <!ELEMENT person EMPTY > <!ATTLIST person photo NOTATION (gif) #IMPLIED> ]> <person photo=myphoto >
46
'
Un domaine nominal XML (namespace) est une collection de noms dlments ou noms dattributs (identie par un URI).
'
Utilisation: viter les conits de noms (par exemple, quand on utilise plusieurs DTD externes)
47
<?xml version=1.0?> <film xmlns:fi=http://www.pariscope.fr/films.dtd> <acteur> <nom> George Clooney </nom> </acteur> </film> <theatre xmlns:th=http://www.comedie.fr/pieces.dtd> <acteur nom=Juliette Binoche /> </theatre>
(
48
document
49
Les acteurs de cinma et de thtre sont distingus dans le contexte de leurs document valide :
<!DOCTYPE officiel [ <!ELEMENT officiel (film | theatre)*> <!ELEMENT film (acteur)*> <!ATTLIST film xmlns CDATA #FIXED http://.../films.dtd> <!ELEMENT theatre (acteur)*> <!ATTLIST theatre xmlns CDATA #FIXED http://.../pieces.dtd> ]> <film> <acteur><nom> George Clooney </nom> </acteur></film> <theatre> <acteur nom=Juliette Binoche /> </theatre>
50
instructions dvaluation (processing instructions - PI) : <?application arguments ?> e.g. pour xml: version, encoding, standalone?
1
sections non-interprts <![CDATA X]> : texte X nest pas analys par le parseur
1
->
51
DTD = modle de donnes document XML = arbre ordonn types atomiques limits (#PCDATA, ID, IDREF, ...)
3
XML schema
XML schema
XML schema
Schmas XML
52
XML Schema
Schmas XML
53
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
Schmas XML
54
sparation entre balises et types: diffrents lments peuvent partager le mme type (modles de contenu)
5
mcanismes de documentation
Schmas XML
55
Schmas XML
56
<xsd:complexType name=CinemaType> <xsd:sequence> <xsd:element name=nom type=xsd:string/> <xsd:element name=adresse type=AdresseType/> <xsd:element name=sance type=SanceType minOccurs=0 maxOccurs=unbounded/> </xsd:sequence> </xsd:complexType> </xsd:schema>
Schmas XML
57
Schmas XML
58
Types Simples
DTD: un seul type dlment (#PCDATA) et 10 types dattributs Schma XML: 43 types atomiques
7
xsd:boolean
7
xsd:language, xsd:uriReference
7
Schmas XML
59
DTD: #PCDATA
8
XML schma : Restriction de type <xsd:simpleType name=anneFilm> <xsd:restriction base=xsd:integer> <xsd:minInclusive value=1900/> <xsd:maxInclusive value=2000/> </xsd:restriction> </xsd:simpleType>
Schmas XML
60
numration,
9
Schmas XML
61
DTD: #PCDATA
@
Schma XML: Similaire aux expressions rgulires de Perl <xsd:simpleType name=numTl> <xsd:restriction base=xsd:string> <xsd:pattern value=+33-(0)-\d(-\d{2}){3}/> </xsd:restriction> </xsd:simpleType>
Schmas XML
62
XML Schma: <xsd:simpleType name=listeNumTl> <xsd:list itemType=numTl/> </xsd:simpleType> <xsd:element name=Annuaire type=listeNumTl/>
Schmas XML
63
XML Schma: <xsd:simpleType name=cinqNumTl> <xsd:restriction base=listNumTl> <xsd:length value=5/> </xsd:restriction> </xsd:simpleType>
Schmas XML
64
XML schma: <xsd:simpleType name=euroNumTl> <xsd:union memberTypes=francTl gerTl belTl .../> </xsd:simpleType>
Schmas XML
65
Dclaration dlments: <xsd:element name type contraintes [value]/> <xsd:element ref contraintes/> Contraintes: minOccurs, maxOccurs, fixed
D
Attributs: <xsd:attribut name use [value]/> Use: required, optional, fixed, prohibited
Schmas XML
66
XML Schma:
<xsd:complexType name=FilmType> <xsd:sequence> <xsd:element name=titre type=xsd:string/> <xsd:element name=anne> <xsd:simpleType> <xsd:restriction base=xsd:year> <xsd:maxInclusive value=2000/> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType>
Schmas XML
67
Schmas XML
68
XML schma: les types simples (e.g. xsd:string) nont pas dattributs: <xsd:element name=titre> <xsd:complexType> <xsd:simpleContent> <xsd:extension base=xsd:string> <xsd:attribute name=langue type=xsd:string /> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element>
Schmas XML
69
Contenu mlang
lment XML:
<Officiel> Cinmas: </Officiel>
H
<cinema> ...
</cinema> Films:
<film> ...
</film>
Schmas XML
70
Contenu Vide
Schma XML: <xsd:element name=film> <xsd:complexType> <xsd:complexContent> <xsd:restriction base=xsd:anyType> <xsd:attribute name=titre type=xsd:string/> <xsd:attribute name=anne type=anneFilm/> </xsd:restriction> </xsd:complexContent> </xsd:complexType> </xsd:element>
Schmas XML
71
Groupes: Exemple
XML schma:
<xsd:element name=A> <xsd:complexType> <xsd:group minOccurs=1 maxOccurs=unbounded> <xsd:sequence> <xsd:group minOccurs=0 maxOccurs=unbounded> <xsd:choice> <xsd:element name=B xsd:type=xsd:string/> <xsd:element name=C xsd:type=xsd:string/> </xsd:choice> </xsd:group> </xsd:sequence> </xsd:sequence> </xsd:complexType> </xsd:element>
Schmas XML
72
Groupes dAttributs
Ladresse dun cinma ou dune personne est compose des mmes attributs (partage) : <xsd:element name=cinema> ... <xsd:attributeGroup ref=Adresse/> </xsd:element> <xsd:element name=personne> ... <xsd:attributeGroup ref=Adresse/> </xsd:element> <xsd:attributeGroup name=Adresse> <xsd:attribute name=ville type=xsd:string/> <xsd:attribute name=rue type=xsd:string/> <xsd:attribute name=numro type=xsd:decimal/> </xsd:attribute>
Schmas XML
73
Valeurs Nulles
xsi:null est dni dans le domaine de noms pour des instances (http://www.w3.org/2000/10/XMLSchema-instance).
Schmas XML
74
Domaines Nominaux
<schema xmlns=http://www.w3.org/1999/XMLSchema targetNamespace=http://www.officiel.com/namespace xmlns:officiel=http://www.officiel.com/namespace> <element name=cinema> <complexType type=cinemaType content=elementOnly> <element name=nom type=string/> <element ref=officiel:adresse/> <sequence minOccurs=0 maxOccurs=unbounded> <element ref=officiel:seance/> </sequence> </complexType> </element> </schema>
Schmas XML
75
Schmas XML
76
Les lments nom, ville, rue, numro ne sont pas qualis. La clause elementForm=qualified dans le schma permet de forcer la qualication des lments locaux et, comme dans une DTD, il nest plus possible davoir deux lments avec le mme nom.
Schmas XML
77
Schmas XML
78
La clause <include> permet dimporter un schma avec le mme domaine nominal cible (target namespaces).
R
Schmas XML
79
Schmas XML
80
Schmas XML
81
Rednition de types
Cinmas avec une url (chane de caractres) :
<redefine schemaLocation=http://www.officiel.com/officiel.xsd /> <complexType name=cinemaType> <complexContent> <extension base=officiel:cinemaType> <sequence> <element name=webaddress type=url/> </sequence> </extension> </complexContent> </complexType>
Attention: il est possible de crer des conits avec des types drivs du type redni: type cybercinemaType -> deux lments webaddress)
Schmas XML
82
Groupes de substitution
Substitution dlments par dautres lments: XML schma: <element name=movieTheatre type=officiel:cinemaType substitutionGroup=officiel:cinma/> Llment movieTheatre peut remplacer cinma.
Schmas XML
83
Schma XML: il est possible de dnir des lments abstraits qui ne peuvent pas tre instantis directement: <complexType name=culturalplaceType abstract=true/> <complexType name=cinemaType> <complexContent> <extension base=culturalplaceType/> ... </complexContent> </complexType> <element name=culturalplace type=officiel:culturalplaceType/>
S
Document XML: le type doit tre spci par lattribut xsi:type: <culturalplace xsi:type=cinemaType/>
Schmas XML
84
Valeur unique
Lidenticateur dun lm doit tre unique: <unique name=toto> <selector>film</selector> <field>film_id</field> </unique>
T
Les valeurs des element <selector> et <field> sont des expressions XPath.
T
La valeur de <field> doit tre unique lintrieur de chaque lment slectionn par le slecteur.
Schmas XML
85
Cls et Rfrences
Une cl est unique (lmcli attribut cl dune relation): <key name=filmcl> <selector>film</selector> <field>@film_id</field> </key>
U
Rfrence (lmref attribut cl etrangre dune relation) <keyref name=filmref refer=filmcl> <selector>sance</selector> <field>@ref_film</field> </keyref>
Schmas XML
86
87
XLink pour crer des rfrences (liens) vers des documents/fragments XML
V
88
XPath et XPointer
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
89
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
90
Contexte dvaluation
Un contexte dvaluation est dni par
X
91
Chemins absolus
Le contexte dvaluation est choisi dune manire absolue :
Y
92
XPath: Exemples
La racine du document: /
`
Tous les (premiers) ls de type film qui suivent un ls de type sance : child::sance/following-sibling::film[position()=1]
93
XPath: Axes
Axes relatifs un noeud (lment, PI, commentaire, texte, CDATA):
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.
94
XPath : Tests
Tests sur
b
la position : [position()=N]
b
95
96
97
deux axes nouveaux : range:: et string:: (seulement comme dernire tape de positionnement)
d
un nouveau prdicat unique pour vrier si une position est unique (un seul noeud dans le contexte)
98
Slection dune rgion dans le document. Exemple : les trois premiers noeuds ls 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"
99
Chemins robustes
Problmes : comment crer des chemins/pointeurs robustes (insensibles la modication dun document)?
f
100
101
XLink
Recommandation W3C (candidate: Juillet 2000) :
g
spcier des liens indpendamment des donnes (liens externes, bases de liens) (impossible dans HTML)
g
crer des liens entre deux ressources et plus (HTML: deux ressources)
g
dnir une smantique de parcours (insrer, remplacer, nouvelle fentre, parcours automatique) (HTML: dni par lapplication/browser)
102
XLink Terminologie
Ressource : information ou service qui peut tre rfrenc (document, image, scripte cgi, portail) ressource externe (remote): adresse contient une URI
h
103
URL: http://www.ofciel.com/index.xml
i
URL+XPath: http://www.ofciel.com/index.xml#/cinma//lm
i
IDREF/IDREFS: a123
i
Requtes XML
104
Exemple
Lien simple vers le document brazil.xml. Le document est afch dans une nouvelle fentre : <film xmlns:xlink=http://www.w3.org/1999/xlink> xlink:type=simple xlink:href=brazil.xml xlink:role=film xlink:title=Brazil xlink:show=new xlink:actuate=onRequest> Brazil </film>
105
lments de Lien
Les diffrents types dlments sont distingus par la valeur de lattribut type :
p
extended: liens complexes entre plusieurs ressources (bases liens). Un lien tendu contient directement les lments de lien suivants : locator: identication de ressources externes arc: rgles de parcours pour deux ressources (from-to) resource: ressources internes title: tiquettes (pour lafchage)
106
107
Dnition de llment A de HTML: <!ELEMENT A ANY> <!ATTLIST A xml:link CDATA #FIXED simple inline CDATA #FIXED true href CDATA #IMPLIED name ID #IMPLIED show (replace|new) #IMPLIED actuate CDATA #FIXED onRequest>
r
Lien HTML: <A HREF=#projet_xml>Projet XML</A> ... <A NAME=projet_xml/>Ce projet a pour but ...
108
109
110
111
Principes de base
Exemple: titre { font-weight: bold; font-size: 14pt font-family: Garamond; font-style: normal }
t
112
Exemple
113
Types de mdia
Les feuilles de style CSS permettent de spcier les rgles de ralisation physique de documents sur des supports varis comme les crans dordinateur, les crans miniatures (notepad, tlphone portable), le papier, les terminaux Braille, la synthse vocale
v
Exemple: @media print { article {font-size: } @media screen { article {font-size: } @media screen,print /* rgles communes 10 pt; font-family: Garamond}
114
XSL
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 spcication de la prsentation (papier, cran, ...)
x w
CSS
115
Document XML
XSL Transformation
Document PDF
Acrobat Reader
116
XML
y
Rsultat Dynamique
y
Rsultat Stock
117
Gnration de texte
Trier
118
Langage de programmation (avec une syntaxe XML) : variables, fonctions (JavaScript), rcursion, ...
119
120
121
OL
LI
- 1986
B Matrix
- 1999
titre Brazil
anne 1986
titre Matrix
anne 1999
Linarisation
122
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
123
124
125
Rsolution de conits
Une rgle avec plusieurs alternatives ( dans le motif) est traduit en un ensemble de rgles
Sil restent plusieurs rgles possibles : message derreur ou choix dans lordre inverse des dclarations des rgles (?)
126
127
128
129
Trier
Cinmas par ordre alphabtique (XML, XSL, rsultat dynamique, rsultat stock): <xsl:apply-templates select="cinema"> <xsl:sort data-type="text" select=nom order =ascending/> </xsl:apply-templates>
130
Cls
Les cls sont une
accs rapide
XML, Feuille de Style XSL, rsultat dynamique, rsultat stock : <xsl:key name=filmkey match=//film use=@film_id/> ... <xsl:variable name=ref select=key("filmkey",string(@ref_film))/> <xsl:choose> <xsl:when test="$ref"> <A href=#film{@ref_film}> <xsl:apply-templates select=$ref mode=crossref/> </A> </xsl:when> <xsl:otherwise><b>Film inconnu</b></xsl:otherwise> </xsl:choose>
131
132
XML
Rsultat Dynamique
133
Interrogation de XML
134
XML-QL
Syntaxe XML
Modle de donnes : graphe avec tiquettes sur les arcs (XML : noeuds tiquets)
Interrogation de XML
135
Exemple
Les lms quon peut voir lOdon : where <cinema> <nom> Odon </nom> <seance><film> $T </film> </seance> </cinema> in www.officiel.com/cinemas.xml construct $T Rsultat nest pas bien-form.
Interrogation de XML
136
Construction de rsultats
Les cinmas, sances et les lms (relation) : <answer> where <cinema> <nom> $N </> <seance heure=$H> <film> $T </> </seance></cinema> in www.officiel.com/cinemas.xml construct <result> <cinema> $N </> <heure> $H </> <film> $T </> </result> </answer> Transformation de lattribut heure en lment.
Interrogation de XML
137
Interrogation de XML
138
Interrogation de XML
139
Syntactic Sugaring
where <tag>...</tag> element_as $B in URL construct ... $B est affect par le noeud <tag> ... where <tag> ... </tag> content_as $B in URL construct ... $B est affect par le contenu du noeud <tag> ... <tag> <tag>
Interrogation de XML
140
Jointures
Les cinmas qui montrent le mme lm que lOdon : where <cinema> <nom> Odeon </> <seance> <film> $T </> </> </cinema> content_as C1, <cinema> <nom> $N </> <seance> <film> $T </> </> </cinema> content_as C2 in www.officiel.com/cinemas.xml, C1 <> C2 construct <cinema> $N </cinema>
Interrogation de XML
141
Interrogation du schma
Les lments avec un attribut id = &123 : <answer> where <$E id = &123> $C </> construct <$E> $C </> </answer>
Interrogation de XML
142
Expressions rgulires
Les descendants de Charlemagne : <answer> where <personne><nom|name> $N </> <(enfant|child)*> $E </> </personne> construct <descendant> $E </> </answer> Ne pas confondre avec la smantique horizontale de (enfant|child)* dans une DTD.
Interrogation de XML
143
Integration
Les lms avec les cinmas et les critiques : where <film><titre> $T </> <critique> $C </></> in www.cahier.com/films.xml construct <film><titre> $T </> <critique> $C </> ( where <cinema> <nom> $N </> <seance> <film> $T </> </> </> in www.officiel.com/cinemas.xml construct <cinema> $N </>) </film>
Interrogation de XML
144
Interrogation de XML
145
Ordre
Deux smantiques :
modle avec ordre : le ltrage (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
Interrogation de XML
146
Ordre : Exemple
Document : <a><b>b1<b><c>c1</c><b>b2</b><b>b3</b><c>c2</c>