coursxml
TRANSCRIPT
-
7/30/2019 coursXML
1/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 1
XML: eXtensible Markup Language
Fondements,
Modlisation,
Prsentation et
Programmation
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 2
Sommaire
Fondements de la technologie XML
Modlisation et validation de documents XML
Prsentation des documents XML
Programmation en utilisant XML
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 3
Fondements et notions de base
XML: eXtensible Markup Language
Partie 1:
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 4
Notion de document lectronique
Dfinitions Objet qui joue un rle de mdiateur entre les
hommes dans le temps et l'espace (change
dinformation) Moyen de communication de la pense, de la
connaissance, de l'information et du savoir Un document est un ensemble form par un
support et une information (ISO TC-46) Se prsente sous la forme de textes, tableaux,
dessins, photos, ... Un document a un contenu (structure logique) etun fond (structure physique)
-
7/30/2019 coursXML
2/29
-
7/30/2019 coursXML
3/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 10
Langages de reprsentation de documents
Par ordre chronologique:
SGML (Norme ISO 8879 en 1986, rvise en1988 et 1994) Mta-langage gnral
HTML (Standard W3C depuis 1989) Structure gnrale fige
XML (Standard W3C depuis 1998) Mta-langage simplifi compatible SGML
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 lagrammaire (la DTD) instances de DTD
permet un balisage smantique du fond.
Implique la notion de validit d'un document
SGML Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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
4/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 16
SGML et HTML : Rsum
SGML
lange puissantpouvant dcriretoute structure
Documents difficile dfinir
Documents
difficiles utiliser
HTML
HTML
spcialisation deSGML
adapt laprsentation
inadapt l'changeentre programmes
-
7/30/2019 coursXML
5/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 17
XML : Prsentation
XML= un nouveau langage d'change bas
sur 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 et
concise Il doit tre facile de crer des documents XML
Origines Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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
6/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 ?
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 24
Exemple 1 dun document XML
-
7/30/2019 coursXML
7/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 25
Exemple 2 dun document XML
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 26
Structure Arborescente dun document XML
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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)
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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
Villeurbanne69100
Villeurbanne 69 Rhne
-
7/30/2019 coursXML
8/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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..
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 30
XML: contextes dutilisation
Stockage de donnes Format spcifiques (exemple: SVG)
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 31
XML: contextes dutilisation
Stockage de donnes Fichiers de configuration (exemple: JBOSS)
LegoBlocksEJBlegoBean.LegoBlocksSessionHomelegoBean.LegoBlocksSessionlegoBean.LegoBlocksSessionBeanStateful
Container
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 32
XML: contextes dutilisation
Echange de donnes changes Business to Business, services web
-
7/30/2019 coursXML
9/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 ? Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 ouverts
Pourquoi XML ? Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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
10/29
-
7/30/2019 coursXML
11/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 42
Exercice: documents bien forms?
QUESTION: Est-ce que les documents suivants sont bien forms ?
REPONSE 1:
REPONSE 2:
REPONSE 3:
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 43
DTD
Permet de dfinir le vocabulaire et lastructure qui seront utiliss dans ledocument 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 44
Dclaration d'lment simple
Le paramtre dfinition reprsente soit un type de donne
prdfini, soit un lment de donnes compos, constitu
lui 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
-
7/30/2019 coursXML
12/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 46
Exemple d'lment compos
Hugo
Victor
Charles
01120243
Paris
DTD
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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
Mode prcise le caractre obligatoire ou non de l'attribut
#REQUIRED, #IMPLIED ou #FIXED
DTD Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 48
Exemple d'attributs
num ID,
age CDATA,
genre (Masculin | Feminin ) >
DTD
-
7/30/2019 coursXML
13/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 49
Exemple de DTD
DTD Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 50
Exemple de DTD interne
]>
Marie
Jean
Pierre
Julie
DTD
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 51
DTD externe
Modle pour plusieurs documents partage des balises, attributs et structures
Dfinition locale ou externe
Exemple de document
...
DTD Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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
-
7/30/2019 coursXML
14/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 56
: xerc ce ata ogue efilms)
-
7/30/2019 coursXML
15/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 57
Insuffisance des DTD
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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 58
XML Schma
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
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 59
Objectifs des schmas
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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 60
Les types XML
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
-
7/30/2019 coursXML
16/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 61
Modles de contenu et types
Quatre catgories de modles de contenu
Deux catgories de types de donnes: simple et complexe
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 62
Les types simples string
Confirm this is electric
byte-1, 126
integer-126789, -1, 0, 1, 126789 positiveInteger
1, 126789
negativeInteger-126789, -1
hexBinary0FB7
int-1, 126789675
unsignedInt
0, 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
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 63
Les types complexes Dfinition d'objets complexes
: collection ordonne d'lments typs
: collection non ordonne d'lments typs
: choix entre lments typs
Exemple
Schema Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 64
Hritage de types
Dfinition de sous-typespar hritage Par extension : ajout
d'informations Par restriction : ajout decontraintes
Possibilit de contraindrela drivation
Exemple dextension :
-
7/30/2019 coursXML
17/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 65
Les patterns 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 66
Rutilisation de types Type simple avec extension
Type complexe (squence)
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 67
Les occurences
Une bibliothque contient au moins un livre
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 68
Les attributs 1/2
Les lments contenu simple avec attributs
La bible de XML
-
7/30/2019 coursXML
18/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 69
Les attributs 2/2
Les lments contenu complexe avec attributs
Michael
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 70
Groupage dlments
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 71
Rfrence un Schma XML
Rfrence sans espace de noms
Rfrence avec espace de noms
Schema Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 72
Bilan DTD et Schma
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
19/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 73
Prsentation et transformations de
documents
XML: eXtensible Markup Language
Partie 3:
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 74
Formatage de document XML
Un document et sa DTD ou schma nedonnent pas dindications sur sa
reprsentation. Une description supplmentaire est ncessaire:DSSSL
Document StyleSemantics and
Specification language
CSS
Cascading StyleSheets
XSL
eXtensible StylesheetLanguage
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 75
Cascading Style Sheets (CSS)
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)
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 76
CSS: Syntaxe 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 par
la 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
-
7/30/2019 coursXML
20/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 77
CSS: proprits 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; }
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 78
CSS: proprits usuelles
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 79
PropritCSS: Exemple (extrait)
Valeur
instructionslecteur
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 80
Faiblesses de CSS CSS a t initialement prvu pou la
prsentation des documents HTML
Mme dfauts que HTML
- Syntaxe non modifiable et non extensible
- Syntaxe difficile normaliser
- Difficults pour trouver des lments
-
7/30/2019 coursXML
21/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 81
XPath: adressage dans un document XML
Identification de nuds dans un document XML
Base du langage de transformation XSLT et des pointeursXLink
Syntaxe: chemin dans larborescence du document slecteur/slecteur/slecteur Un slecteur pour syntaxe gnrale: lment[prdicat]
Exemples: image [@imgsrc=joconde.jpg] /livre/listeEmprunts/emprunt[2]/sortie
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 82
XPath: syntaxe gnrale (1)
Cascade de termes de slection Slecteur/selecteur/selecteur
Selecteur: axe :: filtre [predicat]
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 83
XPath: syntaxe gnrale (2)
Selecteur: axe :: filtre [predicat]
Child::* tous les fils du nuds courant
Descendant::emprunt tous les lments emprunt descendant du nud courant Child:: text tous les nuds textuels fils du nud courant
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 84
XPath: syntaxe gnrale (3) Selecteur: axe :: filtre [predicat]
Prdicat de slection Le prdicat est optionnel
Combinaison boolenne de prdicats simples (AND etOR)
Voir http://www.w3.org/TR/xpath pour unedescription complte des fonctions disponibles
XSL: eXtensible style sheet
-
7/30/2019 coursXML
22/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 85
XPath: syntaxe abrge Rgles dabrviation
Exemples
Child :: image [attribute :: imgsrc =joconde.jpg]image [@imgsrc=joconde.jpg]
/descendant:: emprunt [position() =2] /child:: sortie
// emprunt [2] /sortie
.Self::node
[x][position()=x]
//Descendant-or-self::node()
..parent::node
@imgsrcAttribute::imgsrc
livreChild::livre
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 86
XSL: eXtensible style sheetLanguage
Description du formatage appliquer undocument XML
Compos de deux sous-ensembles
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 87
XSLT: XSL transformation Langage de transformation dun arbre XML dans un
autre 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 dans
IE5)
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)
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 88
XSLT: principes gnraux
Une feuille XSLT est un document XML
Ensemble de rgles
Slection dlments et description de
rendu produire en sortie
R l XSL l i R l XSL d i
-
7/30/2019 coursXML
23/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 89
Rgles XSL: slection Syntaxe XPath par rapport au nud courant
Utilisation de llment
Rgles nommes
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 90
Rgles XSL: production Rptition
Emprunteur
sortieRetour
Conditions
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 91
Exemple XSLT(1/4):Document XML dorigine
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 92
Exemple XSLT(2/4):feuille de style
Exemple XSLT(2/4): Exemple XSLT(2/4):
-
7/30/2019 coursXML
24/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 93
Exemple XSLT(2/4):feuille de style (suite)
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 94
Exemple XSLT(2/4):document produit
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 95
Programmation en utilisant XML
XML: eXtensible Markup Language
Partie 4:
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 96
XML et programmation objet
Les services sont souvent programms en langage objet Java, C++, C#, VB, PHP ...
Java langage pur objet portable et sr, semi-interprt le compilateur produit un fichier de byte code par classe possibilit de chargement dynamique de classe support du standard de composants JB et EJB
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
L XML SAX Si l API f XML
-
7/30/2019 coursXML
25/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 97
Les parseurs XML 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
indpendante de limplmentation
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 98
SAX: Simple API for XML
SAX
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
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 99
: r nc pe efonctionnement
Document
XMLParser
EvnementstartDocument
EvnementstartElement
EvnementendDocument
.
StreamXML
Mthodes
utilisateur
Default Handler
SAX Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 100
Les mthodes essentielles deDefaultHandler
XMLReader setContentHandler
setErrrorHandler
parse ContentHandler
startDocument
endDocument
startElement
endElement characters
ErrorHandler fatalError
error
warning EntityResolver
resolveEntity
SAX
Default Handler Exemple SAX
-
7/30/2019 coursXML
26/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 101
Default Handler
Principales mthodes:
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 102
Exemple SAXstartDocument ()
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
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 103
: exemp e ut sat on(Xerces)
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 104
DOM: Document Object Model
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 Exemple d'arbre DOM
-
7/30/2019 coursXML
27/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 105
Principaux parseurs DOM
Document
XML
Parseur
DOM
Arbre DOM
Application
API DOM
Sun, ...JAXP J2EE
Jason Hunter (libre)JDOM
MicrosoftMSXMLApache (Java, C++)Xerces
DOM Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 106
Exemple d arbre DOM
Le meilleur
restaurant
Document
NodeList
NodeList
NamedNodeMap
Attr
Element
NodeList
Element
Text
Racine du document
Id="R1"
Le meilleur restaurant
DOM
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 107
Lecture dun document XML avecDOM
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 108
Org.w3c.dom.Document
Interface qui reprsente une arborescence XML
Org w3c dom Element Org w3c dom Attr
-
7/30/2019 coursXML
28/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 109
Org.w3c.dom.Element
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
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 110
Org.w3c.dom.Attr
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
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 111
Exemple d'utilisation de DOMPublic class ExempleDOM
public static main (String argc[]) throws IOException, DOMExcetion
{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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 112
SAX et DOMSAX
Rapide
Peu gourmand en mmoire
Accs squentiel
Unidirectionnel audocument
DOM
Accs alatoire au
document Vue hirarchique dudocument
Permet deconstruire/modifier undocument
Gourmand en mmoire
Outils XML Pour finir
-
7/30/2019 coursXML
29/29
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 113
Outils XML Editeurs
XML SPY
Browsers Mozilla
Convertisseurs Xalan
Parseurs SAX, JDOM
Serveurs XML Cocoon (cadre de publication XML)
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 114
Pour finir
QUESTION:
Quest ce quon peut faire avec XML?
REPONSE: Imagination is more important than knowledge
Albert Einstein