of 111
7/30/2019 CoursXML-id1966
1/111
Tarak CHAARI - Dpt Tlcommunications XML - 1
XML: eXtensible Markup Language
Fondements,Modlisation,
Prsentation et
Programmation
7/30/2019 CoursXML-id1966
2/111
Tarak CHAARI - Dpt Tlcommunications XML - 2
Sommaire
Fondements de la technologie XML
Modlisation et validation de documents XML
Prsentation des documents XML
Programmation en utilisant XML
7/30/2019 CoursXML-id1966
3/111
Tarak CHAARI - Dpt Tlcommunications XML - 3
Fondements et notions de base
XML: eXtensible Markup Language
Partie 1:
7/30/2019 CoursXML-id1966
4/111
Tarak CHAARI - Dpt Tlcommunications XML - 4
Notion de document lectronique
Dfinitions Objet qui joue un rle de mdiateur entre les
hommes dans le temps et l'espace (changedinformation) Moyen de communication de la pense, de la
connaissance, de l'information et du savoir Un document est un ensemble form par unsupport et une information (ISO TC-46)
Se prsente sous la forme de textes, tableaux,dessins, photos, ... Un document a un contenu (structure logique) et
un fond (structure physique)
7/30/2019 CoursXML-id1966
5/111
Tarak CHAARI - Dpt Tlcommunications XML - 5
Modles de document
Structure logique Dcrit le contenu dun document (information)
Par exemple: Chapitre, section, paragraphes, figures,notes
Structure physique
Dcrit la forme et le support du document (formatage) Par exemple: tomes, pages, cadres, pavs, fentres
Caractristiques communes des 2 structures: Composes ou lmentaires (molcule / atomes)
Gnrique ou spcifique (date / le 29-11-2006)
7/30/2019 CoursXML-id1966
6/111
Tarak CHAARI - Dpt Tlcommunications XML - 6
Exemple dun document (article)XML: eXtensible Markup Language
Wikipdia
1. IntroductionXML (Extensible Markup Language, langage debalisage extensible ) est un langage informatique debalisage gnrique. Le W3C recommande XML pourexprimer des langages de balisages spcifiques(exemples : XHTML, SVG, XSLT).
Son objectif initial est de faciliter l'change automatisde contenus entre systmes d'informations htrognes,notamment, sur Internet. XML est un sous-ensemblede SGML dont il retient plusieurs principes dont : lastructure d'un document XML est dfinissable etvalidable par un schma, un document XML estentirement transformable dans un autre documentXML.
2. Objectif initial
L'objectif initial de XML tait de proposer un SGMLsimplifi. Cette technologie
Titre
Auteur
Section
Paragraphe
Paragraphe
Section
7/30/2019 CoursXML-id1966
7/111
Tarak CHAARI - Dpt Tlcommunications XML - 7
Exemple dun document: Structure logique
XML: eXtensible Markup Language
Wikipdia
XML (Extensible Markup Language, langage de balisage extensible ) est unlangage informatique de balisage gnrique. Le W3C recommande XML pour exprimerdes langages de balisages spcifiques (exemples : XHTML, SVG, XSLT).
Son objectif initial est de faciliter l'change automatis de contenus entresystmes d'informations htrognes, notamment, sur Internet. XML est un sous-ensemblede SGML dont il retient plusieurs principes dont : la structure d'un document XML estdfinissable et validable par un schma, un document XML est entirement transformabledans un autre document XML.
7/30/2019 CoursXML-id1966
8/111
Tarak CHAARI - Dpt Tlcommunications XML - 8
Exemple dun document: Structure
physique
7/30/2019 CoursXML-id1966
9/111
Tarak CHAARI - Dpt Tlcommunications XML - 9
World Wide Web Consortium W3C - Fond en 1994
Consortium industriel international accueilli par
diffrents sites MIT/LCS aux Etats-Unis
INRIA en Europe
Keio University au Japon 448 membres industriels en septembre 2000
Accroitre le potentiel du WEB Standards et Normes
Techniques, langages et architectures pour lchange dedocuments sur le WEB
Origines
7/30/2019 CoursXML-id1966
10/111
Tarak CHAARI - Dpt Tlcommunications XML - 10
Langages de reprsentation de documents
Par ordre chronologique: SGML (Norme ISO 8879 en 1986, rvise en
1988 et 1994) Mta-langage gnral
HTML (Standard W3C depuis 1989) Structure gnrale fige
XML (Standard W3C depuis 1998) Mta-langage simplifi compatible SGML
7/30/2019 CoursXML-id1966
11/111
Tarak CHAARI - Dpt Tlcommunications XML - 11
SGML: prsentation Une norme internationale :
Standard Generalized Markup Language
ISO 8879 - 1989 Un mtalangage de balisage de documents
lisible par ltre humain et traitable par une machine
permet de dfinir des langages de balisage Les documents sont baliss conformment la
grammaire (la DTD)
instances de DTD
permet un balisage smantique du fond.
Implique la notion de validit d'un document
SGML
7/30/2019 CoursXML-id1966
12/111
Tarak CHAARI - Dpt Tlcommunications XML - 12
SGML : objectifs
Sparation du fond et de la forme possibilit de multiples prsentations
un seul document en SGML
plusieurs formats : Postcript, HTML, etc.
Support de traitements sur le contenu desdocuments sans prise en compte de la forme
Proposition dun cadre dfini pour lexpression desmodles documentaires (validit, contrle)
Format de stockage et dchange normalis
SGML
7/30/2019 CoursXML-id1966
13/111
Tarak CHAARI - Dpt Tlcommunications XML - 13
SGML : critiques
Trs lourd et complexe pour la mise en uvre dedocuments respectant ce format
Une grande rigueur est demande l'entre desdocuments
Standard complexe et complet pour le traitement
des documents
Liens hypertextes possibles mais complexes
SGML
7/30/2019 CoursXML-id1966
14/111
Tarak CHAARI - Dpt Tlcommunications XML - 14
HTML : prsentation Propos par le W3C comme format de documents sur
le Web
Langage simple avec des balises standardisespermettant la mise en forme dun texte.
Standard reconnu par tous les navigateurs.
Langage trs populaire sur le Web
HTML
Exemple
Contenu du document
une rfrence externe
7/30/2019 CoursXML-id1966
15/111
Tarak CHAARI - Dpt Tlcommunications XML - 15
HTML : inconvnients
Normalisation des diffrentes balises difficile les constructeurs ont eu tendance dfinir leurs propres balises
pour rpondre leurs besoins (incompatibilit) HTML est ddi pour un seul type de terminaux
Mises jour difficiles
restructuration ou remise en forme de lensemble des pages dusite fastidieux
Incapacit dextension sans "plugins" cot client (formulesmathmatiques, modlisations de molcules, scnes 3D)
Mlange de structures logique et physique donnes utiles mlange avec la mise en forme
Difficults trouver linformation recherche
HTML
7/30/2019 CoursXML-id1966
16/111
Tarak CHAARI - Dpt Tlcommunications XML - 16
SGML et HTML : Rsum
SGML lange puissant
pouvant dcrire
toute structure Documents difficile
dfinir
Documentsdifficiles utiliser
HTML
HTML spcialisation deSGML
adapt laprsentation
inadapt l'change
entre programmes
7/30/2019 CoursXML-id1966
17/111
Tarak CHAARI - Dpt Tlcommunications XML - 17
XML : Prsentation
XML= un nouveau langage d'change bassur le balisage
XML= plus simple que SGML
XML= plus ouvert que HTML
XML = dvelopp par XML Working Groupdirig par le W3C (depuis 1996)
XML 1.0 = recommandation officielle duW3C depuis le 10 fvrier 1998
Origines
7/30/2019 CoursXML-id1966
18/111
Tarak CHAARI - Dpt Tlcommunications XML - 18
XML: objectifs fixs par le W3C (1)
XML doit pouvoir tre utilis sans difficultsur Internet
XML doit soutenir une grande varitd'applications
XML doit tre compatible avec SGML etHTML
Il doit tre facile d'crire des programmes
traitant les documents XML Le nombre d'options dans XML doit tre
rduit au minimum, idalement aucuneOrigines
7/30/2019 CoursXML-id1966
19/111
Tarak CHAARI - Dpt Tlcommunications XML - 19
XML: objectifs fixs par le W3C (2)
Les documents XML doivent tre lisibles parl'homme
Les documents XML doivent treraisonnablement clairs
La spcification de XML doit tre disponiblerapidement
La conception de XML doit tre formelle etconcise
Il doit tre facile de crer des documents XML
Origines
7/30/2019 CoursXML-id1966
20/111
Tarak CHAARI - Dpt Tlcommunications XML - 20Origines
Forces de XML
Sparation de la structure et de la prsentation
Moins confus que HTML
Plus simple que SGML
Idal pour l'change de donnes semi-structures
Utilisable entre machines htrognes
7/30/2019 CoursXML-id1966
21/111
Tarak CHAARI - Dpt Tlcommunications XML - 21
XML: utilits (1) XML est un Mta-langage universel pour reprsenter les
donnes changes sur le Web qui permet au dveloppeur
de dlivrer du contenu depuis les applications d'autresapplications ou aux navigateurs
XML standardise la manire dont l'information est :
change prsente
archive
retrouve transforme
crypte
...XML
7/30/2019 CoursXML-id1966
22/111
Tarak CHAARI - Dpt Tlcommunications XML - 22
XML: utilits (2)
Dfinir vos propres langages dchange Commande, facture, bordereau de livraison, etc.
Modliser des documents et des messages Modle logique de donnes Elments typs agrgs (DTD, XML Schema)
Publier des informations Neutre du point de vue format Mise en forme avec des feuilles de style
Archiver des donnes Auto-description des archives (recherche
dinformation)Pourquoi XML ?
7/30/2019 CoursXML-id1966
23/111
Tarak CHAARI - Dpt Tlcommunications XML - 23
Concepts de XML
Balise (ou tag ou label) Marque de dbut et fin permettant de reprer un lment textuel
Forme: de dbut, de fin
Elment de donnes Texte encadr par une balise de dbut et une de fin
Les lments de donnes peuvent tre imbriques
A. Einstein
Villeurbanne
Attribut
Doublet nom="valeur" qualifiant une balise
XML
7/30/2019 CoursXML-id1966
24/111
Tarak CHAARI - Dpt Tlcommunications XML - 24
Exemple 1 dun document XML
7/30/2019 CoursXML-id1966
25/111
Tarak CHAARI - Dpt Tlcommunications XML - 25
Exemple 2 dun document XML
7/30/2019 CoursXML-id1966
26/111
Tarak CHAARI - Dpt Tlcommunications XML - 26
Structure Arborescente dun document XML
7/30/2019 CoursXML-id1966
27/111
Tarak CHAARI - Dpt Tlcommunications XML - 27
La base dun document XML: llment
Quand utiliser les attributs?
- Valeur unique de type simple (information monovalue) Quand utiliser les lments?
- Valeur de type complexe (numrations, possde des proprits)
7/30/2019 CoursXML-id1966
28/111
Tarak CHAARI - Dpt Tlcommunications XML - 28
Espaces de noms
Comment mixer des tags (ou balises) issus de diffrentslangages?
Un espace de noms est caractris par un prfixe
Mcanisme intressant pour l'intgration de contenus
XML
Le prfixe permet de retrouver le langage
Villeurbanne69100Villeurbanne 69 Rhne
7/30/2019 CoursXML-id1966
29/111
Tarak CHAARI - Dpt Tlcommunications XML - 29
XML: contextes dutilisation
Architectures N-tiers
Production de documents XML partir deservices (couche mtier)
Transformation de ces documents pour desformats daffichage, dimpression, de transfert..
7/30/2019 CoursXML-id1966
30/111
Tarak CHAARI - Dpt Tlcommunications XML - 30
XML: contextes dutilisation
Stockage de donnes Format spcifiques (exemple: SVG)
7/30/2019 CoursXML-id1966
31/111
Tarak CHAARI - Dpt Tlcommunications XML - 31
XML: contextes dutilisation
Stockage de donnes Fichiers de configuration (exemple: JBOSS)
LegoBlocksEJBlegoBean.LegoBlocksSessionHomelegoBean.LegoBlocksSessionlegoBean.LegoBlocksSessionBeanStatefulContainer
7/30/2019 CoursXML-id1966
32/111
Tarak CHAARI - Dpt Tlcommunications XML - 32
XML: contextes dutilisation
Echange de donnes changes Business to Business, services web
7/30/2019 CoursXML-id1966
33/111
Tarak CHAARI - Dpt Tlcommunications XML - 33
Bases de donnes vs XML
Approche Donne Structuration forte et simple
Compatibilit SGBDR existants Mise jour en place
Intgrit smantique
Indexation exacte
Adapt au transactionnel et
dcisionnel Performances attendues
moyenne forte pourune volumtrie moyenne
Approche Document Structuration faible et complexe
Systmes documentairesspcialiss
Gestion de versions
Recherche textuelle
Indexation approche
Accs type moteur de recherche
Performances attendues moyenne pour une volumtrie forte
Pourquoi XML ?
7/30/2019 CoursXML-id1966
34/111
Tarak CHAARI - Dpt Tlcommunications XML - 34
Equivalences BD / XML Une table dans une BD peut correspondre un document
XML (elle correspond en rel une classe dobjets)
Une ligne dans la table dcrit une instance dun objet.Elle correspond un lment XML
Chaque colonne de la ligne correspond une proprit delobjet22
Un autre contexte dutilisation de XML:- Mapping relationnel/objet- Fusion de sources de donnes htrognes
7/30/2019 CoursXML-id1966
35/111
Tarak CHAARI - Dpt Tlcommunications XML - 35
Ltat actuel de XML
Un standard d'change Lisible : texte balis avec marquage
Clair : sparation du fond et de la forme Extensible : supporte les volutions applicatives Scuris : pare-feu, encryption, signature
Dvelopp par le W3C Pour le Web (Internet, Intranet) S'tend l'entreprise et ses partenaires
Support par les grands constructeurs IBM, Microsoft .net, SUN, BEA, etc.
Des outils gnriques et ouvertsPourquoi XML ?
7/30/2019 CoursXML-id1966
36/111
Tarak CHAARI - Dpt Tlcommunications XML - 36
Langages XML : une nbuleuse en expansion
XML
HTML DTD
HyTime
JAXP
CSSXSL
XLink
XPointer
DSSSL
MathML CML
XML-Schema
SVG SMIL
XPath
RDF
Mpeg-7
SGML
MS-XML
ThMLDOM SAX
XML Query
CC/PP
Interrogation / recherche Description de ressources
Programmation
Les anctresTransformations / prsentation Les liens
Besoins spcifiques
SunML XFORMS
UIML XUL
USIXML
Interfaces utilisateurs
Validation
XML Encyption
WAP
SOAP
XML-RPC
OWL
WSDL
7/30/2019 CoursXML-id1966
37/111
Tarak CHAARI - Dpt Tlcommunications XML - 37
XML: Exercice (structuration de donnes) Donnez une version structure du document suivant:
Une bouteille d'eau Cristaline de 150 cl contient par litre 71 mg d'ions positifs calcium,et 5,5 mg d'ions positifs magnsium. On y trouve galement des ions ngatifs commedes chlorures 20 mg par litre et des nitrates avec 1 mg par litre. Elle est recueillie St-Cyr la Source, dans le dpartement du Loiret. Son code barre est 3274080005003 et sonpH est de 7,45. Comme la bouteille est sale, quelques autres matriaux comme du fer s'ytrouvent en suspension.
Une seconde bouteille d'eau Cristaline a t, elle, recueillie la source d'Aurle dans lesAlpes Maritimes. La concentration en ions calcium est de 98 mg/l, et en ions magnsium
de 4 mg/l. Il y a 3,6 mg/l d'ions chlorure et 2 mg/l de nitrates, pour un pH de 7,4. Lecode barre de cette bouteille de 50 cl est 3268840001008.
Une bouteille de mme contenance est de marque Volvic, et a t puise ... Volvic,bien connu pour ses sources donnant un pH neutre de 7. Elle comprend 11,5 mg/l d'ionscalcium, 8,0 mg/l d'ions magnsium, 13,5 mg/l d'ions chlorures et 6,3 mg/l d'ions
nitrates. Elle contient galement des particules de silice. Son code barre est3057640117008.
PS : Volvic est dans le Puy-de-Dme...
i ( i d d )
7/30/2019 CoursXML-id1966
38/111
Tarak CHAARI - Dpt Tlcommunications XML - 38
ML: Exercice (structuration de donnes)
-
-
Cristaline
-
calcium 71mg/l
magnsium 5,5mg/l
chlorure 20mg/l
nitrate 1mg/l
fer
-
St-Cyr la SourceLoiret
3274080005003
150
7,45
Cristaline
- calcium 98mg/l
- - AurleAlpes Maritimes326884000100850
7,4
- Volvic
-
-
7/30/2019 CoursXML-id1966
39/111
Tarak CHAARI - Dpt Tlcommunications XML - 39
Modlisation des documents:
DTD et Schma
XML: eXtensible Markup Language
Partie 2:
I t d ti
7/30/2019 CoursXML-id1966
40/111
Tarak CHAARI - Dpt Tlcommunications XML - 40Introduction
Introduction
Un document XML peut tre associ :
une DTD ou un schma pour dcrire les balises Une feuille de style pour prsenter les donnes
Une DTD ou/et un schma permettent de
dfinir son propre langage bas sur XML Vocabulaire (balises)
Grammaire (imbrications) Dialecte ou Jargon
V lidit d d t
7/30/2019 CoursXML-id1966
41/111
Tarak CHAARI - Dpt Tlcommunications XML - 41
Validit des documents Document bien form (Well Formed document)
Guillemets (ou apostrophes) obligatoires autour des valeurs
Les lments vides utilisent une notation spcifique
Les balises doivent tre correctement imbriques NON !
Le document a une seule racine
Un attribut est unique dans son lment
Document valide (Valid document) bien form + conforme la DTD ou au schma qui lui est associ
Introduction
E i d t bi f ?
7/30/2019 CoursXML-id1966
42/111
Tarak CHAARI - Dpt Tlcommunications XML - 42
Exercice: documents bien forms?
QUESTION: Est-ce que les documents suivants sont bien forms ?
REPONSE 1:
REPONSE 2:
REPONSE 3:
DTD
7/30/2019 CoursXML-id1966
43/111
Tarak CHAARI - Dpt Tlcommunications XML - 43
DTD
Permet de dfinir le vocabulaire et lastructure qui seront utiliss dans le
document XML
Grammaire du langage dont les phrases sontdes documents XML (instances)
Peut tre mise dans un fichier (DTDexterne) et tre appele dans le documentXML
DTD
Dclaration d'lment simple
7/30/2019 CoursXML-id1966
44/111
Tarak CHAARI - Dpt Tlcommunications XML - 44
Dclaration d'lment simple
Le paramtre dfinition reprsente soit un type de donne
prdfini, soit un lment de donnes compos, constitului mme d'lments
Types prdfinis
ANY : L'lment peut contenir tout type de donne EMPTY : L'lment ne contient pas de donnes spcifiques
#PCDATA : L'lment doit contenir une chane de caractre
Exemple
Victor Hugo
DTD
Dclaration d'lment compos
7/30/2019 CoursXML-id1966
45/111
Tarak CHAARI - Dpt Tlcommunications XML - 45
Dclaration d'lment compos
Dfinit une squence ou un choixd'lments
Syntaxe spcifique avec oprateurs decomposition d'lments :
Oprateur Signification Exemple
+ L'lment doit tre prsent au minimum une fois A+
* L'lment peut tre prsent plusieurs fois (ou aucune) A*
? L'lment peut tre optionnellement prsent A?
| L'lment A ou B peuvent tre prsents (pas les deux) A|B
, L'lment A doit tre prsent et suivi de l'lment B A,B
()Les parenthses permettent de regrouper des lments afin de leur appliquer lesautres oprateurs
(A,B)+
DTD
Exemple d'lment compos
7/30/2019 CoursXML-id1966
46/111
Tarak CHAARI - Dpt Tlcommunications XML - 46
Exemple d lment compos
Hugo
Victor
Charles
01120243
Paris
DTD
Dclaration d'attributs
7/30/2019 CoursXML-id1966
47/111
Tarak CHAARI - Dpt Tlcommunications XML - 47
Dclaration d attributs
balise spcifie l'lment auquel est attach l'attribut
Attributest le nom de l'attribut dclar
Type dfinit le type de donne de l'attribut choisi parmi: CDATA
Chanes de caractres entre guillemets ("aa") non analyses
Enumration
Liste de valeurs spares par |
ID et IDREF
Cl et rfrence cl
Modeprcise le caractre obligatoire ou non de l'attribut #REQUIRED, #IMPLIED ou #FIXED
DTD
Exemple d'attributs
7/30/2019 CoursXML-id1966
48/111
Tarak CHAARI - Dpt Tlcommunications XML - 48
Exemple d attributs
num ID,
age CDATA,
genre (Masculin | Feminin ) >
ville CDATA #IMPLIED>
ville CDATA #FIXED "Paris">
DTD
Exemple de DTD
7/30/2019 CoursXML-id1966
49/111
Tarak CHAARI - Dpt Tlcommunications XML - 49
Exemple de DTD
DTD
Exemple de DTD interne
7/30/2019 CoursXML-id1966
50/111
Tarak CHAARI - Dpt Tlcommunications XML - 50
Exemple de DTD interne
]>
Marie
Jean
Pierre
Julie
DTD
DTD externe
7/30/2019 CoursXML-id1966
51/111
Tarak CHAARI - Dpt Tlcommunications XML - 51
DTD externe
Modle pour plusieurs documents partage des balises, attributs et structures
Dfinition locale ou externe
Exemple de document
...
DTD
DTD : Entit paramtre
7/30/2019 CoursXML-id1966
52/111
Tarak CHAARI - Dpt Tlcommunications XML - 52
DTD : Entit paramtre Permet la dfinition d'un groupe d'lments sous un nom
(macro)
Rutilisable dans une DTD par simple appel %nom;
Exemple :
Peuvent tre externes :
DTD
DTD : Entit gnrale
7/30/2019 CoursXML-id1966
53/111
Tarak CHAARI - Dpt Tlcommunications XML - 53
DTD : Entit gnrale
Permet la dfinition d'un texte sous un nom
Rutilisable dans un document par simple appel &nom; Exemple
]>
&cie; &imp;
DTD
Quelques rgles d'criture
7/30/2019 CoursXML-id1966
54/111
Tarak CHAARI - Dpt Tlcommunications XML - 54
Quelques rgles d criture
Modularit dfinir dans des entits spares les parties rutilisables
Prcdence Regrouper les dclarations d'entits en tte Abstraction
Utiliser des entits pour les modles de contenus Spcificit
viter les DTD trop gnrales
Simplicit Dcouper les DTD trop complexes
DTD
DTD: Exercice (Catalogue de films)
7/30/2019 CoursXML-id1966
55/111
Tarak CHAARI - Dpt Tlcommunications XML - 55
DTD: Exercice (Catalogue de films)
On se propose de dfinir un format XML de stockagedun catalogue de films sur DVD.
Le catalogue comprend un ensemble de fiches de films Chaque fiche comprend:
Un numro unique Le titre du film
Un ou plusieurs ralisateurs Un ou plusieurs diteurs Les acteurs principaux
Le genre du film (comdie, horreur, action) (en option) Un commentaire optionnel qui prsente brivement lhistoiredu film
Un lien ventuel vers le site du film
: xerc ce ata ogue efil )
7/30/2019 CoursXML-id1966
56/111
Tarak CHAARI - Dpt Tlcommunications XML - 56
films)
numero CDATA #REQUIRED>
Insuffisance des DTD
7/30/2019 CoursXML-id1966
57/111
Tarak CHAARI - Dpt Tlcommunications XML - 57
su s ce des
Pas de types de donnes part du texte (#PCDATA)
Expression de cardinalits limite (?, * et +)
Syntaxe spcifique (pas XML)
difficile interprter difficile traduire en schma objets
Propositions de complments XML-schema du W3C
DTD
XML Schma
7/30/2019 CoursXML-id1966
58/111
Tarak CHAARI - Dpt Tlcommunications XML - 58
Un schma d'un document dfinit: les lments possibles dans le document
les attributs associs ces lments
la structure du document et les types de donnes
Le schma est spcifi en XML pas de nouveau langage
balisage de dclaration
utilise un espace de nom xs: (ou xsd:)
Prsente de nombreux avantages
types de donnes personnaliss
extensibilit par hritage et ouverture
analysable par un parseur XML standard
Schema
Objectifs des schmas
7/30/2019 CoursXML-id1966
59/111
Tarak CHAARI - Dpt Tlcommunications XML - 59
j
Reprendre les acquis des DTD Plus riche et complet que les DTD
Permettre de typer les donnes Elments simples et complexes
Attributs simples
Permettre de dfinir des contraintes Existence obligatoire ou optionnelle
Domaines de valeurs, cardinalits, rfrences
Patterns, ...
S'intgrer la nbuleuse XML Espace de noms
Structure d'arbre logique
Schema
Les types XML
7/30/2019 CoursXML-id1966
60/111
Tarak CHAARI - Dpt Tlcommunications XML - 60
yp
La base dun schma XML: llment
Un lment peut avoir un type: Simple si sa valeur a un type prdfini en XML-SCHEMA(xs:string, xs:int, xs:decimal, xs:double) ou une extensionde ces types
Complexe sil contient des sous lments ou sil comporte unattribut
xs:all tous les lments doivent exister (peu importe lordre) xs:choice un des lments doit exister
xs:sequence tous les lments doivent exister dans lordre spcifi
Modles de contenu et types
7/30/2019 CoursXML-id1966
61/111
Tarak CHAARI - Dpt Tlcommunications XML - 61
yp
Quatre catgories de modles de contenu
Deux catgories de types de donnes: simple et complexe
Les types simples
7/30/2019 CoursXML-id1966
62/111
Tarak CHAARI - Dpt Tlcommunications XML - 62
yp p string
Confirm this is electric
byte-1, 126
integer-126789, -1, 0, 1, 126789
positiveInteger1, 126789
negativeInteger-126789, -1
hexBinary0FB7 int
-1, 126789675
unsignedInt0, 1267896754
booleantrue, false 1, 0
date1999-05-31
Schema
ID"A212"
IDREF"A212"
IDREFS"A212" "B213"
anyURIhttp://www.example.com/e1.html#5
languageen-GB, en-US, fr
dateTime1999-05-31T13:20:00.000-05:00
Et beaucoup dautresShort, long, float
Les types complexes
7/30/2019 CoursXML-id1966
63/111
Tarak CHAARI - Dpt Tlcommunications XML - 63
Dfinition d'objets complexes : collection ordonne d'lments typs
: collection non ordonne d'lments typs
: choix entre lments typs Exemple
Schema
Hritage de types
7/30/2019 CoursXML-id1966
64/111
Tarak CHAARI - Dpt Tlcommunications XML - 64
Dfinition de sous-typespar hritage Par extension : ajout
d'informations
Par restriction : ajout decontraintes
Possibilit de contraindrela drivation
Exemple dextension :
7/30/2019 CoursXML-id1966
65/111
Tarak CHAARI - Dpt Tlcommunications XML - 65
Contraintes sur type simple prdfini Utilisation d'expression rgulires
Similaires celles de Perl
Exemple de restriction
Autres facettes de restriction- xs:mininclusive, xs:maxexclusive, xs:enumeration,
xs:length
Schema
Rutilisation de types
7/30/2019 CoursXML-id1966
66/111
Tarak CHAARI - Dpt Tlcommunications XML - 66
Type simple avec extension
Type complexe (squence)
Les occurences
7/30/2019 CoursXML-id1966
67/111
Tarak CHAARI - Dpt Tlcommunications XML - 67
Une bibliothque contient au moins un livre
Les attributs 1/2
7/30/2019 CoursXML-id1966
68/111
Tarak CHAARI - Dpt Tlcommunications XML - 68
Les lments contenu simple avec attributs
La bible de XML
Les attributs 2/2
7/30/2019 CoursXML-id1966
69/111
Tarak CHAARI - Dpt Tlcommunications XML - 69
Les lments contenu complexe avec attributs
Michael
Groupage dlments
7/30/2019 CoursXML-id1966
70/111
Tarak CHAARI - Dpt Tlcommunications XML - 70
Rfrence un Schma XML
7/30/2019 CoursXML-id1966
71/111
Tarak CHAARI - Dpt Tlcommunications XML - 71
Rfrence sans espace de noms
Rfrence avec espace de noms
Schema
Bilan DTD et Schma
7/30/2019 CoursXML-id1966
72/111
Tarak CHAARI - Dpt Tlcommunications XML - 72
Les DTD dfinissent la grammaire des documents
Elles sont de plus en plus souvent remplaces pardes schmas
Le standard XML-Schma est un peu complexe Une solution intermdiaire entre les DTD et les Schmas
http://www.relaxng.org
RELAX est en cours de standardisation ISO
DTD et Schema
7/30/2019 CoursXML-id1966
73/111
Tarak CHAARI - Dpt Tlcommunications XML - 73
Prsentation et transformations de
documents
XML: eXtensible Markup Language
Partie 3:
Formatage de document XML
7/30/2019 CoursXML-id1966
74/111
Tarak CHAARI - Dpt Tlcommunications XML - 74
Un document et sa DTD ou schma nedonnent pas dindications sur sareprsentation. Une description supplmentaire est ncessaire:
DSSSL
Document StyleSemantics and
Specification language
CSS
Cascading StyleSheets
XSL
eXtensible StylesheetLanguage
Cascading Style Sheets (CSS)
7/30/2019 CoursXML-id1966
75/111
Tarak CHAARI - Dpt Tlcommunications XML - 75
Recommandation W3C (CSS1: 1996, CSS2:1998)
Sapplique HTML et XML Support approximatif par les navigateurs
Voirhttp://www.richinstyle.com/bugs/table.html Meilleurs support dans Mozilla et IE6
Principes
Cascade Correspondance dlments (slecteurs)
CSS: Syntaxe
7/30/2019 CoursXML-id1966
76/111
Tarak CHAARI - Dpt Tlcommunications XML - 76
Attachement dune feuille de style un document
Syntaxe gnrale
Slecteur {proprit: valeur; proprit: valeur;} Slecteur
Voirhttp://www.w3.org/TR/REC-CSS2/selector.html
La premire ligne dun lment elel:first-line
Un lment el lorsquil est survol parla souris
el:hover
Les lments el contenant un attributatt de valeur foo
el [att=foo ]
Les lments el2 descendants de el1el1 el2
Les lments elel
CSS: proprits
7/30/2019 CoursXML-id1966
77/111
Tarak CHAARI - Dpt Tlcommunications XML - 77
Mesure des longueurs Mesure relatives: em, ex, %
font-size: 1.2em; (1.2 * la taille de llment parent)
line-height: 3ex; (3 * la taille dune minuscule) Mesures absolues: px, pt, mm, cm
Couleurs Prdfinis: black, blue, green, maroon, yellow, Numriques: #rrvvbb, rgb (n, n, n)
Exempletexte { font-size: 1.2em; line-height: 3ex; }
CSS: proprits usuelles
7/30/2019 CoursXML-id1966
78/111
Tarak CHAARI - Dpt Tlcommunications XML - 78
PropritCSS: Exemple (extrait)
7/30/2019 CoursXML-id1966
79/111
Tarak CHAARI - Dpt Tlcommunications XML - 79
Valeur
instructionslecteur
Faiblesses de CSS
7/30/2019 CoursXML-id1966
80/111
Tarak CHAARI - Dpt Tlcommunications XML - 80
CSS a t initialement prvu pou laprsentation des documents HTML
Mme dfauts que HTML
- Syntaxe non modifiable et non extensible
- Syntaxe difficile normaliser
- Difficults pour trouver des lments
XPath: adressage dans un document XML
7/30/2019 CoursXML-id1966
81/111
Tarak CHAARI - Dpt Tlcommunications XML - 81
Identification de nuds dans un document XML
Base du langage de transformation XSLT et des pointeurs
XLink
Syntaxe: chemin dans larborescence du document
slecteur/slecteur/slecteur La syntaxe gnrale dun slecteur: lment[prdicat]
Exemples: image [@imgsrc=joconde.jpg] /livre/listeEmprunts/emprunt[2]/sortie
XSL: eXtensible style sheetLanguage
7/30/2019 CoursXML-id1966
82/111
Tarak CHAARI - Dpt Tlcommunications XML - 82
Description du formatage appliquer undocument XML
Compos de deux sous-ensembles
XSLT: XSL transformation
7/30/2019 CoursXML-id1966
83/111
Tarak CHAARI - Dpt Tlcommunications XML - 83
Langage de transformation dun arbre XML dans unautre Restructuration Gnration (indexes, tables, )
Recommandation W3C depuis 1999 http://www.w3.orgTR/1999/REC-xslt-19991116
Transformation possible ct client ou ct serveur
Ct client Support intgr dans IE (aprs mise jour de MSXML dansIE5)
En utilisant un formateur XML externe via javascript (ActiveX)
Ct serveur En invoquant un formateur par CGI, PHP ou ASP En invoquant un formateur programm (ex: Saxon, Xalan) En utilisant un cadre de publication XML ( ex: Cocoon)
XSLT: principes gnraux
7/30/2019 CoursXML-id1966
84/111
Tarak CHAARI - Dpt Tlcommunications XML - 84
Une feuille XSLT est un document XML
Ensemble de rgles
Slection dlments et description de
rendu produire en sortie
Rgles XSL: slection
7/30/2019 CoursXML-id1966
85/111
Tarak CHAARI - Dpt Tlcommunications XML - 85
Syntaxe XPath par rapport au nud courant
Utilisation de llment
Rgles nommes
Rgles XSL: production
7/30/2019 CoursXML-id1966
86/111
Tarak CHAARI - Dpt Tlcommunications XML - 86
Rptition
Emprunteur
sortieRetour
Conditions
Exemple XSLT(1/4):Document XML dorigine
7/30/2019 CoursXML-id1966
87/111
Tarak CHAARI - Dpt Tlcommunications XML - 87
Exemple XSLT(2/4):feuille de style
7/30/2019 CoursXML-id1966
88/111
Tarak CHAARI - Dpt Tlcommunications XML - 88
Exemple XSLT(2/4):feuille de style (suite)
7/30/2019 CoursXML-id1966
89/111
Tarak CHAARI - Dpt Tlcommunications XML - 89
Exemple XSLT(2/4):document produit
7/30/2019 CoursXML-id1966
90/111
Tarak CHAARI - Dpt Tlcommunications XML - 90
7/30/2019 CoursXML-id1966
91/111
Tarak CHAARI - Dpt Tlcommunications XML - 91
Programmation en utilisant XML
XML: eXtensible Markup Language
Partie 4:
et angages eprogrammation
C d l bl d l di XML
7/30/2019 CoursXML-id1966
92/111
Tarak CHAARI - Dpt Tlcommunications XML - 92
Comment rsoudre le problme de la distance entre XML etles programmes objets?
Les services sont souvent programms en langage objet:Java, C++, C#, VB, PHP ...
XML les messages XML doivent tre traduits en objets analyseurs XML ou parseurs (terme technique utilis) diffrents niveau d'interfaces :
Flux d'vnements (SAX) Traduction en objet gnriques (DOM)
Serveurs d'applications
Les parseurs XML
SAX (Si l API f XML)
7/30/2019 CoursXML-id1966
93/111
Tarak CHAARI - Dpt Tlcommunications XML - 93
SAX (Simple API for XML) Dveloppement communautaire
http://sax.sourceforge.net
DOM (Document Object Model) Recommandation W3C
http://www.w3.org/DOM/
JAXP (Java API for XML Processing) Dveloppement communautaire SUN
http://java.sun.com/xml/jaxp Couche dabstraction de SAX, DOM et XSLT indpendantede limplmentation
XML et JAVA = un couple parfait
SAX: Simple API for XML
7/30/2019 CoursXML-id1966
94/111
Tarak CHAARI - Dpt Tlcommunications XML - 94SAX
SAX (Simple API for XML) modle simplifi d'vnements
dvelopp par un groupe indpendant.
Types d'vnement : dbut et fin de document ;
dbut et fin d'lments ;
attributs, texte, .
Nombreux parseurs publics XP de James Clark, Aelfred, Saxon
MSXML3 de Microsoft Xerces de Apache
JAXP de SUN
: r nc pe efonctionnement
7/30/2019 CoursXML-id1966
95/111
Tarak CHAARI - Dpt Tlcommunications XML - 95
Document
XMLParser
EvnementstartDocument
EvnementstartElement
EvnementendDocument
.
StreamXML
Mthodes
utilisateur
Default Handler
SAX
Les mthodes essentielles deDefaultHandler
XMLR d E H dl
7/30/2019 CoursXML-id1966
96/111
Tarak CHAARI - Dpt Tlcommunications XML - 96
XMLReader setContentHandler
setErrrorHandler
parse
ContentHandler
startDocument endDocument
startElement
endElement
characters
ErrorHandler fatalError
error
warning
EntityResolver
resolveEntity
SAX
Default Handler
Principales mthodes:
7/30/2019 CoursXML-id1966
97/111
Tarak CHAARI - Dpt Tlcommunications XML - 97
Principales mthodes:
Exemple SAX
startDocument ()t tEl t ( )
7/30/2019 CoursXML-id1966
98/111
Tarak CHAARI - Dpt Tlcommunications XML - 98
()startElement (personne)
startElement (nom)
characters (Cover)
endElement (nom)
startElement (prenom)
characters (Harry)
endElement (prenom)
startElement (adresse)
startElement (rue)characters (Stendhal)
endElement (rue)
startElement (ville)
characters (Paris)endElement (ville)
endElement (adresse)
endElement (personne)
endDocument ()
Cover
Harry
Stendhal
Paris
: exemp e ut sat on(Xerces)
7/30/2019 CoursXML-id1966
99/111
Tarak CHAARI - Dpt Tlcommunications XML - 99
DOM: Document Object Model
Standard W3C fait pour HTML et XML
7/30/2019 CoursXML-id1966
100/111
Tarak CHAARI - Dpt Tlcommunications XML - 100
Standard W3C fait pour HTML et XML Structure d'objets pour reprsenter un document
Rsultat d'un "parser" Arbre d'objets relis entre eux
Interface objet pour naviguer dans un document
Oriente objet Peut tre utilise en:
Java, C++
C#, VB
Python, PHP
Principaux parseurs DOM
7/30/2019 CoursXML-id1966
101/111
Tarak CHAARI - Dpt Tlcommunications XML - 101
Document
XML
Parseur
DOM
Arbre DOM
Application
API DOM
Sun, ...JAXP J2EE
Jason Hunter(libre)JDOM
MicrosoftMSXML Apache (Java, C++)Xerces
DOM
Exemple d'arbre DOM
D t Racine du document
7/30/2019 CoursXML-id1966
102/111
Tarak CHAARI - Dpt Tlcommunications XML - 102
Le meilleur
restaurant
Document
NodeList
NodeList
NamedNodeMap
Attr
Element
NodeList
Element
Text
Racine du document
Id="R1"
Le meilleur restaurant
DOM
Lecture dun document XML avecDOM
7/30/2019 CoursXML-id1966
103/111
Tarak CHAARI - Dpt Tlcommunications XML - 103
Org.w3c.dom.Document
7/30/2019 CoursXML-id1966
104/111
Tarak CHAARI - Dpt Tlcommunications XML - 104
Interface qui reprsente une arborescence XML
Org.w3c.dom.Element
Interface reprsentant un lment XML
7/30/2019 CoursXML-id1966
105/111
Tarak CHAARI - Dpt Tlcommunications XML - 105
Interface reprsentant un lment XML
setAttribute(String name, String value)Adds a new attribute.
void
removeAttribute(String name)
Removes an attribute by name.
void
getTagName()The name of the element.
String
getElementsByTagName(String name)Returns a NodeList of all descendant Elements with a given tag name, in the
order in which they are encountered in a preorder traversal of this Element tree.
NodeList
getAttributeNode(String name)Retrieves an attribute node by name.
Attr
getAttribute(String name)Retrieves an attribute value by name.
String
Org.w3c.dom.Attr
Interface reprsentant un attribut XML
7/30/2019 CoursXML-id1966
106/111
Tarak CHAARI - Dpt Tlcommunications XML - 106
Interface reprsentant un attribut XML
setValue(String value)On retrieval, the value of the attribute is returned as a string.
void
getValue()On retrieval, the value of the attribute is returned as a string.
String
getSpecified()If this attribute was explicitly given a value in the original document, this
is true; otherwise, it is false.
boolean
getOwnerElement()The Element node this attribute is attached to or null if this attribute is
not in use.
Element
getName()
Returns the name of this attribute.
String
Exemple d'utilisation de DOMPublic class ExempleDOM
public static main (String argc[]) throws IOException, DOMExcetion
7/30/2019 CoursXML-id1966
107/111
Tarak CHAARI - Dpt Tlcommunications XML - 107
{XMLDocument xmlDoc = new XmlDocument();
// creation des nuds
ElementNode nom = (ElementNode) xmlDoc.createElement("nom");
ElementNode prenom = (ElementNode) xmlDoc.createElement("prenom");
ElementNode nomfam = (ElementNode) xmlDoc.createElement("nomfam");
// creation de l'arbre
xmlDoc.appendChild(nom);
nom.appenChild(prenom);
prenom.appendChild(xmlDoc.createTextNode("Jean");
nom.appenChild(nomfam);
nomfam.appendChild(xmlDoc.createTextNode("Dupont");
// positionnement d'un attribut
nom.setAttribute("ville", "Paris");
// sortie
System.exit(0); } }
Document:
Jean Dupont
DOM
SAX et DOM
SAX DOM
7/30/2019 CoursXML-id1966
108/111
Tarak CHAARI - Dpt Tlcommunications XML - 108
Rapide
Peu gourmand en mmoire
Accs squentiel
Unidirectionnel audocument
Accs alatoire au
document
Vue hirarchique dudocument
Permet deconstruire/modifier undocument
Gourmand en mmoire
Outils XML
Editeurs
7/30/2019 CoursXML-id1966
109/111
Tarak CHAARI - Dpt Tlcommunications XML - 109
XML SPY
Browsers
Mozilla
Convertisseurs Xalan
Parseurs SAX, JDOM
Serveurs XML Cocoon (cadre de publication XML)
Pour finir
7/30/2019 CoursXML-id1966
110/111
Tarak CHAARI - Dpt Tlcommunications XML - 110
QUESTION: Quest ce quon peut faire avec XML?
REPONSE: Imagination is more important than knowledge
Albert Einstein
Rfrences
Elliotte Rusty Harold XML bible 2nd Edition Wiley 2001 1206 pages
7/30/2019 CoursXML-id1966
111/111
Tarak CHAARI - Dpt Tlcommunications XML - 111
Elliotte Rusty Harold, XML bible, 2nd Edition, Wiley, 2001, 1206 pages.
Alain michard, XML: langage et applications, Eyrolles, 2000
Support de cours en ligne de George Gardarin,http://perso.orange.fr/georges.gardarin/Cours2003.htm
T. Bray et.al. (ed.).Extensible Markup Language (XML) 1.0. World Wide WebConsortium (W3C), February 1998. http://www.w3.org/TR/REC-xml
B. McLaughlin. Java and XML. OReilly and Associates, Sebastopol, 2000