Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf ·...

Post on 18-Apr-2020

2 views 0 download

Transcript of Publication de données avec XML - cedric.cnam.frcedric.cnam.fr/vertigo/cours/ENPC/ponts1-2x.pdf ·...

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

ENPC, 2003 - Bernd Amann, CNAM-Paris

amann@cnam.fr

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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