Vous êtes sur la page 1sur 116

Introduction XML

Par Yves Bekkers


Mise jour : 14 dcembre 2013

XML - Yves Bekkers - IFSIC

Plan
Balisage textuel Un peu dhistoire XML - concepts de base Outils de la galaxie XML Exemples dapplications Conclusions
XML - Yves Bekkers - IFSIC 2

Balisage textuel

XML - Yves Bekkers - IFSIC

Le balisage une longue histoire


Balisages des manuscrits pour l'imprimerie Balisages des documents numriques
Photocomposition Unix : troff, Latex GML - SGML

XML - Yves Bekkers - IFSIC

Des manuscrits pour l'imprimerie


Balisage : processus par lequel un rdacteur introduisait des marques (balises) dans un manuscrit pour indiquer limprimeur comment composer (formater) le manuscrit. Balise : gnralement, commentaire crit la main :
composer le titre avec la police Hevetica-mdiumItalic corps 12 et avec un interlignage de 14 points, justifi sur une largeur de 22 picas avec renfoncement de un demi cadratin gauche et de zro droite
XML - Yves Bekkers - IFSIC 5

Le balisage de texte numriques avant les rseaux

XML - Yves Bekkers - IFSIC

Photo-composition
le langage Nortext-100 de Norsk Data
<CC 15,5,12>On demande la police numro 5, en corps 12 et avec une justification de 15 units. <SS><QL> <CC 20,8>Maintenant. on prend la police 8 et une justification de 20 units. <QL> <RS>Et maintenant on repart avec les valeurs typographiques initiales.<EP>
XML - Yves Bekkers - IFSIC 7

Troff
Une commande Unix pour le formatage de texte
.\" @(#)troff.1 1.66 95/10/09 SMI; .TH troff 1 "6 Oct 1992" .SH NAME troff \- typeset or format documents .SH SYNOPSIS .B troff

XML - Yves Bekkers - IFSIC

Tex & LaTex


Quoi : langage pour dcrire des documents imprims de qualit Par qui : Donald Knuth Quand : 1970-1980
\noindent Ce texte comporte 3 pages\hfill \vspace*{1cm} \section{Analyse syntaxique et les DCG} La syntaxe BNF offre des oprateurs tels que ``|'' qui signifie un choix parmi
XML - Yves Bekkers - IFSIC 9

Balisage de documents numriques pour le WEB


Exemples

XML - Yves Bekkers - IFSIC

10

Visualiser une carte de visite


Exemple
Yves Bekkers IFSIC 42 avenue gnral Leclerc 35042 Rennes Enseigne XML au SEP de Rennes 1

Trois manires de visualiser ce contenu sur le WEB


Sur un cran : HTML

Par impression : PDF


Graphique : SVG
XML - Yves Bekkers - IFSIC 11

HTML
(visualis par Mozilla)

XML - Yves Bekkers - IFSIC

12

PDF
(visualis par Acrobat)

XML - Yves Bekkers - IFSIC

13

Graphe SVG
(visualis par Mozilla + Adobe SVG-Viewer)

XML - Yves Bekkers - IFSIC

14

Question-rponse
Question
Quest ce qui relie ces trois exemples ?

Rponse
Documents structurs Les langages balises

XML - Yves Bekkers - IFSIC

15

Carte de visite en html


<html> <head><title>Carte de visite</title></head> <body> <p>Yves Bekkers</p> <p>IFSIC</p> <p>42 avenue gnral Leclerc</p> <p>35042 Rennes</p> <p>Enseigne <em>XML</em> au SEP de Rennes 1</p> </body> </html>
XML - Yves Bekkers - IFSIC 16

Arbre - HTML

XML - Yves Bekkers - IFSIC

17

Utilisation du format HTML

Netscape ou IExplorer

XML - Yves Bekkers - IFSIC

18

Format imprimable Xsl-FO


<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="first" margin-left="2cm" margin-right="2cm" margin-bottom="0.5cm" margin-top="0.75cm"> <fo:region-body /> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-name="first"> <fo:flow flow-name="xsl-region-body" font-size="16pt"> <fo:block>Yves Bekkers</fo:block> <fo:block>IFSIC</fo:block> <fo:block>42 avenue Gnral Leclerc</fo:block> <fo:block>35042 Rennes</fo:block> <fo:block>Enseigne <fo:inline font-style="italic"> XML</fo:inline> au SEP de Rennes 1</fo:block> </fo:flow> </fo:page-sequence> XML - Yves Bekkers - IFSIC 19 </fo:root>

Arbre - format FO

XML - Yves Bekkers - IFSIC

20

Utilisation du format FO
Processeur FOP dApache pdf

Acrobat

XML - Yves Bekkers - IFSIC

21

Carte de Visite graphique en SVG


<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"> <defs><path id="MyPath" d="M 100 200 C 200 100 300 0 400 100 C 500 200 600 300 700 200 C 800 100 900 100 900 100"/></defs> <use xlink:href="#MyPath" fill="none" stroke="red"/> <text font-family="Verdana" font-size="19" fill="blue"> <textPath xlink:href="#MyPath"> Yves Bekkers, IFSIC, 42 avenue Gnral Leclerc, 35042 Rennes, Enseigne XML au SEP de Rennes 1 </textPath> </text> XML - Yves Bekkers - IFSIC 22 </svg>

Arbre SVG

XML - Yves Bekkers - IFSIC

23

Utilisation du format SVG

Netscape ou Iexplorer + Adobe viewer

XML - Yves Bekkers - IFSIC

24

Une mme information trois structures

XML - Yves Bekkers - IFSIC

25

A propos de ces trois exemples


Quatre outils
Netscape IExplorer Processeur FOP dApache Adobe SVG viewer

Le problme :
tre en mesure de diffrencier la forme du fond au sein dun document La solution : les langages balise
XML - Yves Bekkers - IFSIC 26

Trois langages balises


trois dialectes xml
xhtml Xsl-FO

svg

XML - Yves Bekkers - IFSIC

27

Un peu d'histoire

SGML, HTML les deux prcurseurs dXML

XML - Yves Bekkers - IFSIC

28

GML premire normalisation du balisage


Quoi : unifier trois systmes disparates
une application ddition de texte, une application de composition une base pour linterrogation documentaire.

Par qui : Charles Goldfarb O : IBM, New York Pour qui : un consortium davocats Quand : 1969
XML - Yves Bekkers - IFSIC 29

GML : comment
Des documents contenant un mlange harmonieux :
dinformation et de mta-information de structure

Documents comprhensibles par les machines Documents textuels faciles mettre en uvre
ditables laide de nimporte quel diteur de texte
XML - Yves Bekkers - IFSIC 30

GML : comment (bis)


Comme les bases de donnes
On peut rechercher linformation par son contenu On peut tiqueter linformation par identificateur unique

XML - Yves Bekkers - IFSIC

31

Un exemple de dialect GML (1978)


DCF (Document Composition Facility), un anctre de html
Le premier dialect GML qui Goldfarb va donner une DTD.
:h1.Chapter 1: Introduction :p.GML supported hierarchical containers, such as :ol. :li.Ordered lists (like this one), :li.Unordered lists, and :li.Definition lists :eol. as well as simple structures. :p.Markup minimization (later generalized and formalized in SGML), allowed the end-tags to be omitted for the "h1" and "p" elements.
XML - Yves Bekkers - IFSIC 32

GML un norme succs


La mise en oeuvre est gnrique, elle sapplique dautres types de documents
Exemple : documenter un porte avion pour le DOD

1986 norme ISO (ISO 8879) pour Standard GML (SGML)

XML - Yves Bekkers - IFSIC

33

Naissance dHTML
Contexte : 1991, gnralisation des rseaux Problme : afficher en nimporte quel point dun rseau de linformation conserve de manire rpartie sur divers machines du rseaux Qui : Tim Berners-Lee, CERN

XML - Yves Bekkers - IFSIC

34

Solution au problme de publication sur rseau (1)


Contexte : dj 15 ans d'exprience SGML On conoit un dialecte de SGML pour dcrire dans un mme document linformation et son mode de prsentation La simplicit du langage garantit quon peut raliser rapidement sur toute machine des processeurs de prsentation des documents : naissance des XML navigateurs - Yves Bekkers - IFSIC 35

Solution au problme de publication sur rseau (2)


Contexte : SGML ne prend pas en compte la dimension rseau Solution : On tend le dialecte SGML par un systme dadressage universel des documents travers les rseaux
naissance des liens hypertexte ou URLs
XML - Yves Bekkers - IFSIC 36

Solution au problme de publication sur rseau (3)


Contexte : De nouveaux types de documents tels que des images et du son, ont fait leur apparition. Solution : On tend les possibilits daffichage des navigateurs
naissance du multimdia
XML - Yves Bekkers - IFSIC 37

HTML - les avantages


Un langage balise issu de SGML permettant de transporter en mme temps linformation et la mta-information qui dcrit sa prsentation Accs rparti sur le rseau grce aux liens hypertexte Extension de la notion daffiche dautres documents que les textes, introduction du multimdia XML - Yves Bekkers - IFSIC 38

HTML un norme succs mais ...


Succs repris par Le World Wide Web Consortium (W3C) structuration limite
lie l'dition sur cran

cache la structure logique liens hypertexte trop pauvres mta-donnes pas assez riches simple ==> compliqu
plus de 100 balises normalises, foisonnement des XML - Yves Bekkers - IFSIC 39 balises propritaires

Rflexions issues de lexprience HTML


Le World Wide Web Consortium (W3C) Crer en 1996 d'un groupe de rflexion sur SGML et HTML Ide : recherche dun schma gnral de langage pour la structuration de l'information et sa communication sur le WEB Intrt : mise en commun des efforts
par des outils par des normesXML complmentaires - Yves Bekkers - IFSIC
40

Conclusions du groupe de Travail


Rsultats donns en 1998 Prendre SGML
sa simplicit l'accessibilit l'information la gnricit (pas de balise prdfinie)

Prendre HTML
liens hypertexte en les gnralisant notion de document multimdia La notion de mta-donnes en la gnralisant
XML - Yves Bekkers - IFSIC 41

HTML versus XML


HTML publication hypertexte sur cran XML gnricit + change de donnes
pas de balises normalises, l'auteur cre ses propres balises balisages plus strict pour simplifier le traitement des documents la casse des caractres dans les noms d'lments est significative Structurer linformation selon sa propre logique
XML - Yves Bekkers - IFSIC 42

Les dates
1969 naissance de GML -------------------------------GML SGML Tim Berners-Lee - CERN HTML Charles Goldfarb - IBM

1980 premier draft sur SGML -------------------------1986 norme ISO pour SGML 1991 naissance d'HTML et du premier navigateur ---1993 explosion du WEB 1996 constat de limites d'HTML 1997 norme HTML 4 par le WWW -----------------1998 publication de "XML, Java et le futur du WEB" ---1999 norme XHTML -------------------------------------

HTML4 XML XHTML


43

XML - Yves Bekkers - IFSIC

Carte de visite logique


<carteDeVisite> <prnom>Yves</prnom> <nom>Bekkers</nom> <organisme>IFSIC</organisme> <adresse> <numro>42</numro> <voie type="avenue">Gnral Leclerc</voie> <ville codepostal="35042">Rennes</ville> </adresse> <note> Enseigne <cl>XML</cl> au SEP de Rennes 1 </note> XML - Yves Bekkers - IFSIC 44 </carteDeVisite>

Arbre logique

XML - Yves Bekkers - IFSIC

45

Le prix dun arbre logique (1)


?

Navigateur
XML - Yves Bekkers - IFSIC 46

Le prix dun arbre logique (2)


Prog. Feuille de style

Processeur XSLT

XML - Yves Bekkers - IFSIC

Navigateur

47

Intrt dun arbre logique

html

Xsl-FO

svg

Un mme source, de multiples formatages diffrents


XML - Yves Bekkers - IFSIC 48

XHTML
XHTML = HTML + XML
plus qu'un simple changement de syntaxe production automatique de table des matires production automatique de multiples versions combinaison avec d'autres documents (MathML, SVG, ...) modularit ( venir)

diter du xhtml : Amaya produire du xhtml avec du html : Tidy


XML - Yves Bekkers - IFSIC 49

XHTML versus XML


XHTML un dialecte XML ddi la prsentation
<body> <p><b>Titre</b> : XSLT : Programmer's Reference</p> <p><b>Auteur</b> : Michael Kay</p> <p><b>Pages</b> : 392</p> <p><b>Editeur</b> : Wrox</p> <p><b>Srie</b> : Programmer to Programmer</p> </body>

XML des dialectes qui permettent la recherche par le contenu


<livre> <titre>XSLT : Programmer's Reference</titre> <auteur>Michael Kay</auteur> <pages>392</pages> <editeur>Wrox</editeur> <serie>Programmer to Programmer</serie> </livre>
XML - Yves Bekkers - IFSIC

50

Les trois dimensions de XML


Publication

LATEX

SGML

HTML

XML SGBD
Systme d'information

URL
Adressage hypertexte

XML - Yves Bekkers - IFSIC

51

XML
eXtensible Markup Language

Concepts de base

XML - Yves Bekkers - IFSIC

52

Elment
Un nom + des attributs ventuels + un contenu <nom attr1="val1" > contenu </nom>

Balise de dbut avec un nom + balise de fin avec le mme nom


2 Exemples :
<p> <personne> <prnom>Yves</prnom>

Yves Bekkers
</p>

<nom>Bekkers</nom>
</personne>
XML - Yves Bekkers - IFSIC 53

La forme + le fond
La forme

Balise d'ouverture Contenu Balise de fermeture

<p>

Le fond

Yves Bekkers </p>

A limage des SGBD, un document XML contient le texte et son rfrent


XML - Yves Bekkers - IFSIC 54

Contenu dlment
Quatre

types de contenus
<p> Yves Bekkers </p> <body> <p></p> <p></p> </body> <p> enseigne <em>XML</em> au SEP de Rennes1 </p> <br></br>
XML - Yves Bekkers - IFSIC 55

Texte Elments Contenu mixte

Vide

lments contenu vide


<br></br>

Raccourci autoris
<br/>

XML - Yves Bekkers - IFSIC

56

Construire des arbres


<p> enseigne <em>XML</em> au SEP de Rennes1 </p>
P enseigne em XML
XML - Yves Bekkers - IFSIC 57

au SEP de Rennes1

Attribut
Quoi : un nom + une valeur O : au sein de balise ouvrante dlment Signification : qualifie llment Exemple :

<fo:inline font-style="italic"> XML </fo:inline>

XML - Yves Bekkers - IFSIC

58

Attribut (bis)
Exemple dlment : <fo:inline font-style="italic"> XML </fo:inline>
fo:inline

et son arbre :

XML

@font-style italic

XML - Yves Bekkers - IFSIC

59

Documents bien forms

XML - Yves Bekkers - IFSIC

60

Structure dun document XML


Un Prologue (ventuellement) Un lment racine (et un seul)
arbre d'lments et leurs attributs

Des Commentaires Des instructions de traitement

XML - Yves Bekkers - IFSIC

61

Structure dun document - exemple


<?xml version="1.0" encoding="ISO-8859-1"?> Prologue <!-- ceci est une carte de visite --> <carteDeVisite> Commentaire <prnom>Yves</prnom> <nom>Bekkers</nom> lment racine <adresse> <numro>42</numro> <voie type="avenue">gnral Leclerc</voie> <ville codepostal="35042">Rennes</ville> </adresse> <note> Enseigne <cl>XML</cl> au SEP de Rennes 1 </note> </carteDeVisite>
XML - Yves Bekkers - IFSIC 62

Document bien form


Rgle : Un document XML comporte un seul lment racine
<?xml version="1.0"?> <livre>XLST Programmer's reference</livre> <livre>XML et Java</livre>

Est interdit Rgle : Toute balise ouvrante doit avoir sa balise fermante <br> sans </br> est interdit en XML
XML - Yves Bekkers - IFSIC 63

Document bien form (bis)


Rgle : Le parenthsage doit tre correct <a><b></b></a> est bien form, quivalent [ ( ) ] <a><b></a></b>

est mal form, quivalent [ ( ] )


XML - Yves Bekkers - IFSIC 64

Syntaxe des noms dlment (exemples)


nom prnom -la-ligne xsl:value-of n123 dcompte.client first_name
XML - Yves Bekkers - IFSIC 65

Syntaxe des noms dlments (bis)


Name NameChar Digit Letter ::=(Letter | '_' | ':') (NameChar)* ::= Letter | Digit | '.' | '-' | '_' | ':' ::= 0 | 1 | | 9 Toutes les lettres de tous les alphabets (par exemple les lettres accentues de l'alphabet latin)
XML - Yves Bekkers - IFSIC 66

Syntaxe des noms dlments (ter)


Rgle : Les majuscules et les minuscules sont diffrencies (plus stricte quHTML)

XML - Yves Bekkers - IFSIC

67

Notation des valeurs dattributs


Rgle : Les valeurs dattribut doivent tre encadres par des doubles cotes " ou des simples cotes mais <a href=monFichier></a>
est interdit (plus stricte quHTML)

XML - Yves Bekkers - IFSIC

68

Attribut
Rgle : Un attribut pour un lment donn ne peut avoir quune seule valeur Exemple <a href="val1" href="val2"> ... </a>

est interdit
XML - Yves Bekkers - IFSIC 69

Composants complmentaires
Entits (macro)
dclaration <!ENTITY lp "lambdaProlog"> rfrence &lp;

Commentaires
<!-- ceci est un commentaire -->

Instructions de traitement
<?nom arg1 arg2 ... argn ?>

Sections littrales (chappements)


<![CDATA[if i < 2 then i++]]>

XML - Yves Bekkers - IFSIC

70

Instructions de traitement Exemples


Schma d'une instruction de traitement
<?nom arg1 arg2 ... argn ?>

Appel d'un processeur XSLT


<?xml-stylesheet type="text/xsl" href="myXsl.xslt"?>

Rfrence une feuille de stype CSS


<?xml-stylesheet type="text/css" href="myCss.css"?>

XML - Yves Bekkers - IFSIC

71

Rsum
Un document XML est compos de
lments
Texte Autres lments Mixte (texte + lments) Vide

Commentaires Instructions de traitement Sections littrales


XML - Yves Bekkers - IFSIC 72

Exemple complet
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- ceci est un document XML --> <?xml-stylesheet type="text/css" href="prog.css"?> <programme id="p1"> <!- Instruction conditionnelle --> <instruction> <test><![CDATA[x < 2]]></test> <instruction>x = x +1</instruction> <instruction> </programme>

Attention
La premire ligne ne fait pas partie du document, elle est consomme au moment de la lecture du document par les applications
XML - Yves Bekkers - IFSIC 73

Codage

XML - Yves Bekkers - IFSIC

74

Codage
Deux niveaux de codage
codage externe : dpendant des outils de saisie codage interne : Unicode
Ascii, UTF8, IsoLatin-1, ... Unicode

Dtection semi automatique du type de codage externe


s'aide du premier caractre de la premire ligne : "<"
XML - Yves Bekkers - IFSIC 75

Unicode
Codage sur 16 bits (au dbut) 21 bit actuellement Ambitieux : toutes les langues de la terre Unification : liminer les redondances Spare la dfinition du jeu de caractres (la liste des caractres, leur nom et leur index) de celle de l'encodage
on ne peut donc pas parler de la taille d'un caractre Unicode (dpend de l'encodage choisi )

Prs de 100000 caractres


caractres composites

Convertibilit
Ascii dans le bas du tableau

>1000 pages de dfinitions ...


XML - Yves Bekkers - IFSIC 76

Composition de caractres
Unicode ne code pas les descriptions des caractres, les glyphes c'est--dire la reprsentation graphique du caractre. ainsi, le caractre franais peut-il tre dcrit de deux manires :
en utilisant directement le numro correspondant au , en faisant suivre le numro du 'e' par celui de l'accent aigu sans chasse. Quelle que soit l'option choisie le mme glyphe sera affich. On dira du premier caractre qu'il est prcompos, du second que c'est une composition (deux caractres forment un seul glyphe compos des deux).

De nombreux glyphes peuvent tre cods de ces deux manires. Le plus souvent, le glyphe prcompos est prfrable
XML - Yves Bekkers - IFSIC 77

Partionnement
0000..007F; Latin de base 0080..00FF; Supplment Latin-1 ... 0370..03FF; Grec et copte 0400..04FF; Cyrillique 0500..052F; Supplment cyrillique 0530..058F; Armnien 0590..05FF; Hbreu 0600..06FF; Arabe ... 1780..17FF; Khmer 1800..18AF; Mongol ... 10100..1013F; Nombres gens ... 1D000..1D0FF; Symboles musicaux byzantins 1D100..1D1FF; Symboles musicaux occidentaux ... XML - Yves Bekkers - IFSIC

78

Codage externe
Dpend de loutil utilis pour la saisie du document et du systme qui le supporte :
Word sous windows Emacs sous linux

XML - Yves Bekkers - IFSIC

79

Codages externes - exemples


Ascii ou Iso 646 (adopt en 1963)
Codage 7 bits (27 = 128 caractres)

Latin 1 (ISO-8859-1)
Codage 8 bits (28 = 256 caractres), les 128 premiers caractres sont ceux dAscii (manque le )

Latin 9 (ISO-8859-15)
Codage 8 bits (28 = 256 caractres), lgre modification de Latin 1 apparition de : , , et
XML - Yves Bekkers - IFSIC 80

UTF Unicode Transformation Format


Unicode accepte plusieurs formes de prsentation pour reprsenter un caractre (au sens de symbole). UTF8 (le plus courant)
codage sur une squence d'octets (1 4) nombreuses proprits intressantes pour les logiciels de traitement
ASCII sur un seul caractre Chaque octet une nature qui facilite la reconnaissance du multi-octet

UTF16 (java, Windows)


codage sur une squence d'octets (2 ou 4)

UTF32 Le chiffre aprs UTF reprsente le nombre minimal de bits avec lequel un caractre est cod.
XML - Yves Bekkers - IFSIC 81

Exemple - le symbole Euro


Glyphe (il) Code Unicode Latin 9 UTF8 (3 octets)

UTF16

20AC A4 11100010 10000010 10101100 20AC

XML - Yves Bekkers - IFSIC

82

Dsigner un caractre par son code


Notation qui permet de dsigner un caractre par son code unicode
Rfrence En dcimal En hexadcimal
&#238; &#x2200; &#x0152; &#xA9;

Caractre

Exemple d'utilisation : "le gte et le couvert"


<titre>le g&#238;te et le couvert<titre>
XML - Yves Bekkers - IFSIC 83

Caractres spciaux
Cinq entits prdfinies
Rfrence
&amp; &lt; &gt; &apos; &quot;

Glyphe & < > '

Nom ampersand plus petit plus grand apostrophe

"

double quote

Exemple d'utilisation : "A >5"


<if>A &gt; 5</if>
XML - Yves Bekkers - IFSIC 84

Notion de dialects XML

XML - Yves Bekkers - IFSIC

85

Gnricit d'XML
XML comme SGML nest pas un langage
cest un cadre pour dfinir des langages

Chaque application dfinit son (ses) dialect(s)


Un dialect = un type de document

Il existe des grammaires pour dfinir les dialects


DTD, Schma XML,
Contexte SGBDR Programmation objet XML Mta donnes Dfinition de schma Dfinition de classe DTD, XMLShema
XML - Yves Bekkers - IFSIC

Information Instance de table Instance de classe Document XML


86

Exemple de DTD
<!ELEMENT carteDeVisite (prnom, nom, organisme, adresse)> <!ELEMENT prnom (#PCDATA) > <!ELEMENT nom (#PCDATA) > <!ELEMENT organisme (#PCDATA) > <!ELEMENT adresse (numro, voie, ville)> <!ELEMENT numro (#PCDATA) > <!ELEMENT voie (#PCDATA) > <!ATTLIST voie type (rue | avenue | impasse | cours | square | boulevard | chemin | quai | route | passage | place | rondPoint ) 'rue' > <!ELEMENT ville (#PCDATA) > <!ATTLIST ville codepostal CDATA #IMPLIED >
XML - Yves Bekkers - IFSIC 87

Dclaration de DTD
Dans le prologue du document Dclaration interne
<!DOCTYPE carteDeVisite [ ... dclarations ... ]>

Dclaration externe, la chane est une URL


<!DOCTYPE carteDeVisite SYSTEM "maDTD.dtd">

Dclaration mixte
<!DOCTYPE carteDeVisite SYSTEM "maDTD.dtd" [ ... dclarations ... ]>
XML - Yves Bekkers - IFSIC 88

Dclaration externe public


Exemple
dclaration pour un document SVG 1.0
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG20010904/DTD/svg10.dtd">

La premire chane est une identification


Le systme cherche une correspondance dans des tables internes

La seconde chane est une URL


utiliser en cas de dfaut de la premire
XML - Yves Bekkers - IFSIC 89

Validation de document
DTD

XML

Analyse syntaxique niveau 1

Bien form

Analyse syntaxique niveau 2

Valide selon une DTD

XML - Yves Bekkers - IFSIC

90

Structurer en graphe

XML - Yves Bekkers - IFSIC

91

Liens internes
MyPath

Lien

<path id="MyPath" d="M 100 200 C 200 100 300 0 400 100 C 500 200 600 300 700 200 C 800 100 900 100 900 100"/> <use xlink:href="#MyPath fill="none" stroke="red"/>
XML - Yves Bekkers - IFSIC 92

Modularit des documents Liens externes


<livre> <chapitre href="chap1.xml"/> <chapitre href="chap2.xml"/> <chapitre href="chap3.xml"/> </livre>

Document compos de plusieurs documents Hritage dHTML


XML - Yves Bekkers - IFSIC 93

La galaxie XML

XML - Yves Bekkers - IFSIC

94

Galaxie des normes par catgories


Formatage Transformation de documents
XSL = XSLT + XSLFO CSS Documents XML XPATH XML Schema XML Namespace

Interrogation de documents
XML Query RDF

Dfinition de documents
DTD

XLINK

XPointer

Analyseur DOM

Analyseur SAX

Relations entre documents


XML - Yves Bekkers - IFSIC

Manipulation de documents par programme


95

Quelques dtails sur principaux composants de la galaxie XML

XML - Yves Bekkers - IFSIC

96

Visualisation de documents
Exemple : visualiser un carnet d'adresses
Le document carnetDAdresse.xml

Deux possibilits
Appliquer une feuille de style CSS au document XML
Appliquer

Transformer le document xml en html l'aide d'XSLT


Transformer
XML - Yves Bekkers - IFSIC 97

Feuille de style CSS


CSS Cascading Style Sheets
Conu pour les langages balise (HTML, XML) Permet d'associer des proprits de prsentation des balises Partage : peuvent tre crites dans une page spare.
<?xml-stylesheet type="text/css" href="fic.css" charset="ISO-8859-1"?>

Exemple de dfinition de proprit


prnom,organisme,note { text-align: left; margin-top: 12.000000pt; margin-bottom: 6.000000pt; font-size: 12.000000pt; font-weight: medium; font-style: Regular; color: #000000; font-family: "Times New Roman"; }
XML - Yves Bekkers - IFSIC 98

Transformation XSL
XSL (eXtensible Stylesheet Language) Le langage Perl dXML Trois parties
Xpath : langage pour adresser les nuds dun arbre XSLT : langage de transformation XSL-FO : langage de formatage
XML - Yves Bekkers - IFSIC 99

Transformation de document (1)


XSL
Feuille de style

+
XML Documents

XSL-FO

imprimante

XML - Yves Bekkers - IFSIC

100

Transformation de document (2)


XSL
Feuille de style 1 XSL-FO

+
XML Documents Feuille de style 2

imprimante

+ XSL

HTML cran

XML - Yves Bekkers - IFSIC

101

Limites de CSS par rapport XSLT


CSS ne permet pas de visualiser les attributs CSS ne permet pas de rarranger l'information CSS n'offre pas de vrai moyen de faire des calculs La cible ne peut pas tre un autre dialecte XML (CSS est un outil de prsentation)
XML - Yves Bekkers - IFSIC 102

Quatres moyens dutiliser une feuille de style XSLT

XML - Yves Bekkers - IFSIC

103

XML NameSpace Espaces de noms


Objectif : faire cohabiter au sein dun mme document des lments appartenant des dialectes diffrents Comment : Mise en place dun mcanisme de prfixes de nom
Dclaration de prfixe au sein dune balise ouvrante
<p xmlns:M='http://www.w3.org/RECMathML'>

Utilisation de prfixe
<M:mfrac>
XML - Yves Bekkers - IFSIC 104

Mta-donnes
Des donnes propos des donnes, pour dcrire l'information RDF : Resource Description Framework Lisible lil, comprhensible par les machines Norme gnrique : proprits (ou relations) dfinir pour chaque domaine d'application Applications : cartes de site, tiquetage, recherche d'information, bibliothques lectroniques, dition cooprative, proprit intellectuelle, commerce lectronique, etc.
XML - Yves Bekkers - IFSIC 105

Exemples dapplication
SVG Graphiques structurs, vectoriss SMIL Synchronisation de documents multimdia MathML Manipulation de formules mathmatiques XUL Le langage dinterface de Mozilla exemples.html
XML - Yves Bekkers - IFSIC 106

Editeurs
Conception d'applications
Emacs avec mode sgml XML spy (trs cher, Windows uniquement) Eclipse avec le plugin XMLBuddy, Bocaloco Software Eclipse WTP Amaya (XML, mathML, SVG, XHTML)

Exploitation :
diteurs graphiques qui masquent le code Exemples : White all, Xmetal, XML spy

XML - Yves Bekkers - IFSIC

107

Conclusions

XML - Yves Bekkers - IFSIC

108

Quest ce quXML
XML est une mthode pour conserver des donnes structures dans des fichiers texte XML est une technologie (famille de norme, doutils, espace ouvert pour dfinir des dialectes propritaires) XML ressemble HML mais ne remplace pas HTML XML ressemble aux SGBD mais ne remplace pas un SGBD XML est un texte (pas toujours fait pour un humain) XML est bavard (mais cela nest pas un problme) XML nest pas si nouveau que a
XML - Yves Bekkers - IFSIC 109

A propos de vocabulaire
Les mots document et feuille de style sont hrits de l'dition
GML tait un projet d'dition HTML est un langage d'dition

Les mots sont trompeurs


XML est un systme d'information plus qu'un systme d'dition On peut interroger un document par son contenu, le transformer
XML - Yves Bekkers - IFSIC 110

Similitude avec les SGBDR


Structure Mta information Information Contrainte d'unicit Intgrit de rfrence Langage de manipulation SGBDR Relation (table) Langage de dfinition Contenu de table Cl primaire Cl trangre SQL
XML - Yves Bekkers - IFSIC

XML Arbre DTD - XML Schma Instance de document Attribut ID Attribut IDREF XSLT
111

SGBD-XML-HTML
SGBD, XML, HTML ne sont pas des technologies concurrentes
Elles sont complmentaires
Xml en aval SGBD des SGBD Xml en amont de HTML HTML

XML

PDF

XML - Yves Bekkers - IFSIC

112

Multiples applications d'XML


diffusion de contenu sur le web
complment HTML, CSS, aux SGBD

change entre applications distribues


EDI, Ebisness,

archivage :
fichiers de configuration information au faible dynamisme (annuaires)

gestion de la connaissance
XML - Yves Bekkers - IFSIC 113

Apport dXML
Gains qualitatifs
robustesse :
force labstraction un unique niveau dabstraction

partage des efforts : mutualisation des outils technologie ouverte : qui va traverser le temps simplicit : texte ditable

Gains quantitatifs
mise en uvre rapide car elle est directe
XML - Yves Bekkers - IFSIC 114

Quelques rfrences
Le site XML du W3C
http://www.w3.org/XML/

Un site francophone XML


http://www.chez.com/xml/

Un glossaire XML
http://www.xmlstarterkit.com/xmlzone/glossary.htm

Une histoire des langages balise


http://www.gutenberg.eu.org/pub/GUTenberg/publi cations/cahiers.html#Cahier12

XML - Yves Bekkers - IFSIC

115

Livre en franais (concis)


XML prcis et concis
OReilly, par Robert Eckstein et Michel Casabianca

XML - Yves Bekkers - IFSIC

116