03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB...
-
Upload
olivie-lacombe -
Category
Documents
-
view
125 -
download
4
Transcript of 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB...
![Page 2: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/2.jpg)
11/04/23 BELKHIR ABDELKADER
Objectifs
Introduction
Documentpapier: livre,journal, article…
electronique: dépendant de l’application
hypertexte: jusqu’où suivre les liens?
Définition?
![Page 3: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/3.jpg)
11/04/23 BELKHIR ABDELKADER
Dimensions d’un document
•Logique (chapitre, titre, section...•Spatiale (mise en page)•Temporelle (scénario)•Sémantique
Document : arbrefeuilles : contenu
![Page 4: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/4.jpg)
Qu’est-ce que XML ?
eXtended Markup Language Langage de balises permettant de marquer les
documents afin de les structurer Coder la structure ou le sens plutôt que la forme
d’un document Langage flexible, expressif, simple, répandu
![Page 5: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/5.jpg)
11/04/23 BELKHIR ABDELKADER
Permettre une exploitation automatique-transformation de structure
-extraction d’information
Contraindre leur structure-Construire des modèles de documents-Définir la présentation en fonction de la structure logique
![Page 6: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/6.jpg)
11/04/23 BELKHIR ABDELKADER
HTML, SGML et XML
HTML: mise en forme + information
SGML: langage de marquage strict et complexe
XML: compromis entre légèreté de HTML et complexité de SGML
![Page 7: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/7.jpg)
11/04/23 BELKHIR ABDELKADER
BUT de XML
-Structurer les documents par domaine
-Stockage arborescent
-Organisation et définition multimédia
![Page 8: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/8.jpg)
11/04/23 BELKHIR ABDELKADER
<?xml version ="1.0"?> <ENTREPRISE>
<EMPLOYE SECU_SOC="1.80.12.75.120.058/51"> <NOM>Bernard</NOM> <PRENOM>Jean</PRENOM> </EMPLOYE> <EMPLOYE SECU_SOC="1.51.02.38.032.181/18"> <NOM>Dupré</NOM> <PRENOM>Jean-Yves</PRENOM> </EMPLOYE>
...</ENTREPRISE>
Exemple en XML
![Page 9: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/9.jpg)
11/04/23 BELKHIR ABDELKADER
Document XML
– Un prologue (entête)
– corps
![Page 10: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/10.jpg)
11/04/23 BELKHIR ABDELKADER
Prologue
<?xml attributs ?> Version= "numéro de version"
Encoding= "type d'encodage"
Standalone="yes|no"
<?xml version="1.0" encoding="ISO-8859-1", standalone="yes" ?>
Première ligne : déclaration XML
![Page 11: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/11.jpg)
11/04/23 BELKHIR ABDELKADER
suite d'éléments délimités par des marqueurs
Règles:– Chaque élément: marqueur d'ouverture et un marqueur de fermeture– Les éléments doivent être emboîtés, à partir de la racine– peuvent avoir un contenu, ou être vides ( <index valeur="125"/> )– peuvent avoir des attributs, ou ne pas en avoir– contenu : texte et/ou d’autres éléments et/ou des commentaires – Respecter la casse– Organisation arborescente (racine)
Corps du document
![Page 12: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/12.jpg)
Vue intuitive de la syntaxe
Un élément (‘NOM’)<NOM>Bernard</NOM>balise ouvrante + contenu + balise fermante• Règle de base– Eléments emboîtés : OK<AA> <BB> contenu </BB> </AA>– Eléments enchaînés : OK<AA> contenu1 </AA> <BB> contenu2 </BB>– Eléments chevauchés : JAMAIS !<AA> contenu1 <BB> contenu2 </AA> ... </BB>
![Page 13: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/13.jpg)
11/04/23 BELKHIR ABDELKADER
exemple
<?xml version="1.0" encoding= "ISO-8859-1"?><ENTREPRISE> <EMPLOYE SECU_SOC="1.80.12.75.120.058/51"> <NOM>Bernard</NOM> <PRENOM>Jean</PRENOM> </EMPLOYE> <EMPLOYE SECU_SOC="1.51.02.38.032.181/18"> <NOM>Dupré</NOM> <PRENOM>Jean-Yves</PRENOM> </EMPLOYE> </ENTREPRISE>
![Page 14: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/14.jpg)
Document XML bien formé
•Un document bien formé respecte la syntaxe de base XML
• Exemples d’erreurs de bonne formation
– absence de déclaration XML
– mauvaise syntaxe des balises
• pas d’élément racine, pas de fermeture, croisement,…
– mauvaise formation des noms XML
– caractères spéciaux mal utilisés
![Page 15: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/15.jpg)
Les DTD
Questions générales– comment communiquer à quelqu’un sa propre convention de
marquage ?– comment vérifier qu’elle est respectée?
Plus précisément– décrire les noms de balises autorisés– décrire un ordre autorisé pour les balises– quels éléments peuvent contenir quels éléments– quels éléments sont optionnels– quels sont les attributs autorisés, obligatoires /optionnels, leur
type, etc.
![Page 16: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/16.jpg)
La « grammaire des balises »
DTD : Document Type Definition– notion provenant de SGML– très utilisée en XML– écrite dans un langage spécifique
Document conforme à une DTD : valide<?xml version="1.0" standalone="no"?><!DOCTYPE racine SYSTEM "exemple.dtd"><racine>...</racine>
![Page 17: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/17.jpg)
Que contient une DTD ?
Déclarations des noms de balises autorisés<!ELEMENT nom_balise (contenu)>
Déclarations de l’ordre des balises– dans chaque "contenu" : voir les exemples
Déclarations des attributs de chaque élément (noms, types, attribut obligatoire ou non)<!ATTLIST élément attribut-1 type-1 attribut-2 type-2 attribut-3 type-3>
![Page 18: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/18.jpg)
Exemple de DTD (externe, locale)
1. Déclaration DOCTYPE dans le fichier XML<!DOCTYPE ouvrage SYSTEM "biblio.dtd">
2. Contenu du fichier texte "biblio.dtd"<!ELEMENT ouvrage (index, titre, auteur+)><!ELEMENT index EMPTY><!ATTLIST index valeur CDATA #REQUIRED><!ELEMENT titre (#PCDATA)><!ELEMENT auteur (nom, prenom+)><!ELEMENT nom (#PCDATA)><!ELEMENT prenom (#PCDATA)>
![Page 19: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/19.jpg)
Associer une DTD à un document
DTD interne au fichier XML<!DOCTYPE ouvrage [ ...déclarations... ]>
DTD externe : dans un autre fichier<!DOCTYPE livre SYSTEM "biblio.dtd"><!DOCTYPE livre SYSTEM "http://www.XX.org/biblio.dtd">
DTD externe : publique (connue)<!DOCTYPE livre PUBLIC "nom_connu" "URL">
On peut combiner :– une partie de DTD interne et une partie SYSTEM– une partie de DTD interne et une partie PUBLIC
![Page 20: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/20.jpg)
11/04/23 BELKHIR ABDELKADER
Vérification / validation
Bien distinguer BF et validité
– bonne formation : respecter la syntaxe XML
– validité : respecter une DTD précisée
![Page 21: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/21.jpg)
11/04/23
Les feuilles de style XSLT
Indiquent comment un fichier XML doit être transformé en un autre fichier XML (ou texte, ou HTML)
Sont aussi des documents XML bien formés– déclaration XML en première ligne– déclaration de l’encodage (UTF-8 par défaut, ou ISO-8859-1, etc.)– règles de fermeture des balises, etc.
![Page 22: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/22.jpg)
11/04/23 BELKHIR ABDELKADER
Le langage XSLT
XSL : eXtensible Stylesheet Language Deux sous-langages
• XSLT : XSL Transformations
• XSL-FO : XSL Formatting Objects XSLT = transformer un fichier XML en un autre fichier XML, ou en un fichier HTML XSL-FO = transformer un fichier XML en un fichier imprimable (p.ex. PDF)
![Page 23: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/23.jpg)
11/04/23
Fichier XML ( + DTD éventuellement) = D Feuille de style XSL = F Processeur XSL = programme qui applique la feuille de
style au fichier = P
• Le processeur P transforme D en D’ grâce à F
Principe
![Page 24: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/24.jpg)
11/04/23
Rôle du processeur XSL
![Page 25: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/25.jpg)
11/04/23
Utiliser plusieurs feuilles de style pour un même type de documents afin de varier l’affichage selon les besoins
Exemple : fiches bibliographiques en XML– affichage détaillé– affichage résumé– catalogue de toutes les fiches
Intérêt de XSL
![Page 26: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/26.jpg)
11/04/23
Structure d’une feuille de style XSLT (1)
Déclaration XML habituelle Elément racine xsl:stylesheet + attributs fixés <xsl:stylesheet
déclaration de version
déclaration du nom d’espace xsl >
Instructions de conversion des éléments– comment les éléments de départ seront transformés
Fermeture : </xsl:stylesheet>
![Page 27: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/27.jpg)
11/04/23
Structure d’une feuille de style XSLT (2)
![Page 28: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/28.jpg)
11/04/23
Comment une feuille de style XSLT est appliquée (1)
Le processeur lit la feuille de style et mémorise ses instructions de type xsl:template
– si des erreurs sont détectées dans la feuille de style, STOP
Le processeur lit le fichier XML à transformer et le vérifie– s’il est mal formé ou non valide, STOP
Le processeur parcourt le document XML initial– du début à la fin– sous forme d’arbre– des éléments parents vers les élément enfants– sauf si la feuille de style change l’ordre de parcours
![Page 29: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/29.jpg)
11/04/23
Comment une feuille de style XSLT est appliquée (2)
Pour chaque élément du document à transformer– le processeur cherche l’instruction de formatage XSLT
(<xsl:template match="…">) qui s’applique à lui– s’il la trouve, il écrit ce qu’elle dit– sinon, il y a deux instructions par défaut
Par défaut: si rien n’est prévu pour un élément– éléments avec du texte: recopier seulement le texte,
sans les balises– une fois le texte recopié, passer aux éléments fils (i.e.
contenus dans l’élément traité)
![Page 30: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/30.jpg)
11/04/23
Principe de « propagation »
Si dans la feuille de style on prévoit une instruction xsl:template pour traiter un certain élément, ne pas oublier de préciser dans l’instruction ce qui doit se passer avec ses fils !– si on veut les ignorer, on ne dit rien– si on veut les traiter, écrire :
<xsl:apply-templates select="fils-à-traiter"/>
– pour traiter tous les fils, écrire :<xsl:apply-templates select="*"/>
![Page 31: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/31.jpg)
11/04/23
Commandes de base (1)
Instruction de formatage principale<xsl:template match="NOM-ELEMENT-OU-JOKER">PAR QUOI REMPLACER CET ELEMENT, TEXTE-
OU-BALISES
</xsl:template> Jokers
* signifie ‘tout fils’. signifie l’élément courant– langage très riche: XPath
![Page 32: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/32.jpg)
11/04/23
Intégration XML base de données Il y a des instructions de formatage générales, à mettre au début de la
feuille XSL (p.ex. pour générer du HTML ou TXT)
Il y a des instructions conditionnelles (xsl:choose, xsl:otherwise, xsl:if, etc.)
Les expressions dans match="…" et select="…" sont des expressions XPath
– langage à part entière, très riche
Il y a aussi un mécanisme pour traiter les attributs
![Page 33: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/33.jpg)
11/04/23
Priorités– Q: Que se passe-t-il si plusieurs instructions peuvent s’appliquer ?– R: Il existe un système de priorités : les instructions les plus
spécifiques d’abord, puis celles avec les jokers ; si même priorité, la première qui convient s’applique
Noeuds racine– Q: Que se passe-t-il à la fin d’une hiérarchie père > fils?– R: Le processeur passe à la hiérarchie suivante (frère du père, etc.);
s’il n’y a plus rien, il s’arrête
Instructions par défaut– Q: Que se passe-t-il si aucune instruction ne s’applique ?– R: Il y a deux instructions par défaut
![Page 34: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/34.jpg)
Instructions par défaut (1)
Le processeur connaît deux instructions par défaut, qui ont la priorité la plus faible
1. Formatage des fragments d'éléments où il y a du texte (éléments sans enfants ou "mixed-content") :<xsl:template match="text()"><xsl:value-of select="."/></xsl:template>
SENS = « dans ce cas, il faut recopier le texte seulement dans le fichier XML résultat »
![Page 35: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/35.jpg)
Instructions par défaut (2)
2. Propagation des instructions de formatage aux éléments fils (enfants) des noeuds non traités par un xsl:template :<xsl:template match="*"><xsl:apply-templates/></xsl:template>
SENS = « si rien n'est prévu pour un élément, il faut écrire le texte dans le fichier résultat, puis aller plus loin et formater les éléments fils »
Ne pas oublier l’existence de ces deux instructions pour comprendre ce qui se passe !
Ne pas récrire des instructions pour traiter certains éléments si les instructions par défaut conviennent
![Page 36: 03/09/2014BELKHIR ABDELKADER Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz.](https://reader036.fdocuments.us/reader036/viewer/2022062318/551d9dc8497959293b8e3a78/html5/thumbnails/36.jpg)
Autres possibilités de XSLT
Mécanisme pour traiter les attributs
Instructions de formatage générales, à mettre au début de la feuille XSL (p.ex. pour générer du HTML ou TXT)
Instructions conditionnelles (xsl:choose, xsl:otherwise, xsl:if, etc.)
Les expressions dans match="…" et select="…" sont des expressions XPath
– langage à part entière, très riche