26
Publication de données avec XML Module Systèmes INFO XML ENPC, 2003 - Bernd Amann, CNAM-Paris [email protected] Publication de données avec XML / B. Amann et P. Rigaux – p.1/88 Objectifs du Cours Mieux comprendre la publication des données sur le Web : Intégration de données avec XML Adressage de fragments avec XPath Transformation de documents XML avec XSLT Site de Comprendre XSLT, B. Amann et P. Rigaux, O’Reilly, 2002: http://cortes.cnam.fr:8080/XSLT Publication de données avec XML / B. Amann et P. Rigaux – p.2/88

Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Publication de données avec XMLModule Systèmes INFO XML

ENPC, 2003 - Bernd Amann, CNAM-Paris

[email protected]

Publication de données avec XML / B. Amann et P. Rigaux – p.1/88

Objectifs du Cours

Mieux comprendre la publication des donnéessur le Web :

Intégration de données avec XML

Adressage de fragments avec XPath

Transformation de documents XML avec XSLT

Site de Comprendre XSLT, B. Amann etP. Rigaux, O’Reilly, 2002 :

http://cortes.cnam.fr:8080/XSLT

Publication de données avec XML / B. Amann et P. Rigaux – p.2/88

Page 2: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

La publication de données avecXML

La publication de données avec XML - B. Amann et P. Rigaux – p.3/88

Les applications du Web

Diffusion d’informations: journaux, publicité,radio, télévision

Échange et partage d’informations :communautés Web, forums, news

Recherche d’information : moteurs de recherchegénéralisée, portails spécialisés

Commerce électronique : billetterie, bourse,catalogues électroniques

La publication de données avec XML - B. Amann et P. Rigaux – p.4/88

Page 3: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Architecture d’une application Web

On peut distinguer entre trois niveaux dansl’architecture d’une application Web:

Clients (consultation): navigateurs, téléphoneportables, robots

Serveurs (intégration et publication): Apache,Tomcat

Applications (gestion de données): SGBD,logiciels spécialisés, fichiers

La publication de données avec XML - B. Amann et P. Rigaux – p.5/88

Interfaces entre les niveaux

Deux types d’interfaces :

� entre clients et serveurs: HTTP, HTML,WML, SOAP/WSDL

� entre serveurs et applications:

� Java RMI, Corba, JDBC, SOAP/WSDL

La publication de données avec XML - B. Amann et P. Rigaux – p.6/88

Page 4: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Architecture d’une application Web

App

lica

tion

sC

lien

ts

Servlets Fichiers HTMLCGI

Programme

Serv

eur

La publication de données avec XML - B. Amann et P. Rigaux – p.7/88

Nouveaux besoins

Mots clés : échange et publication de données.L’environnement est hétérogène:

� Hétérogéinité de l’infrastructure: lesdonnées doivent être représentéesindépendamment d’un langage ou d’unemachine donnée.

� Hétérogéinité des applications: il fautpouvoir transformer facilement les donnéesprovenant d’une application pour latransmettre à un client (e.g. navigateur Web).

La publication de données avec XML - B. Amann et P. Rigaux – p.8/88

Page 5: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Le problème ?

Je voudrais :

� rendre les mêmes données disponibles et

� récupérer les données existantes

sans gérer � � � interfaces pour � clients et �

serveurs différents.

La publication de données avec XML - B. Amann et P. Rigaux – p.9/88

Application Web avec XML

Servlets Fichiers HTMLCGI

Serv

eur

App

lica

tion

s

Programme

Cli

ents

XML + XSLT

XML + XSLT

La publication de données avec XML - B. Amann et P. Rigaux – p.10/88

Page 6: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Pourquoi XML ?

Le langage XML est une réponse à ces besoins.Un document XML

� peut être échangé facilement (format ASCII) ;

� permet de représenter pratiquement touteinformation structurée ;

� n’est pas lié à un mode d’utilisation : chacunpeut se définir ses propres « structures » ;

� peut être transformé (relativement)facilement (avec le langage XSLT).

La publication de données avec XML - B. Amann et P. Rigaux – p.11/88

Pourquoi pas HTML ?

Actuellement, le principal format du Web estHTML:

� HTML est un langage pour présenter desinformations à l’écran.

� il ne permet pas d’échanger des données

� il ne permet pas un traitement desdonnées autre que l’affichage

On ne sait pas interpréter des données fourniesen HTML.

La publication de données avec XML - B. Amann et P. Rigaux – p.12/88

Page 7: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Utilisations de XML

� Téléphones portables : WML

� Portails Web, moteurs de recherche :RDF/RSS, Dublin core

� Services Web : SOAP/WSDL

� Objets Graphiques : SVG

� Formules mathématiques : MathML

� Documents hypertexte : HTML est devenuun standard XML (XHTML)!

... il suffit de faire un tour sur le site du W3C.La publication de données avec XML - B. Amann et P. Rigaux – p.13/88

Une étude de cas

L’Officiel des spectacles !

� Une base de données avec des films

� Des salles de cinéma, avec des séances deprojection de films

� Des cinémas, qui diffusent leur programmesur le Web, sur le WAP, sur des tracts et desaffiches...

� Un moteur de recherche pour chercher desséances, des films, des horaires

La publication de données avec XML - B. Amann et P. Rigaux – p.14/88

Page 8: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

La fiche du film Gladiator

La fiche du film peut être publiée

� en HTML pour Netscape/IE

� en WML pour le portables WAP

� en SMIL pour Realplayer

� dans un moteur de rechercheSallesEnLigne.com

L’information ?

� c’est la même, sous des formes différentes

� elle est échangée entre plusieurs acteursLa publication de données avec XML - B. Amann et P. Rigaux – p.15/88

Les solutions XML ?

� Format universel :

� représentation en chaîne de caractèresd’un contenu structuré

� indépendant de toute application

� Publier l’information

� outils de transformation simples pourconvertir un contenu XML

� Échanger et intégrer l’information

� assembler des contenus XML, ou aucontraire en extraire des informations

La publication de données avec XML - B. Amann et P. Rigaux – p.16/88

Page 9: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

XML, format universel

XML, format universel - B. Amann et P. Rigaux – p.17/88

XML, c’est quoi ?

XML = rendre un contenu accessible à touteapplication.Le contenu :L’Epée de bois, 100 rue Mouffetard,

métro Censier-DaubentonLe même, en XML :

<?xml version="1.0" encoding="ISO-8859-1"?><CINEMA><NOM>Epée de Bois</NOM><ADRESSE>100,rue Mouffetard</ADRESSE><METRO>Censier-Daubenton</METRO></CINEMA>

XML, format universel - B. Amann et P. Rigaux – p.18/88

Page 10: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Le même, mieux présenté

Présentation courante : avec indentation

<?xml version="1.0" encoding="ISO-8859-1"?><CINEMA>

<NOM>Epée de Bois

</NOM><ADRESSE>

100, rue Mouffetard</ADRESSE>

<METRO>Censier-Daubenton

</METRO></CINEMA>

NB : il y a des espaces et des sauts de ligne

XML, format universel - B. Amann et P. Rigaux – p.19/88

Encore mieux : sous forme d’arbre

CINEMA

NOM

Épée de bois

ADRESSE

100, rue Mouffetard

METRO

Censier-Daubenton

Traiter un document XML = extraire desinformations d’un arbre.

XML, format universel - B. Amann et P. Rigaux – p.20/88

Page 11: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Un exemple plus complet, avec attributs

<?xml version="1.0" encoding="ISO-8859-1"?><CINEMA>

<NOM>Epée de bois</NOM><ADRESSE>100, rue Mouffetard</ADRESSE><METRO>Censier-Daubenton</METRO>

<SALLE NO=’1’ PLACES=’320’><TITRE>Alien</TITRE><REMARQUE>Reservation conseillée</REMARQUE><SEANCES>

<SEANCE>15:00</SEANCE><SEANCE>18:00</SEANCE><SEANCE>21:00</SEANCE>

</SEANCES></SALLE>

</CINEMA>

XML, format universel - B. Amann et P. Rigaux – p.21/88

Sous forme d’arbre

CINEMA

METROADRESSENOM SALLE

TITRE REMARQUE SEANCES

SEANCE SEANCE SEANCE

SALLE

TITRE SEANCES

SEANCE

Epée de bois 100, rueMouffetard

Censier

Alien Réservationconseillée

15:00 18:00 21:00

Vertigo

22:00

NO=1 NO=2PLACES=320 PLACES=120

XML, format universel - B. Amann et P. Rigaux – p.22/88

Page 12: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Documents XML

Qu’est-ce qu’un document XML ?

� C’est un contenu alphanumérique

� Il est structuré avec des balises

Indépendant de la représentation physique

� Un ou plusieurs fichiers ?

� Un message ?

� Un extrait d’une base de données ?

� Tout ça à la fois ...

XML, format universel - B. Amann et P. Rigaux – p.23/88

Origine d’un document XML

XML permet d’intégrer des contenus provenantd’origines diverses

� d’un éditeur de texte

� d’un site Web

� d’une base de données

� d’un fichier...

Encore la même idée : rendre le contenuindépendant de l’application

XML, format universel - B. Amann et P. Rigaux – p.24/88

Page 13: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Intégration : les salles

<?xml version="1.0" encoding="ISO-8859-1"?>

<SALLE NO=’2’ PLACES=’120’><FILM><TITRE>Vertigo</TITRE><AUTEUR>Alfred Hitchcock</AUTEUR><ANNEE>1958</ANNEE><GENRE>Drame</GENRE><PAYS>Etats Unis</PAYS><RESUME>Scottie Ferguson, ancien inspecteur

de police, est sujet au vertige depuisqu’il a vu mourir son collègue....

</RESUME></FILM><SEANCES>

<SEANCE>22:00</SEANCE></SEANCES>

</SALLE>

XML, format universel - B. Amann et P. Rigaux – p.25/88

Sous forme d’arbre

TITRE AUTEUR ANNEE GENRE PAYS RESUME

SEANCESFILM

SALLE

SEANCE

Salle2.xml:/

22:00

Vertigo 1958Hitchcock Scotty...USA1958

NO=2PLACES=120

XML, format universel - B. Amann et P. Rigaux – p.26/88

Page 14: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Le cinéma : intégration des salles

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE CINEMA [<!ENTITY salle1 SYSTEM "Salle1.xml"><!ENTITY salle2 SYSTEM "Salle2.xml">

]><CINEMA>

<NOM>Epée de bois</NOM><ADRESSE>100, rue Mouffetard</ADRESSE><METRO>Censier-Daubenton</METRO>

&salle1;

&salle2;</CINEMA>

XML, format universel - B. Amann et P. Rigaux – p.27/88

Premier bilan

Disposer d’une et une seule représentation

� J’utilise un traitement de texte ? je suisprisonnier du format

� Je stocke dans une base de données ? idem

Créer un langage pour décrire nos données

� Ne pas utiliser HTML, dédié à la présentationdans un navigateur

� = � utiliser XML, et convertir vers HTML

XML, format universel - B. Amann et P. Rigaux – p.28/88

Page 15: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Publication de données avec XSLT

Publication de données avec XSLT - B. Amann et P. Rigaux – p.29/88

XSLT : pour quoi faire

Séparer la gestion du contenu de la présentation

� Gestion du contenu = � décrire nosinformations, avec un vocabulaire XML

� Présentation = � mettre en forme nosdocuments pour une application particulière

XSLT permet d’écrire des programmes deconversions, très adaptés au traitement dedocuments XML

Publication de données avec XSLT - B. Amann et P. Rigaux – p.30/88

Page 16: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Application

Nous avons décrit notre cinéma avec notrepropre langage. XSLT va permettre de traduirece langage vers d’autres langages :

� HTML pour la présentation Web standard

� WML pour la présentation WAP

� SMIL pour une présentation multimédia

� XSL-FO pour la production de documentspapier

Publication de données avec XSLT - B. Amann et P. Rigaux – p.31/88

Version HTML

HTML revisité :

� Un document HTML est un document XML

� Le vocabulaire est fixé, ainsi que la syntaxe

� Chaque balise a une signification bien définie

HTML a été normalisé comme « dialecte » XML= � c’est XHTML

Publication de données avec XSLT - B. Amann et P. Rigaux – p.32/88

Page 17: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Ce qu’on veut obtenir (démo)

<html><head><title>Film: Vertigo</title></head><body bgcolor="white">

<p><img SRC="Vertigo.png"><h1><i>Vertigo</i></h1>Drame, <i>Etats Unis</i>, 1958

</p><p>Mis en scène par <b>Alfred Hitchcock</b><h3>Résumé</h3>Scottie Ferguson,ancien inspecteur de police, est sujetau vertige depuis qu’il a vu mourir son

collègue...</p>

</body></html>

Publication de données avec XSLT - B. Amann et P. Rigaux – p.33/88

HTML, sous forme d’arbre

"Film: "

...

<TITRE>

<TITRE> <GENRE> <PAYS>

Marquage HTML

Eléments XML

html

head

title

body

img

p

h1

i

i

Publication de données avec XSLT - B. Amann et P. Rigaux – p.34/88

Page 18: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Le rôle de XSLT

XSLT doit nous permettre :

� De prendre en entrée un document XMLsource

� De produire en sortie un autre arbre XML

� D’insérer dans le document en sortie desfragments du document source

Donc bien adapté à une transformation XML - �

HTML

Publication de données avec XSLT - B. Amann et P. Rigaux – p.35/88

WML, autre dialecte de XML

� Document WML : marqué par la balise

�wml �

� Il est divisé en cartes, unité d’affichage sur lemobile ( �card � )

� Elements principaux :

� des balises simples de mise en forme( �b � , �i � )

� des ancres pour passer d’une carte à uneautre

Publication de données avec XSLT - B. Amann et P. Rigaux – p.36/88

Page 19: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Exemple d’une carte WML

<?xml version="1.0"encoding="iso-8859-1"?>

<wml><card><p>

<b>Alien

</b>, 1979, Ridley Scott

<br/>Près d&apos;un vaisseau spatialéchoué sur une lointaineplanète, ..</p>

</card></wml>

Publication de données avec XSLT - B. Amann et P. Rigaux – p.37/88

Un site WAP

On envoie un ensemble de cartes :

� Dotées d’une identité :

�card id="Alien" � ... suite dela carte �/card �

� Référençant d’autres cartes :

�a href="#Alien" �lien vers lacarte Alien �/a �

Les cartes sont « compilées » et transmises parle réseau sans fil.

Publication de données avec XSLT - B. Amann et P. Rigaux – p.38/88

Page 20: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Arbre XML du site WML

card card

pp

a

a

card card card

p p p

wml

a a

id=index id=S1

href=S1

href=S2

id=S2 id=Alien id=Vertigo

href=Vertigohref=Alien

Publication de données avec XSLT - B. Amann et P. Rigaux – p.39/88

Le document

<wml><card id="index" title="Programme">

...<a href="#S1"> Salle 1: </a>...

</card>

<card id="S1">S&#xE9;ances salle 1 <p><a href="#Alien"> Film : Alien</a>

...</card>

<card id="Alien">...

</card></wml>

Publication de données avec XSLT - B. Amann et P. Rigaux – p.40/88

Page 21: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Version SMIL

Version SMIL - B. Amann et P. Rigaux – p.41/88

SMIL

Langage pour la création de documentsmultimédia avec XML.

� On indique une fenêtre d’affichage avecdifférentes régions pour l’affichage descomposants.

� On place les composants dans lesdifférentes régions (positionnement spatiale).

� On synchronise l’affichage des composants(positionnement temporel).

Version SMIL - B. Amann et P. Rigaux – p.42/88

Page 22: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Structure d’un document SMIL

<smil><head>

<meta ... /> <!-- infos --><root-layout .../> <!-- fenêtre --><region ... /> <!-- région 1--><region ... /> <!-- région 2-->

</head><body>

<!-- contenu --></body>

</smil>

Version SMIL - B. Amann et P. Rigaux – p.43/88

Contenu

Différents types d’éléments:

� objets multimedia: <text>, <image>,<audio>, <video>, <textstream>

� éléments de synchronisation: <seq>(séquence), <par> (groupe "parallèle")

Version SMIL - B. Amann et P. Rigaux – p.44/88

Page 23: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Exemple Composant

� Vertigo-Info.txt:<window type="marquee"

height="50" width="200"bgcolor="black" link="blue">

<font color="white">de Alfred Hitchcock, Drame,Etats Unis, 1958,<a href="Vertigo.xml">Vertigo</a>

</font></window>

Version SMIL - B. Amann et P. Rigaux – p.45/88

Exemple SMIL: Fenêtre et régions

<smil><head><layout><root-layout width="300" height="400"/><region id="img_grand" width="300"

height="400" fit="meet"/><region id="img_petit" width="150"

left="80" height="100" top="10"/><region id="txt1" width="200"

left="50" height="50" top="120"/><region id="txt2" width="200"

left="50" height="50" top="180"/><region id="txt3" width="250" left="25"

height="150" top="240"/></layout>

</head>

Version SMIL - B. Amann et P. Rigaux – p.46/88

Page 24: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Exemple SMIL: Fenêtre et régions

reg_img_grand

reg_img_petit

600

pixe

ls

450 pixels

reg_texte

Version SMIL - B. Amann et P. Rigaux – p.47/88

Exemple SMIL: Positionnement

<body><seq><par endsync="first"><audio src="Sound.wav"/><img src="Vertgo.png" region="img_grand"/>

</par><par id="page2"><text src="Vertigo-Title.txt" region="txt1"/><text src="Vertigo-Info.txt" region="txt2"/><seq><img src="Vertigo1.png"

region="img_petit" dur="5s"/><img src="Vertigo2.png"

region="img_petit" dur="5s"/></seq></par></seq>

</body></smil>

Démo !Version SMIL - B. Amann et P. Rigaux – p.48/88

Page 25: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Version XSL-FO

Version XSL-FO - B. Amann et P. Rigaux – p.49/88

XSL-FO

Langage de description de documents avecXML.

� On indique les paramètres de mise en page(marges, taille des polices...)

� On place le contenu entre des balises deformatage

= � un processeur se charge de produire ledocument

Version XSL-FO - B. Amann et P. Rigaux – p.50/88

Page 26: Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf · 2003-01-15 · HTML pour la présentation Web standard WML pour la présentation

Transformation, et mise en forme

Document XSL-FO Document PDFDocument XML

� � � �� � � �� � � �

� � � �� � � �

� �� �� �

� �� �

� �� �� �

� �� �

� � �� � �� � �� � �� � �� � �� � �� � �

� � �� � �� � �� � �

� � � � � �� � � � � �

� � �� � �� � �� � �� � �

� � �� � �� � �� � �� � �� � ������

����� � � � � � �

� � � � � � �� � � � � � �

� � � � � �� � � � � �� � � � � �

� �� �� �

� �� �

� �� �� �

� �� �

� � �� � �� � �

� � �� � �

Transformation Mise en Forme

Version XSL-FO - B. Amann et P. Rigaux – p.51/88

Exemples d’un document XSL-FO

<?xml version="1.0" encoding="iso-8859-1"?><fo:root>

<fo:layout-master-set><fo:simple-page-master master-name="page"

page-height="29.7cm" page-width="21cm"/></fo:layout-master-set>

<fo:page-sequence master-name=’simple’><fo:flow font-size="20pt">

<fo:block>Ceci est le premier paragraphe,

</fo:block></fo:flow>

</fo:page-sequence></fo:root>

Démo ! Le programme de l’Epée de Bois!

Version XSL-FO - B. Amann et P. Rigaux – p.52/88

L’approche XSL-FO

Traitement de texte WYSIWYG :

� On indique le contenu et la mise en forme

� Pbs :

� Pas facile d’être expert en contenu et enmise en forme

� Pas commode de penser aux deux à lafois

= � très difficile de faire de beaux documents (etimpossible d’intégrer des contenus hétérogènes)

Version XSL-FO - B. Amann et P. Rigaux – p.53/88

Quelques principes originaux

Avec XSL-FO :

� Un responsable pour le contenu (XML)

� provenant de n’importe où (BD, sites, ...)

� Un responsable pour la mise en forme(XSL-FO)

� décide de la présentation

� Un processeur pour produire le résultat

= � pas commode à apprendre ...

Version XSL-FO - B. Amann et P. Rigaux – p.54/88

Échanges et intégration de données

Échanges et intégration de données - B. Amann et P. Rigaux – p.55/88

Exemple : moteur de recherche

réponse

requête

www.sallesenligne.fr

www.cine-marseille.fr

www.epee-de-bois.fr

Échanges et intégration de données - B. Amann et P. Rigaux – p.56/88

Quelques idées

J’ai mes données

� Je leur ai défini une représentation

� Je leur applique des traitements (publicationou autre)

� Je peux les transmettre à quelqu’un d’autre(tout ou partie)

= � un service externe m’apporte une valeurajoutée

Échanges et intégration de données - B. Amann et P. Rigaux – p.57/88

Quel format ?

Mon problème :

� J’ai décrit mes données avec mon langageXML

� L’application attend des données dans sonlangage

Il faut :

� Décrire formellement les deux langages

� Faire une traduction de l’un à l’autre

Échanges et intégration de données - B. Amann et P. Rigaux – p.58/88

Les DTD

Document Type Definition

� Pour définir la structure d’une classe dedocuments (d’un langage)

� Exemple : un élément de type texte :

�!ELEMENT TITRE ( #PCDATA ) �

� Exemple : un élément constitué d’une liste

�!ELEMENT FILM (TITRE, CINEMA,VILLE, URL?, HEURE+) �

Échanges et intégration de données - B. Amann et P. Rigaux – p.59/88

La DTD du moteur de recherche

Un fichier auquel on peut faire référence dans undocument :

1 <!ELEMENT FILM ( TITRE, CINEMA, VILLE, URL?, HEURE+ ) >2 <!ELEMENT TITRE ( #PCDATA ) >3 <!ELEMENT CINEMA ( #PCDATA ) >4 <!ELEMENT VILLE ( #PCDATA ) >5 <!ELEMENT URL ( #PCDATA ) >6 <!ELEMENT HEURE ( #PCDATA ) >

Document valide : conforme à une DTD.

Échanges et intégration de données - B. Amann et P. Rigaux – p.60/88

Architecture ( Démo )

XSLT

XSLT

Clientweb

Clientweb

ClientwebFlux XML

DocumentsXML

DTD 1

DTD 2

Intégration

BD

Moteurde recherche

Recherche

SQL

Échanges et intégration de données - B. Amann et P. Rigaux – p.61/88

Le document intégrateur

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE MOTEUR [<!ENTITY EpeeDeBois

SYSTEM "http://epee-de-bois.fr/EDB.xml"><!ENTITY CineMarseille

SYSTEM "http://cine-marseille.fr/CM.xml">]><MOTEUR>

<CINEMA>&EpeeDeBois;

</CINEMA><CINEMA>

&CineMarseille;</CINEMA>

</MOTEUR>

Échanges et intégration de données - B. Amann et P. Rigaux – p.62/88

Gestion de l’information avec XML

TransformationXSLT Document XML

Document XML

application XMLapplication web application WAPapplication édition

formatéPage XHTML

Contenu Page WML

présentationtransform

ationcontenu

Echange/intégration

Données statiques Données dynamiques

Application

XSLT

XSLTXSLT XSLT

XSLT

Base de données

MessageXML

FichiersRésultat

Échanges et intégration de données - B. Amann et P. Rigaux – p.63/88

Récapitulons !

XML = format d’échange de données entreapplication

� Permet de définir des « langages » pourdécrire des données (« méta-langage »)

� De nombreux outils d’analyse, parsing,interrogation, ...

� Transformation d’un langage à un autre avecXSLT

= � Bien adapté au web.

Échanges et intégration de données - B. Amann et P. Rigaux – p.64/88

XML = syntaxe + modèle

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.65/88

Le World Wide Web Consortium (W3C)

� URL: http://www.w3.org

� 400 partenaires industriels, parmi lesquelsles plus grand comme Oracle, IBM, Compaq,Xerox, Microsoft

� Laboratoires de recherche: MIT pour lesÉtats Unis, INRIA pour l’Europe, universitéKeio (Japon) pour l’Asie

� Objectif: définir un modèle pour faciliterl’échange de données sur le Web

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.66/88

Le langage de marquage XML

XML = eXtensible Markup Language

Recommendation W3C pour

� les documents Web (généralisation deHTML),

� mais aussi pour

� l’échange,

� l’intégration et

� l’interrogation des données sur le Web.

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.67/88

XML = Syntaxe

“ASCII du 21e siècle” :

� ASCII (ISO 646) et UNICODE/ISO 10646:encodage de caractères

� XML: encodage/linéarisation de données

XML premet de représenter des données avecune structure irrégulière, implicite et partielle

Les nouvelles techniques d’intégration etd’interrogation de données semi-structuréespeuvent être appliquées.

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.68/88

Notion de balisage structurel

Principe clé de XML : séparer la structure logiquedes données de leur présentation.

Avantages (par rapport à HTML):

� indépendance entre les outils de navigation(browser) et les outils de gestion de données(e.g. BD)

� différentes présentations sont possibles pourle même document

� indexation et interrogation

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.69/88

Forme sérialisée et forme arborescente

Il existe deux représentations d’un documentXML.

� Forme sérialisée : c’est la forme courante,où le contenu est marqué par des balises.

� Forme arborescente : elle met en évidencela structure du document.

Il est plus facile de raisonner sur la formearborescente pour concevoir des traitements

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.70/88

Un document sous forme sérialisée

<?xml version="1.0" encoding="ISO-8859-1"?><CINEMA>

<NOM>Epée de Bois

</NOM><ADRESSE>

100, rue Mouffetard</ADRESSE>

<METRO>Censier-Daubenton

</METRO></CINEMA>

Cette représentation permet le stockage etl’échange de documents.

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.71/88

XML = modèle de données

Un arbre, constitué de nœuds typés (éléments,commentaires, etc)

CINEMA

NOM

Épée de bois

ADRESSE

100, rue Mouffetard

METRO

Censier-Daubenton

La structure des arbres XML est définie par leDocument Object Model (DOM).

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.72/88

En pratique

On utilise la forme sérialisée :

� pour stocker un document dans un fichier

� pour échanger des documents

La forme arborescente :

� permet de spécifier des manipulations dedonnées XML � modèle de données

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.73/88

Représentation sérialisée

Elle permet de marquer, par des balises, lastructure d’un document.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!-- Commentaire --><A>Le texte de A

<B>Le texte de B</B><D attr1="1" attr2="azerty"><C/>

</D><![CDATA[2x < y]]>

</A>

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.74/88

Passage à la représentation DOM

Le document sérialisé est analysé, et unereprésentation arborescente est créée :

� le nœud racine est de type Document

� les catégories syntaxiques (commentaires,balises, texte) se traduisent par différentstypes de nœuds (Comment, Element, Text)

� les nœuds constituent un arbre qui reflètel’imbrication des éléments dans la formesérialisée

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.75/88

La représentation DOM

Document-

Comment-

Commentaire

ElementA

Text-

Le texte de A

ElementB

Text-

Le texte de B

ElementD

Attrattr1

1

Attrattr2azerty

ElementC

CDataSection-

2x � y

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.76/88

Présentation de la syntaxe XML

Un ensemble de catégories syntaxiques :

� les éléments (et leurs attributs)

� les commentaires

� les instructions de traitement

� les sections de texte

� les sections littérales

Ainsi que quelques règles sur la structure d’undocument

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.77/88

La déclaration XML

Tout document XML peut être précédé par unedéclaration :<?xml version="1.0" encoding="ISO-8859-1"?>

� l’attribut encoding indique le jeu decaractères utilisé dans le document

� l’attribut optionnel standalone indique si ledocument est composé de plusieurs entités.

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.78/88

Déclaration de type

On peut indiquer qu’un document est conforme àune DTD, et déclarer des entités.<!DOCTYPE nom SYSTEM "sourceExt" [decLoc]>

� nom est le type de l’élément racine

� sourceExt est un source extérieurecontenant la DTD

� decLoc sont des déclarations locales (pourles entités principalement)

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.79/88

Entités et références à des entités

Les entités servent à factoriser des parties dudocument.

<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE A SYSTEM "minimal.dtd" [

<!ENTITY monTexte "texte simple"><!ENTITY maSignature SYSTEM "signature.xml">

]><A>

Du &monTexte;, sans caractères réservés:ni &lt; ni &gt; ni &amp; ni &apos; ni &quot;

&maSignature;</A>

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.80/88

Entités caractères

Déclaration entité Référence Car.<!ENTITY lt "&#60;"> &lt; <

<!ENTITY gt "&#62;"> &gt; >

<!ENTITY amp "&#38;"> &amp; &

<!ENTITY apos "&#39;"> &apos; ’

<!ENTITY quot "&#34;"> &quot "

Table 1:

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.81/88

Commentaires et instructions de traitement

� Les commentaires : à utiliser avecparcimonie :<!-- Ceci est un commentaire -->

� Instructions de traitement : lié au systèmequi traite le document :<?xml-stylesheet href="prog.xslt"type="text/xslt">

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.82/88

Éléments

Dans la forme sérialisée :

� C’est une balise ouvrante avec un nom,puis un contenu, puis une balise fermante

Dans la forme arborescente

� C’est un nœud avec un nom

� Le contenu est un arbre

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.83/88

Exemple : un élément avec contenu

<?xml version="1.0" encoding="ISO-8859-1"?>

<A>Le texte de A<B>Le texte de B</B>

</A>

ElementA

Text-

Le texte de A

ElementB

Text-

Le texte de B

Text-

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.84/88

Quelques remarques sur les éléments

� Un nom d’élément ne contient pas de blanc,ni de caractère accentué

� Les majuscules sont distinguées desminuscules

� Il existe une forme abrégée pour leséléments sans contenu : <C></C> peuts’écrire <C/>.

� Tout document comprend un et un seulélément racine

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.85/88

Attributs

Les attributs constituent un autre moyen dereprésenter de l’information.<A att1=’1’ att2=’2’>

� l’ordre des attributs n’est pas important

� il doit toujours y avoir une valeur, encadréepar des guillemets (différent de HTML)

� il ne peut pas y avoir deux attributs avec lemême nom dans un élément.

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.86/88

Attributs : exemples

� <A att1=’1’ att2=’2’> est équivalent à<A att2=’2’ att1=’1’>

ElementAAttr

att11

Attratt2

2

� <A att=a> n’est pas bien formé : pasd’apostrophe

� <A att1=’1’ att1=’2’/> : interdit

� <A att1=’1’/> <B att1=’2’/> :autorisé (deux éléments différents)

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.87/88

Les sections littérales

À priori, on n’a pas le droit de placer dans lecontenu d’un document XML des caractèrescomme ’<’, ’>’, ou ’&’.

<?xml version=’1.0’?><PROGRAMME>if ((i < 5) && (j > 6)) printf("error");</PROGRAMME>

est incorrecte!

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.88/88

Solution : sections CDATA

Elles permettent d’inclure du texte qui n’est pasanalysé par le parseur :<?xml version=’1.0’?><PROGRAMME><![CDATA[if ((i < 5) && (j > 6)) printf("error"); ]]></PROGRAMME>

CDATASection-

if ((i < 5) && (j > 6)) printf("error");

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.89/88

Résumé : structure d’un document XML

Un document XML comprend trois parties :

� le prologue, avec la déclaration XML, laDTD, des commentaires, des instructions detraitements (optionnels)

� un élément racine avec son contenu

� un épilogue avec des commentaires, ou desinstructions de traitements (optionnels)

Le contenu du document proprement dit est le

contenu de l’élément racine.

XML = syntaxe + modèle - B. Amann et P. Rigaux – p.90/88