62
XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin <[email protected]> Cours 1/2

XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Embed Size (px)

Citation preview

Page 1: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

XMLorigine - concept - techniques

Tuyêt Trâm DANG NGOC

Laboratoire PRiSMUniversité de Versailles-Saint-Quentin

<[email protected]>

Cours 1/2

Page 2: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 2Tuesday, April 11, 2023

XML : Origine, concept, technique (Plan 1/2)

Origine et objectifsLe fond et la forme : SGML, HTML et XML

La norme XMLLe rôle du W3CDéfinition du standard XML

La technologie XMLMétadonnées : DTD et XML-SchémaEspace de noms : XML namespacePrésentation : XSL Interrogation : XPath, XQuery

Page 3: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 3Tuesday, April 11, 2023

XML : Origine, concept, technique (Plan 2/2)

XML et les bases de donnéesDéploiement d'un site web avec XMLLes produits XML

Stockage : natif, middleware ou extension de SGBD

Services WEB et serveurs d'applicationOutils de manipulation XML

ConclusionRéférences

Page 4: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Origine et objectif

De HTML et SGML vers XML

HTML : la formeSGML : le fondXML : le fond pour la forme

Page 5: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 5Tuesday, April 11, 2023

Origine et objectifs

Un document peut se définir par le fond et par la forme.

Multiples approches dont les plus connues sont le HTML pour le format et le SGML pour la structuration.

nom: Mulderprenom: Foxprofession: Agent du FBI

nom prenom profession

Mulder Fox Agent du FBI

Fox Mulder, Agent du FBI

Agent du FBI : Fox Muldernom: Mulderprenom: Foxprofession: Agent du FBI

Page 6: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Présentation d'un document

Fédération de données semi-structurées avec XML

Tuyêt Trâm DANG NGOCLaboratoire PRiSM – Université de Versailles

45, avenue des Etats-Unis78035 Versailles CEDEXemail: [email protected]

Résumé: Nous décrivons dans ce papier une architecture de médiation "tout-XML"

1 IntroductionL'évolution constante en matière de réseaux et de base de données ces trente dernières années a mené à une demande toujours croissante d'accès rapides à une large quantité d'informations variés.

2 Problématique2.1 Requête sur données semi-structuréesEvaluer une requête sur des données semi-structurées [1] implique de naviguer à travers la structure en examinant à la fois les valeurs des éléments et le nom auto-descriptif de l'élément tout au long du parcours.

2.2 Médiation de données semi-structuréesLes sources sont hétérogènes et peuvent être interrogées de manière différentes. Par exemple un SGBD relationnel sera interrogé suivant le langage SQL suivant : 1 -- chercher tous les livre dont le titre contient LINUX 2 SELECT * 3 FROM livre 4 WHERE titre LIKE '%LINUX%'

Fédération de données semi-structurées avec XML

Tuyêt Trâm DANG NGOCLaboratoire PRiSM – Université de Versailles

45, avenue des Etats-Unis78035 Versailles CEDEXemail: [email protected]

Résumé: Nous décrivons dans ce papier une architecture de médiation "tout-XML"

1 IntroductionL'évolution constante en matière de réseaux et de base de données ces trente dernières années a mené à une demande toujours croissante d'accès rapides à une large quantité d'informations variés.

2 Problématique2.1 Requête sur données semi-structuréesEvaluer une requête sur des données semi-structurées [1] implique de naviguer à travers la structure en examinant à la fois les valeurs des éléments et le nom auto-descriptif de l'élément tout au long du parcours.

2.2 Médiation de données semi-structuréesLes sources sont hétérogènes et peuvent être interrogées de manière différentes. Par exemple un SGBD relationnel sera interrogé suivant le langage SQL suivant : 1 -- chercher tous les livre dont le titre contient LINUX 2 SELECT * 3 FROM livre 4 WHERE titre LIKE '%LINUX%'

Note: [Abiteboul 1998] Semistructured Data Tutorial 1998

Note: [Abiteboul 1998] Semistructured Data Tutorial 1998

Page 7: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 7Tuesday, April 11, 2023

HTML (Hyper Text Markup Language) : présentation

Proposé par le W3C comme format de documents sur le Web.

Langage simple avec des balises standardisées permettant la mise en forme d’un texte.

Standard reconnu par tous les navigateurs.Langage très populaire sur le Web

HTML 1.0Juin 1993

HTML 2.0(RFC 1866)

Nov. 1995

HTML 2+

HTML 3.0

HTML 3.214 Jan. 1997

HTML 4.024 Avr. 1998

HTML 4.0124 Dec. 1999 XHTML 1.0

26 Jan. 2000

XHTML 1.131 Mai 2001

1996

Page 8: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 8Tuesday, April 11, 2023

Quelques balises HTML standards

Balises Signification

<html> défini le contenu comme étant un document HTML

<title> Pour donner un titre à la fenêtre

<body> Corps de la page

<bf> Mettre en gras une partie de texte

<i> Mettre en italique

<ul> définir une liste d'item

<li> définir un item

<ol> définir une liste numérotée

<p> définir un paragraphe

<hr> créer une ligne droite

<font> changer la fonte (police, couleur)

Balises Signification

<pre> afficher un code litéral

<h1>, <h2>, <h3>

Definir un titre de niveau 1, 2 ou 3

<img src> Insérer une image

<blink> Faire clignoter

<a href> Créer un hyperlien

<a name> définir une référence

<table> définir un tableau

<tr> définir une nouvelle ligne

<td> définir une nouvelle colonne

<br> Passage à la ligne

Page 9: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 9Tuesday, April 11, 2023

Source HTML

<html><body bgcolor="#ffffff" fgcolor="#000000""<font color="#0000FF"><h1>Fédération de données semi-structurées avec XML</h1></font><p align=right>Tuyêt Trâm DANG NGOC<br>Laboratoire PRiSM – Université de Versailles<br>45, avenue des Etats-Unis<br>78035 Versailles CEDEX<br>email: <a href="mailto: [email protected]">[email protected]</a></p><p align=center><i>Résumé: Nous décrivons dans ce papier une architecture de médiation "tout-XML"</i></p><font color="#0000FF"><h1>1 Introduction</h1></font><p>L'évolution constante en matière de réseaux et de base de données ces trente dernières années a mené à une demande toujours croissante d'accès rapides à une large quantité d'informations variés .</p><font color="#0000FF"><h1>2 Problématique</h1></font><font color="#0000FF"><h2>2.1 Requête sur données semi-structurées</h2></font><p>Evaluer une requête sur des données semi-structurées <a href="note.txt"> [1] </a> implique de naviguer à travers la

structure en examinant à la fois les valeurs des éléments et le nom auto-descriptif de l'élément tout au long du parcours.</p>

<font color="#0000FF"><h2>2.2 Médiation de données semi-structurées</h2></font><p>Les sources sont hétérogènes et peuvent être interrogées de manière différentes. Par exemple un SGBD

relationnel sera interrogé suivant le langage SQL suivant :</p><pre> 1 -- chercher tous les livre dont le titre contient LINUX 2 SELECT * 3 FROM livre 4 WHERE titre LIKE '%LINUX%'</pre></body></html>

<html><body bgcolor="#ffffff" fgcolor="#000000""<font color="#0000FF"><h1>Fédération de données semi-structurées avec XML</h1></font><p align=right>Tuyêt Trâm DANG NGOC<br>Laboratoire PRiSM – Université de Versailles<br>45, avenue des Etats-Unis<br>78035 Versailles CEDEX<br>email: <a href="mailto: [email protected]">[email protected]</a></p><p align=center><i>Résumé: Nous décrivons dans ce papier une architecture de médiation "tout-XML"</i></p><font color="#0000FF"><h1>1 Introduction</h1></font><p>L'évolution constante en matière de réseaux et de base de données ces trente dernières années a mené à une demande toujours croissante d'accès rapides à une large quantité d'informations variés .</p><font color="#0000FF"><h1>2 Problématique</h1></font><font color="#0000FF"><h2>2.1 Requête sur données semi-structurées</h2></font><p>Evaluer une requête sur des données semi-structurées <a href="note.txt"> [1] </a> implique de naviguer à travers la

structure en examinant à la fois les valeurs des éléments et le nom auto-descriptif de l'élément tout au long du parcours.</p>

<font color="#0000FF"><h2>2.2 Médiation de données semi-structurées</h2></font><p>Les sources sont hétérogènes et peuvent être interrogées de manière différentes. Par exemple un SGBD

relationnel sera interrogé suivant le langage SQL suivant :</p><pre> 1 -- chercher tous les livre dont le titre contient LINUX 2 SELECT * 3 FROM livre 4 WHERE titre LIKE '%LINUX%'</pre></body></html>

Page 10: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 10Tuesday, April 11, 2023

Limitation de HTML (1)

HTML est conçu pour la présentation d'information sous forme de pages web

HTML contient un nombre limité de balises défini

La conception de HTML n'est pas appropriée pour les donnéesles balises ne renseignent pas sur les valeurs

incluses entre les balisesLes balises ne sont pas extensibles

Page 11: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 11Tuesday, April 11, 2023

Limitation de HTML (2)

Lorsque les balises ne suffisent pas, les constructeurs ont tendance à définir leurs propres balises pour répondre à leurs besoins ( incompatibilité) ex. HTML 2+, HTML 3.0

Mise à jour d’un ensemble de pages web très complexe :hyperliens pointant dans tous les sens ;restructuration ou remise en forme de l’ensemble

des pages du site fastidieux.

Page 12: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 12Tuesday, April 11, 2023

Limitation de HTML (3)

Une fois le document HTML réalisé, il est figé :de la façon dont l’a définie l’auteur de la mise en

page ( pas de possibilité pour les clients de le présenter différemment)

Traitement entre sites rendu compliqué (problème pour le commerce «électronique».

Page 13: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 13Tuesday, April 11, 2023

HTML : extensions

Pour résoudre les problèmes de mises à jour, plusieurs «bidouilles» et/ou solutions propriétaires :Microsoft ASP, Cold fusion...

Langages restent propriétaires et sont tous incompatibles entre eux.

La présentation est toujours aussi figée

Page 14: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 14Tuesday, April 11, 2023

Feuilles de style CSS (Cascading Style Sheet)

Recommandation W3C en décembre 1996Mécanisme simple pour ajouter un style (fonte,

couleur, etc.) aux documents WebIntégré dans HTML 4.0Changement de présentation des documents

limitées

Page 15: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 15Tuesday, April 11, 2023

@import "truc.css"

BODY {

color: #000 ;

background: #FBFBFF ;

margin-left: 9% ;

margin-right: 6% ;

font-family: "Helvetica", sans-serif ;

line-height: 1.35 ;

}

@import "truc.css"

BODY {

color: #000 ;

background: #FBFBFF ;

margin-left: 9% ;

margin-right: 6% ;

font-family: "Helvetica", sans-serif ;

line-height: 1.35 ;

}

CSS

[ ... ]TD, TH { font-family: "Helvetica",

sans-serif line-height: 1.35 ;}

H1, H2 { margin-top: 1.2em ; margin-left: -7% ; color: #900 ; clear: both ;}[ ... ]

[ ... ]TD, TH { font-family: "Helvetica",

sans-serif line-height: 1.35 ;}

H1, H2 { margin-top: 1.2em ; margin-left: -7% ; color: #900 ; clear: both ;}[ ... ]

<LINK REL="stylesheet" HREF="fichier.css"><LINK REL="stylesheet" HREF="fichier.css">

Page 16: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 16Tuesday, April 11, 2023

SGML (Standard Generalized Markup Language)

Créé en 1986 [ISO 8879] Séparation du fond et de la forme Permet des puissants traitements informatiques sur les

documents Proposition d’un cadre défini pour l’expression des

modèles documentaires (validité, contrôle) Fournir un format de stockage et d’échange normalisé Très lourd et complexe pour la mise en œuvre de

documents respectant ce format Une grande rigueur est demandée

Page 17: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Fédération de données semi-structurées avec XML

Tuyêt Trâm DANG NGOCLaboratoire PRiSM – Université de Versailles

45, avenue des Etats-Unis78035 Versailles CEDEXemail: [email protected]

Résumé: Nous décrivons dans ce papier une architecture de médiation "tout-XML"

1 IntroductionL'évolution constante en matière de réseaux et de base de données ces trente dernières années a mené à une demande toujours croissante d'accès rapides à une large quantité d'informations variés.

2 Problématique2.1 Requête sur données semi-structuréesEvaluer une requête sur des données semi-structurées [1] implique de naviguer à travers la structure en examinant à la fois les valeurs des éléments et le nom auto-descriptif de l'élément tout au long du parcours.

2.2 Médiation de données semi-structuréesLes sources sont hétérogènes et peuvent être interrogées de manière différentes. Par exemple un SGBD relationnel sera interrogé suivant le langage SQL suivant : 1 -- chercher tous les livre dont le titre contient LINUX 2 SELECT * 3 FROM livre 4 WHERE titre LIKE '%LINUX%'

Fédération de données semi-structurées avec XML

Tuyêt Trâm DANG NGOCLaboratoire PRiSM – Université de Versailles

45, avenue des Etats-Unis78035 Versailles CEDEXemail: [email protected]

Résumé: Nous décrivons dans ce papier une architecture de médiation "tout-XML"

1 IntroductionL'évolution constante en matière de réseaux et de base de données ces trente dernières années a mené à une demande toujours croissante d'accès rapides à une large quantité d'informations variés.

2 Problématique2.1 Requête sur données semi-structuréesEvaluer une requête sur des données semi-structurées [1] implique de naviguer à travers la structure en examinant à la fois les valeurs des éléments et le nom auto-descriptif de l'élément tout au long du parcours.

2.2 Médiation de données semi-structuréesLes sources sont hétérogènes et peuvent être interrogées de manière différentes. Par exemple un SGBD relationnel sera interrogé suivant le langage SQL suivant : 1 -- chercher tous les livre dont le titre contient LINUX 2 SELECT * 3 FROM livre 4 WHERE titre LIKE '%LINUX%'

Composants imbriqués

Note: [Abiteboul 1998] Semistructured Data Tutorial 1998

Note: [Abiteboul 1998] Semistructured Data Tutorial 1998

TITRE

RESUME

AUTEUR

PRENOM

VILLEPARA

CODE

TITRE

NOM

ADRESSE

PARA

SOUSSECTION

TITRE

TITRE

TITRE

TITRE

SOUSSECTION

SECTION

SECTION

ENTETE

CORPS

RUE

ORGANISATION

CODEPOSTAL

NOM

FNOTE

Page 18: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 18Tuesday, April 11, 2023

Vue Balisée

<ARTICLE> <ENTETE> <TITRE>Fédération de données semi-structurées avec XML.</TITRE> <AUTEUR CONTACT ="1"> <PRENOM>Tuyêt</PRENOM> <PRENOM>Trâm</PRENOM> <NOM>DANG</NOM><NOM>NGOC</NOM> <ADRESSE> <ORGANISATION>Laboratoire PRiSM – Université de Versailles<ORGANISATION> <ADRESSE>45, avenue des Etats-Unis</ADRESSE> <VILLE>Versailles CEDEX</VILLE> <PAYS>France</PAYS> <CODEPOSTAL>78035</CODEPOSTAL> <EMAIL>[email protected]</EMAIL> </ADRESSE> </AUTEUR> </ENTETE> <CORPS> <SECTION><TITRE>Introduction</TITRE> <PARA> L'évolution constante en matière de réseaux et de base de données ces... </PARA> [...] </CORPS> <FTNOTE ID=NT1><PARA>[Abiteboul 1998] Semistructured Data Tutorial 1998</PARA></FTNOTE></ARTICLE>

<ARTICLE> <ENTETE> <TITRE>Fédération de données semi-structurées avec XML.</TITRE> <AUTEUR CONTACT ="1"> <PRENOM>Tuyêt</PRENOM> <PRENOM>Trâm</PRENOM> <NOM>DANG</NOM><NOM>NGOC</NOM> <ADRESSE> <ORGANISATION>Laboratoire PRiSM – Université de Versailles<ORGANISATION> <ADRESSE>45, avenue des Etats-Unis</ADRESSE> <VILLE>Versailles CEDEX</VILLE> <PAYS>France</PAYS> <CODEPOSTAL>78035</CODEPOSTAL> <EMAIL>[email protected]</EMAIL> </ADRESSE> </AUTEUR> </ENTETE> <CORPS> <SECTION><TITRE>Introduction</TITRE> <PARA> L'évolution constante en matière de réseaux et de base de données ces... </PARA> [...] </CORPS> <FTNOTE ID=NT1><PARA>[Abiteboul 1998] Semistructured Data Tutorial 1998</PARA></FTNOTE></ARTICLE>

Page 19: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 19Tuesday, April 11, 2023

Vue Arborescente

ARTICLE

ABSTRACTAUTEUR

NOM

CODE

TITRE

PRENOM

ENTETE CORPS

ADRESSE SECTION

SOUSSECTION

SECTION

SOUSSECTION

PARA

ORGANISATION ADRESSE

TITRE

PARA PARA TITLE

PARA

PARA

VILLE PAYS CODE POSTAL

EMAIL

PARA

PARA

FTNOTE

REFLOC

FTNOTE ID

PARA

TITRE

Page 20: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 20Tuesday, April 11, 2023

Correspondance arborescence/balises

<sorties><bar>

<nom id="42"> L’Envol </nom><adresse>

<rue> Lacépède </rue><ville> Paris </ville>

</adresse><boisson> Maple Kiss </boisson><boisson> Gin Tonic </boisson>

</bar>

<bar><nom id="43"> Le Frog’s </nom><telephone> 01 43 40 70 71</telephone><adresse>

<rue>cour Saint-Emilion</rue><ville>Paris</ville>

</adresse></bar></sorties>

<sorties><bar>

<nom id="42"> L’Envol </nom><adresse>

<rue> Lacépède </rue><ville> Paris </ville>

</adresse><boisson> Maple Kiss </boisson><boisson> Gin Tonic </boisson>

</bar>

<bar><nom id="43"> Le Frog’s </nom><telephone> 01 43 40 70 71</telephone><adresse>

<rue>cour Saint-Emilion</rue><ville>Paris</ville>

</adresse></bar></sorties>

bar

nom

adresse

rue

villeboisson

(#attribut : 42)id

LacépèdeParis

Maple Kiss

L'Envol

nom

adresse

rue

ville

telephone 01 43 40 70 71

(#attribut : 43)id

cour Saint Emilionchaîne

Le Frog's

boisson Gin Tonic

bar

sorties

Page 21: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 21Tuesday, April 11, 2023

Séparation du fond et de la forme

Permettre la diffusion du même document sous plusieurs formats différents et sous plusieurs supports. ex: format Postscript pour un document sous forme papier, format HTML pour le même document "en-ligne" sur le Webex : projet de documentation FreeBSD : http://www.freebsd-fr.org/ : on écrit une seule fois en SGML, et on génère automatiquement les formats HTML, Postscript, ASCII. Mise à jour du site et des documents très simple (une recompilation)

Page 22: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 22Tuesday, April 11, 2023

L’approche XML

Par rapport à SGML Très semblable (balisés, DTD: schéma de définition du vocabulaire du

document) plus léger et moins strict (le DTD n’est pas obligatoire et n’a pas

besoin de coller exactement au document)

Par rapport à HTML plus strict (oubli des guillemets ou de fin de balises non accepté). balisage non prédéfini : une syntaxe plus forte et plus souple

SGML(Documentation structurée)

HTML(Présentation web)

XML

Page 23: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

La norme XML

NormalisationSyntaxe

Page 24: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 24Tuesday, April 11, 2023

La norme XML (eXtensible Markup Language)

Recommandation W3C en février 1998

but: ajouter une signification au contenu à travers sa structure

Définition de la structure à travers des balises (tags)

XML 1.010 fev. 1998

XML 1.115 Oct. 2002

XML 1.0 (2nd edition)6 Oct. 2000

Page 25: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 25Tuesday, April 11, 2023

Balises

Les langages à balises sont idéaux pour organiser une information structurée.

Un objet balisé s’auto-décrit. Les balises sont de la forme classique :

<balise> valeur ou bloc </balise>

<cite id="C42F" > Un trou noir est le resultat de la division de l'univers par zero</cite>

Contenu

balise de début

Elément

balise de fin

nom d'attribut

valeur d'attribut

id = "C42F"attribut

Page 26: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 26Tuesday, April 11, 2023

Syntaxe XML (1/6)

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

02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd">

03 <?xml-stylesheet type="text/xsl" href="style.xsl"?>

04 <bibliotheque>

05 <livre code="C4242F">

06 <titre>Programmation Linux 2.0</titre>

07 <prix devise="EUR">28.88</prix>

08 </livre>

09 </bibliotheque>

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

02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd">

03 <?xml-stylesheet type="text/xsl" href="style.xsl"?>

04 <bibliotheque>

05 <livre code="C4242F">

06 <titre>Programmation Linux 2.0</titre>

07 <prix devise="EUR">28.88</prix>

08 </livre>

09 </bibliotheque>

Déclaration XML

Page 27: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 27Tuesday, April 11, 2023

Syntaxe XML (2/6)

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

02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd">

03 <?xml-stylesheet type="text/xsl" href="style.xsl"?>

04 <bibliotheque>

05 <livre code="C4242F">

06 <titre>Programmation Linux 2.0</titre>

07 <prix devise="EUR">28.88</prix>

08 </livre>

09 </bibliotheque>

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

02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd">

03 <?xml-stylesheet type="text/xsl" href="style.xsl"?>

04 <bibliotheque>

05 <livre code="C4242F">

06 <titre>Programmation Linux 2.0</titre>

07 <prix devise="EUR">28.88</prix>

08 </livre>

09 </bibliotheque>

Déclaration du type de document XML

Page 28: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 28Tuesday, April 11, 2023

Syntaxe XML (3/6)

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

02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd">

03 <?xml-stylesheet type="text/xsl" href="style.xsl"?>

04 <bibliotheque>

05 <livre code="C4242F">

06 <titre>Programmation Linux 2.0</titre>

07 <prix devise="EUR">28.88</prix>

08 </livre>

09 </bibliotheque>

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

02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd">

03 <?xml-stylesheet type="text/xsl" href="style.xsl"?>

04 <bibliotheque>

05 <livre code="C4242F">

06 <titre>Programmation Linux 2.0</titre>

07 <prix devise="EUR">28.88</prix>

08 </livre>

09 </bibliotheque>

Instruction de formatage (processing instruction)

Page 29: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 29Tuesday, April 11, 2023

Syntaxe XML (4/6)

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

02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd">

03 <?xml-stylesheet type="text/xsl" href="style.xsl"?>

04 <bibliotheque>

05 <livre code="C4242F">

06 <titre>Programmation Linux 2.0</titre>

07 <prix devise="EUR">28.88</prix>

08 </livre>

09 </bibliotheque>

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

02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd">

03 <?xml-stylesheet type="text/xsl" href="style.xsl"?>

04 <bibliotheque>

05 <livre code="C4242F">

06 <titre>Programmation Linux 2.0</titre>

07 <prix devise="EUR">28.88</prix>

08 </livre>

09 </bibliotheque>

Balises d'éléments (element tags)

Page 30: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 30Tuesday, April 11, 2023

Syntaxe XML (5/6)

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

02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd">

03 <?xml-stylesheet type="text/xsl" href="style.xsl"?>

04 <bibliotheque>

05 <livre code="C4242F">

06 <titre>Programmation Linux 2.0</titre>

07 <prix devise="EUR">28.88</prix>

08 </livre>

09 </bibliotheque>

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

02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd">

03 <?xml-stylesheet type="text/xsl" href="style.xsl"?>

04 <bibliotheque>

05 <livre code="C4242F">

06 <titre>Programmation Linux 2.0</titre>

07 <prix devise="EUR">28.88</prix>

08 </livre>

09 </bibliotheque>

Attributs de balises d'éléments (attributes)

Page 31: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 31Tuesday, April 11, 2023

Syntaxe XML (6/6)

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

02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd">

03 <?xml-stylesheet type="text/xsl" href="style.xsl"?>

04 <bibliotheque>

05 <livre code="C4242F">

06 <titre>Programmation Linux 2.0</titre>

07 <prix devise="EUR">28.88</prix>

08 </livre>

09 </bibliotheque>

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

02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd">

03 <?xml-stylesheet type="text/xsl" href="style.xsl"?>

04 <bibliotheque>

05 <livre code="C4242F">

06 <titre>Programmation Linux 2.0</titre>

07 <prix devise="EUR">28.88</prix>

08 </livre>

09 </bibliotheque>

Contenu (text content)

Page 32: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 32Tuesday, April 11, 2023

Différence avec HTML : plus strict (bien-formé)

Toute balise ouverte doit être fermée et bien imbriquée <br/>

<b>bold <i> and italic </i> text</b>

<b>bold <i> and italic </b> text</i>

<ul> <li> list item </ul> Les attributs doivent être spécifiés et mis entre guillemets

<img src=‘images/banner.gif’/>

<img src=images/banner.gif />

<ul compact> <li> list item </li> </ul> Différentiation majuscule / minuscule

<prenom>Remy</prenom>

<PRenOM>Remy</prenom> Tous les caractères spéciaux y compris les accents doivent être codés

<prenom>R&eacute;my</prenom>

<prenom>R&#233;my</prenom>

<prenom>Rémy</prenom>

Page 33: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 33Tuesday, April 11, 2023

Points importants

Les document DOIVENT être bien-formés (well-formed)un document ne contient qu'un seul élément racine les balises ouvrantes doivent être fermées et correctement

imbriquées les attributs doivent être spécifiés et mis entre guillemets le contenu ne doit contenir que des caractères XML valides

Les documents PEUVENT être valides la structure et les contenus du document se conforment à

des règles spécifiées par un "vocabulaire" (DTD ou XML-Schema)

Page 34: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Technologies XML

Règle de structureDTDXML-Schema

InterrogationXPathXQuery

PrésentationXSL

Page 35: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 35Tuesday, April 11, 2023

Technologies XML

Décrire la structure d'un document XML : DTD ou XML-Schema

Présenter un document XML : XSL

Se repérer dans un document XML : XPath

Différencier les documents XML : XML-Namespace

Interroger un document XML : XQuery

Page 36: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 36Tuesday, April 11, 2023

Schéma : notion

<bar><nom id="42"> L’Envol </nom><adresse>

<rue> Lac&eacute;pegrave;de </rue>

<ville> Paris </ville></adresse><boisson> Maple Kiss </boisson><boisson> Gin Tonic </boisson>

</bar>

<bar><nom id="43"> Le Frog’s </nom><telephone> 01 43 40 70 71</telephone><adresse>

<rue>cour Saint-Emilion</rue><ville>Paris</ville>

</adresse></bar>

bar

nom

adresse

rue

villeboisson

telephone

chaîne

type_telephone

(#attribut : nombre)id

chaîne

chaînechaîne *

chaîne

noeud

Page 37: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 37Tuesday, April 11, 2023

DTD (Document Type Definition)

Permet de définir le «vocabulaire» et la syntaxe qui seront utilisés dans le document XML

Permet de valider un document XML : pour la cohérence

Peut être mis dans un fichier et être appelé dans le document XML par :<!DOCTYPE livre SYSTEM «livre.dtd»>

Page 38: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 38Tuesday, April 11, 2023

DTD : syntaxe (1/3)

!ELEMENT tag (contenu)Décrit une balise qui fera partie du vocabulaire.ex : <ELEMENT livre (auteur, edition)>

!ATTLIST tag [attribut type #valeur]*Définit la liste d’attributs pour une baliseex : <!ATTLIST auteur

genre CDATA #REQUIRED ville CDATA #IMPLIED> <!ATTLIST editeur ville CDATA #FIXED «Paris»>

Page 39: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 39Tuesday, April 11, 2023

DTD : syntaxe (2/3)

!ENTITY %nom «valeur»Une entité est l’équivalent XML d’une macro. Permet de définir un nom qui sera remplacé par le parseur dans le texteex : <!ENTITY % genres «homme» | «femme»>

<!ATTLIST auteur genre (%genres ; ) #REQUIRED>

Page 40: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 40Tuesday, April 11, 2023

DTD : syntaxe (3/3)

CDATADonnées brutes qui ne seront pas analysées

PCDATA Elément de texte sans descendants ni attributs contenant des caractères à analyser.

#FIXED : assigne une valeur ne pouvant être changée dans le document XML #IMPLIED : valeur fixée dans le document XML

#REQUIRED : valeur obligatoire

Page 41: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 41Tuesday, April 11, 2023

Exemple de DTD

<!ELEMENT bibliotheque (livre)*>

<!ELEMENT livre (titre, auteur+, date, ISBN, editeur)>

<!ATTLIST livre code #REQUIRED>

<!ELEMENT titre (#PCDATA)>

<!ELEMENT auteur (#PCDATA)>

<!ELEMENT date (#PCDATA)>

<!ELEMENT ISBN (#PCDATA)>

<!ELEMENT editeur (#PCDATA)>

<!ELEMENT bibliotheque (livre)*>

<!ELEMENT livre (titre, auteur+, date, ISBN, editeur)>

<!ATTLIST livre code #REQUIRED>

<!ELEMENT titre (#PCDATA)>

<!ELEMENT auteur (#PCDATA)>

<!ELEMENT date (#PCDATA)>

<!ELEMENT ISBN (#PCDATA)>

<!ELEMENT editeur (#PCDATA)>

Page 42: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 42Tuesday, April 11, 2023

XML-Schema

Syntaxe XMLManipulation des schémas avec des outils d'édition XML

classiques Les DTD XML ne permettent pas de définir assez de

contraintesTypage étendu (string, Boolean, decimal, integer, date, etc.)

Définition de ses propres types (ComplexType)

Contraintes sur intervalles maxlength, precision, enumeration, maxInclusive (borne supérieure), minInclusive (borne inférieure), encoding (sur les binaires)

Orienté-objetDérivation de types par rapport à des types existants

Page 43: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 43Tuesday, April 11, 2023

Disgression : Espaces de noms XML (XML Namespace)

Qu'est ce qu'un espace de noms ? l'espace de nom d'un élément est le contexte dans lequel il est valide

(ex. un bloc {...} en C)

Pourquoi un espace de noms ? résolution des conflits : si des éléments sont définis dans un contexte

global, il risque d'y avoir des problèmes lors de l'utilisation de plusieurs documents. (collision et conflits de noms)

modularité : si un certain vocabulaire existe il est utile de pouvoir le réutiliser pour des applications utilisant le même contexte

Les espaces de noms en XML c'est une collection de noms identifiée par une référence URI Les noms d'un espace de nom XML sont représenté comme des noms

qualifiés par une partie préfixe et une partie locale. Le préfixe correspond à la référence URI et détermine l'espace de noms

<xsl:apply-templates select="."/>

Page 44: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 44Tuesday, April 11, 2023

Exemple XML-Schema

<?xml version="1.0"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.livres.org" xmlns=“http://www.livres.org”> <xsd:element name="bibliotheque"> <xsd:complexType> <xsd:sequence> <xsd:element ref="livre" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="livre"> <xsd:complexType> <xsd:sequence> <xsd:element ref="titre" minOccurs="1" maxOccurs="1"/> <xsd:element ref="auteur" minOccurs="1" maxOccurs=“unbounded”/> <xsd:element ref="date" minOccurs="1" maxOccurs="1"/> <xsd:element ref="ISBN" minOccurs="1" maxOccurs="1"/> <xsd:element ref="editeur" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="titre" type="xsd:string"/> <xsd:element name="auteur" type="xsd:string"/> <xsd:element name="date" type="xsd:date"/> <xsd:element name="ISBN" type="xsd:integer"/> <xsd:element name="editeur" type="xsd:string"/></xsd:schema>

<?xml version="1.0"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.livres.org" xmlns=“http://www.livres.org”> <xsd:element name="bibliotheque"> <xsd:complexType> <xsd:sequence> <xsd:element ref="livre" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="livre"> <xsd:complexType> <xsd:sequence> <xsd:element ref="titre" minOccurs="1" maxOccurs="1"/> <xsd:element ref="auteur" minOccurs="1" maxOccurs=“unbounded”/> <xsd:element ref="date" minOccurs="1" maxOccurs="1"/> <xsd:element ref="ISBN" minOccurs="1" maxOccurs="1"/> <xsd:element ref="editeur" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="titre" type="xsd:string"/> <xsd:element name="auteur" type="xsd:string"/> <xsd:element name="date" type="xsd:date"/> <xsd:element name="ISBN" type="xsd:integer"/> <xsd:element name="editeur" type="xsd:string"/></xsd:schema>

Page 45: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 45Tuesday, April 11, 2023

XPath

Utilisé dans les standards XML (XSL, XML-Schema, XQuer) ex. "/livre/auteur/prenom"

Une manière pratique de repérer un élément dans un document XML

(Plus direct que de naviguer dans un arbre DOM ou attendre le bon évènement SAX)

. self::node()

.. parent::node()

// descendant-or-self::node()

@ attribute::

Page 46: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 46Tuesday, April 11, 2023

XPath : Syntaxe (1/4)

livre/titrefils "titre" du fils "livre" du noeud courant

/livre/titrefils "titre" du fils "livre" de la racine du document

@langageattribut "langage" du noeud courant

chapitre/@langageattribut "langage" du noeud "chapitre" du noeud

courant

Page 47: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 47Tuesday, April 11, 2023

XPath : Syntaxe (2/4)

chapitre[3]/para tous les fils "para" du troisième chapitre

livre/*/titre tous les fils de "titre" de tous les fils du fils "livre" du

noeud courant chapitre//para

tous les descendants "para" de n'importe quel fils du noeud chapitre

../../titre tous les fils "titre" du parent du parent du noeud courant equiv. parent::node()/parent::node()/child::titre

Page 48: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 48Tuesday, April 11, 2023

XPath : Syntaxe (3/4)

para[1] ou para[position()=1] le premier noeud fils "para" du noeud courant

para[last()] para[count(child::note)>0]

tous les paragraphes avec une ou plusieurs notes

para[id("abstract")] sélectionner tous les noeuds fils de la forme :

<para id="abstract">

para[@type='secret'] or para[attribute::type='secret'] selectionner tous les noeuds fils de la forme

<para type="secret">

Page 49: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 49Tuesday, April 11, 2023

XPath : Syntaxe (4/4)

para[not(titre)] sélectionner tous les paragraphe fils sans éléments titre

para[position() >= 2 and position() < last()] sélectionner tous les paragraphes sauf le premier et le

dernier

note[contains(., "toto")] . veut dire "tester le contenu des fils aussi, récursivement

dans ce contexte

note[starts-with(., "toto")]

Page 50: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 50Tuesday, April 11, 2023

XSL (eXtended Style Langage)

Basé sur le principe de DSSLPlus de fonctionnalités que CSS

Filtrage de données XMLPrésentation des données dans n'importe quel ordreModification et ajout d'informationPeut inclure des scripts

Prise en compte de XML en plus du HTML

XML + XSL => affichage sur le navigateur client

Page 51: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 51Tuesday, April 11, 2023

XSL : Syntaxe (1/4)

Associé à un document XML par un appel<?xml-stylesheet type="text/xsl" href="livre.xsl">

<xsl : template match=nom>Définit les règles pour la balise dont le nom est spécifié par match.ex : <xsl: template match="auteur">

Page 52: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 52Tuesday, April 11, 2023

XSL : Syntaxe (2/4)

<xsl : value-of select=nom>Retourne la valeur de l’attribut de la balise spécifiée ou le texte associé au noeud. Nom d’attribut préfixé par @, noeud atteint par /. ex: <xsl: value-of select="livre/auteur/@ville">

<xsl: template match="auteur"><b><xsl: value-of /></b>,<xsl: value-of select="@ville" />,<i><xsl: value-of select="@date_naissance" /></i></xsl template>

Soit la ligne dans le document XML :<auteur date_naissance="1783" ville "Grenoble">Stendhal</auteur>On affichera :Stendhal, Grenoble, 1783

Page 53: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 53Tuesday, April 11, 2023

XSL : Syntaxe (3/4)

<xsl : for-each select=nom></xsl: for-each>Répète ce qui suit pour chaque élément correspondant au mot-clef demandéex : <xsl : for-each select="livre/auteur">

<xsl: value-of /> <xsl: eval>AjouteVirgule ( )</xsl: eval> </xsl : for-each>Cela écrira à la suite tous les noms d’auteurs séparés par une virgule.

Page 54: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 54Tuesday, April 11, 2023

XSL : Syntaxe (4/4)

<xsl : apply-templates match=nom>Applique tous les templates possible aux éléments correspondant à la description.ex : <xsl: for-each select="livre">

<xsl: apply-templates select="auteur" /> <hr /> <xsl: apply-templates select="critique" /> </xsl: for-each>Affiche le détail sur les auteurs et les critiques des livres comris dans le document XML, chacun formatté avec leur propre template.

<xsl : eval>Fonction ( )</xsl : eval>Evalue une fonction JavaScript ou VBScript. Le retour de la fonction remplace la commande.

Page 55: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 55Tuesday, April 11, 2023

<?xml version='1.0'?><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <body> <table cellpadding="2" cellspacing="0" border="1" bgcolor="#FFFFD5"> <tr> <th>TITLE</th> <th>AUTHOR</th> <th>DATE</th> <th>ISBN</th> </tr> <xsl:for-each select="bibliotheque/livre"> <tr><td><xsl:value-of select="titre"/></td> <td><xsl:value-of select="auteur"/></td> <td><xsl:value-of select="date"/></td> <td><xsl:value-of select="ISBN"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>

<?xml version='1.0'?><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <body> <table cellpadding="2" cellspacing="0" border="1" bgcolor="#FFFFD5"> <tr> <th>TITLE</th> <th>AUTHOR</th> <th>DATE</th> <th>ISBN</th> </tr> <xsl:for-each select="bibliotheque/livre"> <tr><td><xsl:value-of select="titre"/></td> <td><xsl:value-of select="auteur"/></td> <td><xsl:value-of select="date"/></td> <td><xsl:value-of select="ISBN"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>

XSL : exemple

2225815968 1997M.J. Bachconception du systeme UNIX

2212091834 2000R.CardProgrammation linux 2.0

ISBNDATEAUTHORTITLE

pour se référer à l'espace de noms XSLon trouve l'élément racine

Ce qu'on fait si on trouve l'élément racine

aller dans chaque élément "livre" de l'élément "bibliothèque"

et afficher le titre, l'auteur, la date et l'ISBN

Page 56: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 56Tuesday, April 11, 2023

XSL-FO (extended Style Sheet Formatting Object)

permet d’exprimer de manière très précise le rendu d’un document. Il gère la pagination d’un document, les notes de bas de page, les marges,… Il est possible de préciser avec exactitude l’emplacement des différents objets sur la page, les polices des caractères, l’affichage de tableaux, etc.

Un document XSL-FO est assez pénible à réaliser à la main, c’est pourquoi on utilise XSLT dans le but de générer du XSL-FO à partir d'une feuille de style XSLT.

Page 57: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 57Tuesday, April 11, 2023

FOP (Formatting Objects Processor)

FOP utilise XSL-FO pour générer des documents sous des formats indépendant

FOP est une application java qui lit un arbre de formatage d'objet (FO) et renvoie une page suivant le format de sortie souhaité.

Format de sortie actuellement supporté par FOP : PDF, PCL, PS, SVG,

XML, Print, AWT, MIF and TXT. La cible principale est le PDF.

XML XSLT

Processeur XSLT

XSL-FO

Processeur FOP

PDF

Page 58: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

XML et les bases de données

Pourquoi les SGBD-R ?Pourquoi XML ?

Page 59: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 59Tuesday, April 11, 2023

XML et bases de données relationnelles

Pourquoi les bases de données relationnelles ? La plupart des données sont stockées dans des SGBD-R Peu d'évolution prévue dans un avenir proche

dimensionnable, sûr, performant, beaucoup d'outils existants

Besoin de moyen efficace pour publier des données relationnelles comme des documents XML

Pourquoi XML ? Modèle élégant complexe, arborescent, structuré balises spécifiques descriptives Standardisé ! Standard dominant d'échange sur le web.

Page 60: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 60Tuesday, April 11, 2023

Inconvénients des modèles de données classiques

bar nom adresse rue ville telephone boissonL'Envol NULL LaCépède Paris NULL Maple Kiss,

Gin Tonic

Le Frog's

25, Cour Saint Emilion, Paris

NULL NULL 0143407071 NULL

L'Apparement Café

NULL NULL Paris 0148871222,

0148874942Café, Thé, Chocolat, Margarita, Gin Tonic

Valeurs nulles Attributs multi-valués Difficultés d'extensions

Exportation de données complexe

Page 61: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 61Tuesday, April 11, 2023

Données XML

Structure arborescente Structure irrégulière

données multi-valuéesdonnées manquantesdonnées de types

différents

Structure implicitedéfinie dans les données

elles-mêmes

ReprésentationXML

<bar><nom> L’Envol </nom><adresse>

<rue> Lac&eacute;pegrave;de </rue><ville> Paris </ville>

</adresse><boisson> Maple Kiss </boisson><boisson> Gin Tonic </boisson>

</bar>

<bar><nom> Le Frog’s </nom><telephone> 01 43 40 70 71</telephone><adresse> 25, cour Saint-Emilion Paris,</adresse>

</bar>

<bar><nom> L’Envol </nom><adresse>

<rue> Lac&eacute;pegrave;de </rue><ville> Paris </ville>

</adresse><boisson> Maple Kiss </boisson><boisson> Gin Tonic </boisson>

</bar>

<bar><nom> Le Frog’s </nom><telephone> 01 43 40 70 71</telephone><adresse> 25, cour Saint-Emilion Paris,</adresse>

</bar>

Page 62: XML origine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

Tuyêt Trâm DANG NGOC - Université de Versailles 62Tuesday, April 11, 2023

Oracle XSU (XML-SQL Utility)

XSU est packagé avec Oracle8i (8.1.7 et plus) et Oracle9i

XSU permet de transformer des données récupérées de tables ou vues relationnelles-objets en XML

XSU peut extraire des données d'un document XML et en utilisant un mapping générique, insérer, supprimer, mettre à jour des données dans les colonnes associées d'une table