Vous êtes sur la page 1sur 29

Sommaire

XML: eXtensible Markup Language


Fondements, Modlisation, Prsentation et Programmation 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 - 1

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 2

Notion de document lectronique


Dfinitions XML: eXtensible Markup Language Partie 1:
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) et un fond (structure physique)
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 4

Fondements et notions de base

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 3

Modles de document
Structure logique
Dcrit le contenu dun document (information) Par exemple: Chapitre, section, paragraphes, figures, notes

Exemple dun document (article)


Titre Auteur Section Paragraphe
XML: eXtensible Markup Language
Wikipdia 1. Introduction XML (Extensible Markup Language, langage de balisage extensible ) est un langage informatique de balisage gnrique. Le W3C recommande XML pour exprimer des langages de balisages spcifiques (exemples : XHTML, SVG, XSLT). Son objectif initial est de faciliter l'change automatis de contenus entre systmes d'informations htrognes, notamment, sur Internet. XML est un sous-ensemble de SGML dont il retient plusieurs principes dont : la structure d'un document XML est dfinissable et validable par un schma, un document XML est entirement transformable dans un autre document XML. 2. Objectif initial L'objectif initial de XML tait de proposer un SGML simplifi. Cette technologie

Structure physique
Dcrit la forme et le support du document (formatage) Par exemple: tomes, pages, cadres, pavs, fentres

Paragraphe

Caractristiques communes des 2 structures:


Composes ou lmentaires (molcule / atomes) Gnrique ou spcifique (date / le 29-11-2006) Section

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 5

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 6

Exemple dun document: Structure logique


<Article> <Titre> XML: eXtensible Markup Language </Titre> <Auteur>Wikipdia</Auteur> <Section titre = "Introduction"> <Paragraphe>XML (Extensible Markup Language, langage de balisage extensible ) est un langage informatique de balisage gnrique. Le W3C recommande XML pour exprimer des langages de balisages spcifiques (exemples : XHTML, SVG, XSLT). </Paragraphe> <Paragraphe> Son objectif initial est de faciliter l'change automatis de contenus entre systmes d'informations htrognes, notamment, sur Internet. XML est un sous-ensemble de SGML dont il retient plusieurs principes dont : la structure d'un document XML est dfinissable et validable par un schma, un document XML est entirement transformable dans un autre document XML. </Paragraphe> </Section> <Section titre= "Objectif initial"> </Section> </article>
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 7

Exemple dun document: Structure physique


<Article> <Titre police="Times" taille="24" position="centr" format="gras"/> <Auteur police="Times" taille="20" position="centr" format="italique"/> <Section numero="1" police="Times" taille="18" position="centr" format=" gras "/> <Paragraphe police="Times" taille="18" position="justifi"/> </article>

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 8

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

Langages de reprsentation de documents


Par ordre chronologique:
SGML (Norme ISO 8879 en 1986, rvise en 1988 et 1994)
Mta-langage gnral

448 membres industriels en septembre 2000 Accroitre le potentiel du WEB


Standards et Normes Techniques, langages et architectures pour lchange de documents sur le WEB
Origines
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 9

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 - 10

SGML: prsentation
Une norme internationale :
Standard Generalized Markup Language ISO 8879 - 1989

SGML : objectifs
Sparation du fond et de la forme
possibilit de multiples prsentations un seul document en SGML plusieurs formats : Postcript, HTML, etc.

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
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 11

Support de traitements sur le contenu des documents sans prise en compte de la forme Proposition dun cadre dfini pour lexpression des modles documentaires (validit, contrle) Format de stockage et dchange normalis
SGML
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 12

SGML : critiques
Trs lourd et complexe pour la mise en uvre de documents respectant ce format Une grande rigueur est demande l'entre des documents Standard complexe et complet pour le traitement des documents Liens hypertextes possibles mais complexes
SGML
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 13

HTML : prsentation
Propos par le W3C comme format de documents sur le Web Langage simple avec des balises standardises permettant la mise en forme dun texte. Standard reconnu par tous les navigateurs. Langage trs populaire sur le Web
<HTML> <HEAD> <TITLE> Exemple </TITLE> </HEAD> <BODY> <H1>Contenu du document</H1> <A HREF = "http://www.server.fr/Info /dir/test.html"> une rfrence externe</A> </BODY> </HTML>

HTML

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 14

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

SGML et HTML : Rsum


SGML
lange puissant pouvant dcrire toute structure Documents difficile dfinir Documents difficiles utiliser

HTML
spcialisation de SGML adapt la prsentation inadapt l'change entre programmes

Mises jour difficiles


restructuration ou remise en forme de lensemble des pages du site fastidieux Incapacit dextension sans "plugins" cot client (formules mathmatiques, 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 - 15

HTML

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 16

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 Group dirig par le W3C (depuis 1996) XML 1.0 = recommandation officielle du W3C depuis le 10 fvrier 1998
Origines
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 17

XML: objectifs fixs par le W3C (1)


XML doit pouvoir tre utilis sans difficult sur Internet XML doit soutenir une grande varit d'applications XML doit tre compatible avec SGML et HTML Il doit tre facile d'crire des programmes traitant les documents XML Le nombre d'options dans XML doit tre rduit au minimum, idalement aucune
Origines
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 18

XML: objectifs fixs par le W3C (2)


Les documents XML doivent tre lisibles par l'homme Les documents XML doivent tre raisonnablement clairs La spcification de XML doit tre disponible rapidement 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 - 19

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
Origines
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 20

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'autres applications ou aux navigateurs XML standardise la manire dont l'information est :

XML

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)

change prsente archive retrouve transforme crypte ...


Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 21

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 - 22

Concepts de XML
Balise (ou tag ou label)
Marque de dbut et fin permettant de reprer un lment textuel Forme: <balise> de dbut, </balise> de fin

Exemple 1 dun document XML

Elment de donnes
Texte encadr par une balise de dbut et une de fin Les lments de donnes peuvent tre imbriques
<producteur> <adresse> <rue>A. Einstein</rue> <ville>Villeurbanne</ville> </adresse> </producteur>

Attribut
Doublet nom="valeur" qualifiant une balise
<producteur no="160017" region="Rhne">

XML

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 23

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 24

Exemple 2 dun document XML

Structure Arborescente dun document XML

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 25

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 26

La base dun document XML: llment

Espaces de noms
Comment mixer des tags (ou balises) issus de diffrents langages? Un espace de noms est caractris par un prfixe
Le prfixe permet de retrouver le langage <!- dfinition des espaces de noms -> <tag xmlns:mic="http://www.michelin.com/2001/Guide", xmlns:pj="http://www.pagejaune.com/2001/Annuaire"> <! utilisation des espaces de noms -> <mic:Adresse><ville>Villeurbanne</ville><zip>69100</zip></mic:Adresse> <pj:Adresse>Villeurbanne 69 Rhne</pj:Adresse>

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 - 27

Mcanisme intressant pour l'intgration de contenus


XML
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 28

XML: contextes dutilisation


Architectures N-tiers

XML: contextes dutilisation


Stockage de donnes
Format spcifiques (exemple: SVG)

Production de documents XML partir de services (couche mtier) Transformation de ces documents pour des formats daffichage, dimpression, de transfert..
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 29 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 30

XML: contextes dutilisation


Stockage de donnes
Fichiers de configuration (exemple: JBOSS)
<?xml version="1.0" encoding = "ISO-8859-1"?> <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'> <ejb-jar> <enterprise-beans> <session> <ejb-name>LegoBlocksEJB</ejb-name> <home>legoBean.LegoBlocksSessionHome</home> <remote>legoBean.LegoBlocksSession</remote> <ejb-class>legoBean.LegoBlocksSessionBean</ejb-class> <session-type>Stateful</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> </ejb-jar>
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 31

XML: contextes dutilisation


Echange de donnes
changes Business to Business, services web

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 32

Bases de donnes vs XML

Equivalences BD / XML
Une table dans une BD peut correspondre un document XML (elle correspond en rel une classe dobjets)
<class name="person">

Une ligne dans la table dcrit une instance dun objet. Elle correspond un lment 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 pour une volumtrie moyenne

Approche Document
Structuration faible et complexe Systmes documentaires spcialiss Gestion de versions Recherche textuelle Indexation approche Accs type moteur de recherche Performances attendues moyenne pour une volumtrie forte
XML - 33

<instance id="Person_001">

Chaque colonne de la ligne correspond une proprit de lobjet


<property name="age">22</property>

Un autre contexte dutilisation de XML:


- Mapping relationnel/objet - Fusion de sources de donnes htrognes
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 34

Pourquoi XML ?

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

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

Langages XML : une nbuleuse en expansion


Transformations / prsentation Les anctres Validation Les liens

DSSSL XSL CSS

SGML HTML XML-RPC

XML-Schema DTD WSDL

HyTime

XLink

XPointer
Besoins spcifiques

Programmation

Dvelopp par le W3C


Pour le Web (Internet, Intranet) S'tend l'entreprise et ses partenaires

JAXP MS-XML DOM SAX

SVG OWL XML Encyption

SMIL

XML

WAP SOAP

MathML CML ThML


Interfaces utilisateurs

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 - 35

Interrogation / recherche

Description de ressources

XML Query XPath CC/PP

UIML

XUL

RDF Mpeg-7

SunML XFORMS USIXML


XML - 36

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

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 comme des chlorures 20 mg par litre et des nitrates avec 1 mg par litre. Elle est recueillie StCyr la Source, dans le dpartement du Loiret. Son code barre est 3274080005003 et son pH est de 7,45. Comme la bouteille est sale, quelques autres matriaux comme du fer s'y trouvent en suspension. Une seconde bouteille d'eau Cristaline a t, elle, recueillie la source d'Aurle dans les Alpes 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. Le code 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'ions calcium, 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 est 3057640117008. PS : Volvic est dans le Puy-de-Dme...

XML: Exercice (structuration de donnes)


<?xml version="1.0" encoding="ISO-8859-1" ?> - <eau> - <bouteille> <marque>Cristaline</marque> - <composition> <ion type="positif">calcium 71mg/l</ion> <ion type="positif">magnsium 5,5mg/l</ion> <ion type="negatif">chlorure 20mg/l</ion> <ion type="negatif">nitrate 1mg/l</ion> <autre type="metal">fer</autre> </composition> - <source> <ville>St-Cyr la Source</ville> <departement>Loiret</departement> </source> <code_barre>3274080005003</code_barre> <contenance unit="cl">150</contenance> <ph>7,45</ph> </bouteille> <bouteille> <marque>Cristaline</marque> - <composition> <ion type="positif">calcium 98mg/l</ion> </composition> - - <source> <ville>Aurle</ville> <departement>Alpes Maritimes</departement> </source> <code_barre>3268840001008</code_barre> <contenance unit="cl">50</contenance> <ph>7,4</ph> </bouteille> - <bouteille> <marque>Volvic</marque> - <composition> </composition> - <source> </source> </bouteille> </eau>

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 37

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 38

Introduction
XML: eXtensible Markup Language Partie 2: 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

Modlisation des documents: DTD et Schma


Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 39

Introduction

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 40

Validit des documents


Document bien form (Well Formed document)
Guillemets (ou apostrophes) obligatoires autour des valeurs
<adresse id=2 type=domicile/>

Exercice: documents bien forms?


QUESTION: Est-ce que les documents suivants sont bien forms ?

Les lments vides utilisent une notation spcifique


<image src=image3.gif/> <image src=image3.gif></image>

REPONSE 1:

Les balises doivent tre correctement imbriques


<b><i> NON ! </b></i>

REPONSE 2:

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 REPONSE 3:
Introduction
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 41 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 42

DTD
Permet de dfinir le vocabulaire et la structure qui seront utiliss dans le document XML Grammaire du langage dont les phrases sont des documents XML (instances) Peut tre mise dans un fichier (DTD externe) et tre appele dans le document XML
DTD
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 43

Dclaration d'lment simple


<! ELEMENT balise (dfinition) >
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
<! ELEMENT Nom (#PCDATA)> <Nom>Victor Hugo</Nom>
DTD
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 44

Dclaration d'lment compos


Dfinit une squence ou un choix d'lments Syntaxe spcifique avec oprateurs de composition d'lments :
<! ELEMENT balise (composition) >
Oprateur Signification + L'lment doit tre prsent au minimum une fois * L'lment peut tre prsent plusieurs fois (ou aucune) ? L'lment peut tre optionnellement prsent | L'lment A ou B peuvent tre prsents (pas les deux) , L'lment A doit tre prsent et suivi de l'lment B Les parenthses permettent de regrouper des lments afin de leur appliquer les () autres oprateurs Exemple A+ A* A? A|B A,B (A,B)+

Exemple d'lment compos

<!ELEMENT personne (nom, prenom+, tel?, adresse) > <!ELEMENT nom (#PCDATA) > <!ELEMENT prenom (#PCDATA) > <!ELEMENT tel(#PCDATA) > <!ELEMENT email (#PCDATA) > <!ELEMENT adresse (ANY) > <personne> <nom>Hugo</nom> <prenom>Victor</prenom> <prenom>Charles</prenom> <tel>01120243</tel> <adresse><rue></rue><ville>Paris</ville></adresse> </personne>

DTD

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 45

DTD

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 46

Dclaration d'attributs
<! ATTLIST balise Attribut Type Mode >
balise spcifie l'lment auquel est attach l'attribut Attribut est 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

Exemple d'attributs
<! ATTLIST personne num ID, age CDATA, genre (Masculin | Feminin ) > <!ELEMENT auteur (#PCDATA) > <!ELEMENT editeur (#PCDATA) > <!ATTLIST auteur genre (Masculin | Feminin ) #REQUIRED ville CDATA #IMPLIED> <!ATTLIST editeur ville CDATA #FIXED "Paris">
XML - 47

Enumration
Liste de valeurs spares par | <! ATTLIST balise Attribut (Valeur1 | Valeur2 | ... ) >

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

DTD

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 48

Exemple de DTD

Exemple de DTD interne


<?xml version="1.0" standalone="yes"?> <!DOCTYPE DOCUMENT [ <!ELEMENT DOCUMENT(PERSONNE*)> <!ELEMENT PERSONNE (#PCDATA)> <!ATTLIST PERSONNE PNUM ID #REQUIRED> <!ATTLIST PERSONNE MERE IDREF #IMPLIED> <!ATTLIST PERSONNE PERE IDREF #IMPLIED> ]> <DOCUMENT>
<PERSONNE PNUM = "P1">Marie</PERSONNE> <PERSONNE PNUM = "P2">Jean</PERSONNE> <PERSONNE PNUM = "P3" MERE="P1" PERE="P2">Pierre</PERSONNE> <PERSONNE PNUM = "P4" MERE="P1" PERE="P2">Julie</PERSONNE>

</DOCUMENT>
DTD
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 49

DTD

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 50

DTD externe
Modle pour plusieurs documents
partage des balises, attributs et structures

DTD : Entit paramtre


Permet la dfinition d'un groupe d'lments sous un nom (macro) <!ENTITY %nom "definition"> Rutilisable dans une DTD par simple appel %nom; Exemple :
<!ENTITY %genres "(homme | femme)"> <!ATTLIST auteur genre %genres; #REQUIRED>

Dfinition locale ou externe


<!DOCTYPE doc SYSTEM "doc.dtd"> <!DOCTYPE doc PUBLIC "www.myweb.com/doc.dtd">

Exemple de document
<?xml version="1.0" standalone="no"?> <!DOCTYPE modeles SYSTEM "modeles.dtd"> ...
DTD
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 51

Peuvent tre externes :


<!ENTITY %mpeg SYSTEM "http://www.mpeg.com">
DTD
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 52

DTD : Entit gnrale


Permet la dfinition d'un texte sous un nom
<!ENTITY nom "texte">

Quelques rgles d'criture


Modularit
dfinir dans des entits spares les parties rutilisables

Rutilisable dans un document par simple appel &nom; Exemple


<?xml version="1.0"?> <!DOCTYPE exemple [ <!ELEMENT exemple (#PCDATA, important)> <!ELEMENT important (#PCDATA)> <!ENTITY cie "Les Vignerons Runis"> <!ENTITY imp "<important>Attention!</important>"> ]> <exemple> &cie; &imp; </exemple>
DTD
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 53

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 - 54

DTD: Exercice (Catalogue de films)


On se propose de dfinir un format XML de stockage dun 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 lhistoire du film Un lien ventuel vers le site du film
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 55

DTD: Exercice (Catalogue de films)


<?xml version="1.0" encoding="ISO-8859-1"?> <!--premier niveau: cataloque --> <!ELEMENT cataloguedvd (fiche)*> <!--deuxime niveau: fiche --> <!ELEMENT fiche (titre, technique,commentaire?,internet?)> <!ATTLIST fiche genre (Horreur|Action|comdie|inconnu) #IMPLIED numero CDATA #REQUIRED> <!--troisime niveau: sous lments de fiche --> <!ELEMENT titre (#PCDATA)> <!ELEMENT commentaire (#PCDATA)> <!ELEMENT internet (#PCDATA)> <!ELEMENT technique (realisateur+,editeur+,acteur*)> <!--quatrime niveau: sous lments de technique --> <!ELEMENT realisateur (#PCDATA)> <!ELEMENT editeur (#PCDATA)> <!ELEMENT acteur (#PCDATA)>
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 56

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

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

Propositions de complments
XML-schema du W3C
DTD
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 57

types de donnes personnaliss extensibilit par hritage et ouverture analysable par un parseur XML standard
Schema
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 58

Objectifs des schmas


Reprendre les acquis des DTD
Plus riche et complet que les DTD

Les types XML


La base dun schma XML: llment
<xs:element name="" type=""/>

Permettre de typer les donnes


Elments simples et complexes Attributs simples

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 extension de ces types Complexe sil contient des sous lments ou sil comporte un attribut
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

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 - 59

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 60

Modles de contenu et types


Quatre catgories de modles de contenu

Les types simples


string
Confirm this is electric

ID
"A212"

byte
-1, 126

IDREF
"A212"

integer
-126789, -1, 0, 1, 126789

IDREFS
"A212" "B213"

positiveInteger
1, 126789

negativeInteger
-126789, -1

anyURI
http://www.example.com/e1.html#5

Deux catgories de types de donnes: simple et complexe

hexBinary
0FB7

language
en-GB, en-US, fr

int
-1, 126789675

dateTime
1999-05-31T13:20:00.000-05:00

unsignedInt
0, 1267896754

Et beaucoup dautres
Short, long, float

boolean
true, false 1, 0

date
1999-05-31

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 61

Schema

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 62

Les types complexes


Dfinition d'objets complexes
<sequence> : collection ordonne d'lments typs <all> : collection non ordonne d'lments typs <choice>: choix entre lments typs

Hritage de types
Dfinition de sous-types par hritage
Par extension : ajout d'informations Par restriction : ajout de contraintes

Exemple dextension :
<complexType name="AdressePays"> <complexContent> <extension base="Adresse"> <sequence> <element name="pays type="string"/> </sequence> </extension> </complexContent> </complexType>

Exemple
<xs:complexType name="AddresseFR"> <xs:sequence> <xs:element name="nom" type="xs:string"/> <xs:element name="rue" type="xs:string"/> <xs:element name="ville" type="xs:string"/> <xs:element name="codep" type="xs:decimal"/> </xs:sequence> <xs:attribute name="pays" type="xs:NMTOKEN" fixed="FR"/> </xs:complexType>
Schema
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 63

Possibilit de contraindre la drivation

Schema

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 64

Les patterns
Contraintes sur type simple prdfini Utilisation d'expression rgulires
Similaires celles de Perl

Rutilisation de types
Type simple avec extension <xs:simpleType name="num5"> <xs:restriction base="xs:string"> <xs:pattern value="\d{5}"/> </xs:restriction> </xs:simpleType> Type complexe (squence) <xs:element name="livre"> <xs:complexType> <xs:sequence> <xs:element name="Titre" type="xs:string"/> <xs:element name="Auteur" type="xs:string"/> <xs:element name="ISBN" type="num5"/> </xs:sequence> </xs:complexType> </xs:element>

Exemple de restriction
<xs:simpleType name="num5"> <xs:restriction base="xs:string"> <xs:pattern value="\d{5}"/> </xs:restriction> </xs:simpleType> Autres facettes de restriction - xs:mininclusive, xs:maxexclusive, xs:enumeration, xs:length
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 65

Schema

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 66

Les occurences
Une bibliothque contient au moins un livre
<xs:element name="biblio"> <xs:complexType> <xs:sequence> <xs:element ref="livre" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element>

Les attributs 1/2


Les lments contenu simple avec attributs
<titre id="RF525">La bible de XML</titre> <xs:complexType name="titleWithID"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="id" type="xs:ID"/> </xs:extension> </xs:simpleContent> </xs:complexType>
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 68

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 67

Les attributs 2/2


Les lments contenu complexe avec attributs
<traduction langue="allemand" dateTraduction="2003-12-01"> <traducteur>Michael</traducteur> </traduction>
<xs:element name="traduction" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="traducteur" type="xs:string" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="langue" use="required" type="xs:string"/> <xs:attribute name="dateTraduction" use="optional" type="xs:date"/> </xs:complexType> </xs:element>
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 69

Groupage dlments
<xs:group name="TitreAuteurISBN"> <xs:sequence> <xs:element name="Titre" type="xs:string"/> <xs:element name="Auteur" type="xs:string"/> <xs:element name="ISBN" type="num5"/> </xs:sequence> </xs:group> <xs:element name="livre"> <xs:complexType> <xs:sequence> <xs:group ref="TitreAuteurISBN"/> <xs:element ref="traduction"/> </xs:sequence> </xs:complexType> </xs:element>
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 70

Rfrence un Schma XML


Rfrence sans espace de noms

Bilan DTD et Schma


Les DTD dfinissent la grammaire des documents Elles sont de plus en plus souvent remplaces par des schmas

Rfrence avec espace de noms

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

Schema

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 71

DTD et Schema

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 72

Formatage de document XML


XML: eXtensible Markup Language Partie 3: Un document et sa DTD ou schma ne donnent pas dindications sur sa reprsentation.
Une description supplmentaire est ncessaire:
DSSSL
Document Style Semantics and Specification language

CSS
Cascading Style Sheets

XSL
eXtensible Stylesheet Language

Prsentation et transformations de documents


Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 73

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 74

Cascading Style Sheets (CSS)


Recommandation W3C (CSS1: 1996, CSS2: 1998) Sapplique HTML et XML Support approximatif par les navigateurs
Voir http://www.richinstyle.com/bugs/table.html Meilleurs support dans Mozilla et IE6

CSS: Syntaxe
Attachement dune feuille de style un document
<xml-stylesheet type="text/css" href="livre.css"?>

Syntaxe gnrale
Slecteur {proprit: valeur; proprit: valeur;}

Slecteur
Voir http://www.w3.org/TR/REC-CSS2/selector.html
el el1 el2 el [att=foo ] el:hover el:first-line Les lments el Les lments el2 descendants de el1 Les lments el contenant un attribut att de valeur foo Un lment el lorsquil est survol par la souris La premire ligne dun lment el

Principes
Cascade Correspondance dlments (slecteurs)
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 75

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 76

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)

CSS: proprits usuelles

Mesures absolues: px, pt, mm, cm

Couleurs
Prdfinis: black, blue, green, maroon, yellow, Numriques: #rrvvbb, rgb (n, n, n)

Exemple
texte { font-size: 1.2em; line-height: 3ex; }

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 77

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 78

Proprit

CSS: Exemple (extrait)


Valeur

Faiblesses de CSS
CSS a t initialement prvu pou la prsentation des documents HTML Mme dfauts que HTML

slecteur

instruction

- Syntaxe non modifiable et non extensible - Syntaxe difficile normaliser - Difficults pour trouver des lments

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 79

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 80

XPath: adressage dans un document XML


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 Un slecteur pour syntaxe gnrale: lment[prdicat]

XPath: syntaxe gnrale (1)


Cascade de termes de slection
Slecteur/selecteur/selecteur Selecteur: axe :: filtre [predicat]

Exemples:
image [@imgsrc=joconde.jpg] /livre/listeEmprunts/emprunt[2]/sortie
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 81 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 82

XPath: syntaxe gnrale (2)


Selecteur: axe :: filtre [predicat]

XPath: syntaxe gnrale (3)


Selecteur: axe :: filtre [predicat] Prdicat de slection
Le prdicat est optionnel Combinaison boolenne de prdicats simples (AND et OR)

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

Voir http://www.w3.org/TR/xpath pour une description complte des fonctions disponibles


Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 84

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 83

XPath: syntaxe abrge


Rgles dabrviation Exemples
Child :: image [attribute :: imgsrc =joconde.jpg] image [@imgsrc=joconde.jpg]
Child::livre Attribute::imgsrc Self::node parent::node Descendant-or-self::node() [position()=x] livre @imgsrc . .. // [x]

XSL: eXtensible style sheet Language


Description du formatage appliquer un document XML Compos de deux sous-ensembles

/descendant:: emprunt [position() =2] /child:: sortie // emprunt [2] /sortie


Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 85 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 86

XSLT: XSL transformation


Langage de transformation dun arbre XML dans un autre
Restructuration Gnration (indexes, tables, )

XSLT: principes gnraux


Une feuille XSLT est un document XML <xsl-stylesheet xmlns:xsl=http://www.w3.org/1999/XSL/Transform> </xsl-stylesheet>

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)

Ensemble de rgles

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 - 87

Slection dlments et description de rendu produire en sortie

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 88

Rgles XSL: slection


Syntaxe XPath par rapport au nud courant

Rgles XSL: production


Rptition
<xsl: template match="ListeEmprunt"> <table> <tr><th>Emprunteur</th> <th>sortie<th><th>Retour</th> </tr> <xsl:for-each select="emprunt"> <tr><td><xsl:value-of select="emprunteur"/></td></tr> </xsl:for-each> </table> </xsl: template>

Utilisation de llment <xsl: template match=selecteur>


<xsl: template match="para"> <./xsl: template> <xsl: template match="book[index] "> <./xsl: template> <xsl: template match="book[@title=Moby Dick] "/chapter>

Rgles nommes
<xsl: call-template name="format-date">

Conditions
<xsl: if test="condition"> </xsl: if > <xsl: choose> <xsl: when test="condition" > </xsl: when> </xsl: choose>
XML - 89 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 90

<xsl:template name="format-date"></xsl:template>

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

Exemple XSLT(1/4):
Document XML dorigine

Exemple XSLT(2/4):
feuille de style

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 91

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 92

Exemple XSLT(2/4):
feuille de style (suite)

Exemple XSLT(2/4):
document produit

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 93

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 94

XML et programmation objet


Les services sont souvent programms en langage objet

XML: eXtensible Markup Language Partie 4:

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

Programmation en utilisant 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)

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 95

Tarak Serveurs d'applicationsCHAARI - Dpt Tlcommunications Janvier 2007

XML - 96

Les parseurs XML


SAX (Simple API for XML)
Dveloppement communautaire http://sax.sourceforge.net

SAX: Simple API for XML


SAX (Simple API for XML)
modle simplifi d'vnements dvelopp par un groupe indpendant.

DOM (Document Object Model)


Recommandation W3C http://www.w3.org/DOM/

Types d'vnement :
dbut et fin de document ; dbut et fin d'lments ; attributs, texte, .

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 - 97

Nombreux parseurs publics


XP de James Clark, Aelfred, Saxon MSXML3 de Microsoft Xerces de Apache JAXP de SUN
SAX
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 98

SAX: Principe de fonctionnement


Evnement startDocument Mthodes utilisateur

Les mthodes essentielles de DefaultHandler


XMLReader
setContentHandler setErrrorHandler parse

ErrorHandler
fatalError error warning

Document XML

Stream XML

Parser

Evnement startElement

ContentHandler
.

EntityResolver
resolveEntity

Evnement endDocument

Default Handler


XML - 99

startDocument endDocument startElement endElement characters

SAX

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

SAX

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 100

Default Handler
Principales mthodes:

Exemple SAX
<personne> <nom> Cover </nom> <prenom> Harry </prenom> <adresse> <rue> Stendhal </rue> <ville> Paris </ville> </adresse> </personne>
XML - 101

startDocument () 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 ()
XML - 102

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

SAX: exemple dutilisation (Xerces)

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
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 103 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 104

Principaux parseurs DOM


Document XML

Exemple d'arbre DOM


Document NodeList Racine du document

Xerces MSXML JDOM JAXP J2EE

Apache (Java, C++) Microsoft Jason Hunter Sun, ...


Arbre DOM API DOM Parseur DOM

Element

<Guide>

NodeList <Restaurant>

(libre)
Element

<Guide>
<Restaurant id="R1">Le meilleur restaurant</Restaurant>

NamedNodeMap Attr NodeList Text Le meilleur restaurant Id="R1"

Application

</Guide>

DOM

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 105

DOM

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 106

Lecture dun document XML avec DOM

Org.w3c.dom.Document
Interface qui reprsente une arborescence XML

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 107

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 108

Org.w3c.dom.Element
Interface reprsentant un lment XML
String getAttribute(String name) Retrieves an attribute value by name. Attr getAttributeNode(String name) Retrieves an attribute node by name. NodeList 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. String getTagName() The name of the element. void removeAttribute(String name) Removes an attribute by name. void setAttribute(String name, String value) Adds a new attribute.

Org.w3c.dom.Attr
Interface reprsentant un attribut XML
String getName() Returns the name of this attribute. Element getOwnerElement() The Element node this attribute is attached to or null if this attribute is not in use. boolean getSpecified() If this attribute was explicitly given a value in the original document, this is true; otherwise, it is false. String getValue() On retrieval, the value of the attribute is returned as a string. void setValue(String value) On retrieval, the value of the attribute is returned as a string.

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 109

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 110

Exemple d'utilisation de DOM


Public 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); } }

SAX et DOM
SAX DOM

Rapide Peu gourmand en mmoire

Accs alatoire au document Vue hirarchique du document

Accs squentiel
Document: <nom ville ="Paris"> <prenom> Jean </prenom> <nomfa> Dupont </nomfa> </nom>

Unidirectionnel au document

Permet de construire/modifier un document

Gourmand en mmoire
XML - 111 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 112

DOM

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

Outils XML
Editeurs
XML SPY

Pour finir
QUESTION:
Quest ce quon peut faire avec XML?

Browsers
Mozilla

Convertisseurs
Xalan

Parseurs
SAX, JDOM

REPONSE:
Imagination is more important than knowledge
Albert Einstein

Serveurs XML
Cocoon (cadre de publication XML)
Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 113

Tarak CHAARI - Dpt Tlcommunications Janvier 2007

XML - 114