Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB

Slides:



Advertisements
Présentations similaires
Données structurées et XML
Advertisements

1 3.Langage XSL = XSLT + XSL-FO transformationFormatage.
Transformation de documents XML
DTD Sylvain Salvati
Données structurées et XML
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
Cours 2 : Transformation de documents XML
le langage les éléments
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
version Beta Marie Calberg Ninni Louhelainen SLFN7
Tutoriel XSLT F. Sajous ERSS – 01/04/2005.
XML Un format d'échange et un langage de présentation des données associé au HTML.
Manipulation d’XML avec XSL
CREATION DE FEUILLE DE STYLE pour structuré le document XML
Adamou Mahamane Sidi Maman Bachir
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Web Structurel
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
XML: Syntaxe XML, DTD et Schémas
Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le.
Le langage Javascript pour le web
Xpath XML Path language par Yves Bekkers
XSLT Langage de transformation darbre par Yves Bekkers.
Rappel (très) succint d’éléments techniques (XML, DTD, XSL, PHP)
STAF 2X XSL/FO Glaus & Ruckstuhl Mars © Glaus & Ruckstuhl TECFA Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et.
XSLT : trier et mettre en valeur le contenu d’un document XML
XML Plan du cours Introduction au fichier XML
Les feuilles de style CSS
Données sous XML Stéphane Marchand-Maillet Groupe Viper Vision par Ordinateur et Multimédia CUI – Université de Genève
8 - XML Cours XML.
1 Programmation Web II 2 ème année Licence Appliquée IAG Faculté des Sciences Economiques et de Gestion de Nableul Université 7 novembre à Carthage Années.
Le langage XHTML 420-S4W-GG Programmation Web Client
Les outils de base : XPath, XSL, XLink, XForms
Paradigmes des Langages de Programmation
XSL eXtensible Stylesheet Language Historique 1999: XSLT 1.0 et XPATH 1.0 : versions supportées par la plupart des outils depuis février 2007 XSLT 2.0.
XML et son usage dans la DMFA
Le site-en-kit pour les locales 2. Créer des pages.
Introduction à XML Généralités.
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
LE HTML ISN Terminale S Un peu d’histoire …
Le langage XML.
XML Stylesheet Language
Lancement de Microsoft Word
 Objet window, la fenêtre du navigateur
Programmation Web : Introduction à XML
Programmation Web : Schémas XSD Jérôme CUTRONA 19:27:07 Programmation Web
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Publication et Traitement avec XSL
Copyright © 2005 Yves MARCOUX1 Concepts XML de base Yves MARCOUX EBSI - Université de Montréal.
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
IUT SRC Année 2004/2005Antonio Capobianco 1 HTML>Formater du texte>Les titres Définir les titres HTML distingue 6 niveaux de titre : Titre N°1 Titre N°2.
Introduction à XML Yves Bekkers. Plan Introduction - structurer l’information Les langages à balises - un peu d’histoire XML - concepts de base Outils.
 G. Gardarin Les outils de base: Publication avec XML 1. XPATH 2. XSLT 3. XSLFO 4. XLink, XForms, RSS, … 5. XML et la bureautique.
Soutenance du mémoire de synthèse
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
1. Introduction 2. DTD 3. Schémas
Document Type Definition (DTD) Plan 2.1Introduction 2.2Déclaration de Document Type 2.3Déclaration d’élément Type 2.3.1Séquences, Choix, indicateurs d’Occurrence.
eXtensible Markup Language. Généralités sur le XML.
Introduction à MathML Par Katia Larrivée UQO Le 18 mars 2004.
XML : un métalangage pour la description de documents structurés XML a été défini par le consortium W3 en fonction de 2 objectifs: Compenser les limitations.
Dreamweaver Séance 1.
Présentation Dreamweaver 8 (1) Nina BOUAZIZ et Matthieu DI RUSSO SI28.
DREAMWEAVER MX2 - Séance 2 Les calques Les comportements Les scénarios Les formulaires Les feuilles de style Les modèles Les cadres Mise en ligne Jérôme.
Le langage XML Documents bien formés Un document XML est dit bien formé lorsque le document est correct sans toutefois posséder une DTD. Le prologue du.
XML les données réellement portables La nécessité d’un format de données universel et lisible se faisait sentir depuis longtemps, aujourd’hui avec le développement.
XSLT. Les documents XML peuvent avoir dans leur prologue une instruction de traitement xml-stylesheet. Cette instruction de traitement indique au navigateur.
INF2005– Programmation web– A. Obaid Variantes de HTML.
TP ISN-Terminale S Notion de code HTML. I) Visualisation du code source d’une page web Se mettre sur une page web quelconque : clic droit, Afficher la.
Transcription de la présentation:

Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB belkhir@lsi-usthb.dz 06/04/2017 BELKHIR ABDELKADER

Objectifs Introduction Document papier: livre,journal, article… electronique: dépendant de l’application hypertexte: jusqu’où suivre les liens? Définition? 06/04/2017 BELKHIR ABDELKADER

Dimensions d’un document Logique (chapitre, titre, section... Spatiale (mise en page) Temporelle (scénario) Sémantique Document : arbre feuilles : contenu 06/04/2017 BELKHIR ABDELKADER

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

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 06/04/2017 BELKHIR ABDELKADER

HTML: mise en forme + information 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 06/04/2017 BELKHIR ABDELKADER

Structurer les documents par domaine Stockage arborescent BUT de XML Structurer les documents par domaine Stockage arborescent Organisation et définition multimédia 06/04/2017 BELKHIR ABDELKADER

Exemple en XML <?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> ... </ENTREPRISE> 06/04/2017 BELKHIR ABDELKADER

Document XML Un prologue (entête) corps 06/04/2017 BELKHIR ABDELKADER

Prologue Encoding= "type d'encodage" Standalone="yes|no" <?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 06/04/2017 BELKHIR ABDELKADER

Règles: Corps du document suite d'éléments délimités par des marqueurs 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) 06/04/2017 BELKHIR ABDELKADER

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>

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> </ENTREPRISE> 06/04/2017 BELKHIR ABDELKADER

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

Les DTD Questions générales Plus précisément 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.

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>

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>

Exemple de DTD (externe, locale) Déclaration DOCTYPE dans le fichier XML <!DOCTYPE ouvrage SYSTEM "biblio.dtd"> 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)>

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

Vérification / validation Bien distinguer BF et validité bonne formation : respecter la syntaxe XML validité : respecter une DTD précisée 06/04/2017 BELKHIR ABDELKADER

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. 06/04/2017

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) 06/04/2017 BELKHIR ABDELKADER

Principe 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 06/04/2017

Rôle du processeur XSL 06/04/2017

Intérêt de XSL 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 06/04/2017

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> 06/04/2017

Structure d’une feuille de style XSLT (2) 06/04/2017

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 06/04/2017

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é) 06/04/2017

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="*"/> 06/04/2017

Instruction de formatage principale 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 06/04/2017

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 06/04/2017

Instructions par défaut 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 06/04/2017

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 »

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

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