XML (eXtensible Markup Language)

Slides:



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

HTML Abda Anne Plan Présentation Structure Texte Listes Images Liens Tableaux Formulaires.
Transformation de documents XML
Xavier Blanc Web Services Xavier Blanc
DTD Sylvain Salvati
Internet : serveurs Web
Une solution personnalisable et extensible
Les espaces de nommage XML par Philippe Poulard 1
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
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.
le langage les éléments
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
version Beta Marie Calberg Ninni Louhelainen SLFN7
TP 3-4 BD21.
JOME, un Composant Logiciel pour le Télé-Enseignement des Mathématiques via le WEB, Compatible OpenMath et MathML Laurent DIRAT OVE / I3S-UNSA.
CREATION DE FEUILLE DE STYLE pour structuré le document XML
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Adamou Mahamane Sidi Maman Bachir
Web traditionnel
Etude des Technologies du Web services
Nouveau blog. WordPress connexion Nommez votre blog.
XML-Family Web Services Description Language W.S.D.L.
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.
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.
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
Les feuilles de style CSS
8 - XML Cours XML.
Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB
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.
PHP & My SQL.
Le langage XHTML 420-S4W-GG Programmation Web Client
Le langage du Web CSS et HTML
LE HTML ISN Terminale S Un peu d’histoire …
1 F o r m a t i o n A R S World Wide Web (WWW). 2 F o r m a t i o n A R S Contributions m Création: Claude Gross (UREC) m Modifications: Bernard Tuy,
Le langage XML.
Internet : serveurs Web  Clients et serveurs : le navigateur  Sites Web et urls  Fichier source d’une page  Langage HTML 1.
 Objet window, la fenêtre du navigateur
Programmation Web : Introduction à XML
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Bien présenter des documents longs…
Copyright © 2005 Yves MARCOUX1 Concepts XML de base Yves MARCOUX EBSI - Université de Montréal.
XHTML les fondamentaux M.DIENG Abdoulaye DTS 1 Réseaux & Données.
SMIL Synchronized Multimedia Integration Language
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.
INTERNET Le langage HTML
Soutenance du mémoire de synthèse
Initiation au JavaScript
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.
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
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.
1 Présentation de DREAMWEAVER (1) Gaël TREMEAU GI05 Printemps 2006.
SI28 Malépart Céline Jérémy Palmier
DREAMWEAVER SEANCE 1 Axel JACQUET GM05 – Julien VAN MOORLEGHEM GM05 A2008 Écriture interactive & multimédia Présentation Dreamweaver 8.
Introduction au HTML Qu’est ce que le HTML ?
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.
DTD EAD.
INF2005– Programmation web– A. Obaid Variantes de HTML.
1 er séance SI28 A2004 YIN Lei Emmanuel Eugene. Plan de l’exposé  Introduction au HTML  Le HTML dans le bloc-notes (notepad)  Présentation de Dreamweaver.
Transcription de la présentation:

XML (eXtensible Markup Language) The eXtensible Markup Language W3C (World Wide Web Consortium) http://www.w3C.org

Un exemple en HTML extrait de « XML expliqué aux débutants » d’Emmanuel Lazinier Le « source » avec balises de mise en page : <H2>Bibliographie XML</H2>  <UL>  <LI>  Jean-Christophe Bernadac et François Knab, <I>Construire une application XML</I>, Paris, Eyrolles, 1999</LI>  <LI>  Alain Michard, <I>XML, Langage et Applications</I>, Paris, Eyrolles, 1998 </LI>  <LI>  William J. Pardi, <I>XML en Action</I>, Paris, Microsoft Press, 1999, adapté de l'anglais par James Guerin</LI> </UL> 

Visualisation dans un navigateur Aucune indication de sémantique par les balises

Problèmes dus en partie à HTML Les balises HTML sont prédéfinies, Un seul type de document, Structuration et contenu non séparés, Une seule vue du même document, Sémantique des liens rudimentaire, Adaptation en utilisant des scripts, Interopérabilité limitée (échanges d'informations limité)

Même si... Facilité d'apprentissage de HTML, disponibilités d'outils (de création, de visualisation), génération dynamique de documents, langages de scripts pour des comportements dynamiques, ...

En XML : <?xml version="1.0" encoding="ISO-8859-1"?> <BIBLIO SUBJECT="XML"> <BOOK ISBN="9782212090819" LANG="fr" SUBJECT="applications"> <AUTHOR> <FIRSTNAME>Jean-Christophe</FIRSTNAME> <LASTNAME>Bernadac</LASTNAME> </AUTHOR> <AUTHOR> <FIRSTNAME>François</FIRSTNAME> <LASTNAME>Knab</LASTNAME> <TITLE>Construire une application XML</TITLE> <PUBLISHER> <NAME>Eyrolles</NAME> <PLACE>Paris</PLACE> </PUBLISHER> <DATEPUB>1999</DATEPUB> </BOOK> <BOOK ISBN="9782212090529" LANG="fr" SUBJECT="général"> …. </BIBLIO>

Différences ? Sémantique Hiérarchie Aucune balise de présentation Balises : firstname, lastname Attributs Hiérarchie Biblio Book Author Translator Title … Firstname Lastname Aucune balise de présentation

Ce que XML permet (ou va permettre ?) Taper une seule fois le contenu, sans se soucier de la présentation de ce contenu Visualiser/Exploiter ce contenu de plusieurs manières

Le contenu sans se soucier de la présentation ou des traitements futurs ; sans avoir à saisir des libellés tels que'"auteur", "année de parution : à la manière dont on alimenterait une base de données.

La présentation de multiples présentations (en tableau, en texte suivi…), avec éventuellement tris, sélections, réorganisations, génération automatique de libellés, tables des matières, index, etc. et ce sur de multiples médias (écran, papier, terminal Braille, réfrigérateur, PDA, etc.)

Le code XML est intégré à une page HTML et exploité par un script => interactivité.

L’exploitation Comprendre/exploiter au mieux le contenu de ces pages, grâce au balisage spécifique, indépendant de toute application.

Les apports d'XML

Au départ : l'arbre d'éléments Un élément est un composant identifiable d'un document (paragraphe, numéro de partie, date, listes, titre, …) Un élément : peut avoir un contenu (données, autres éléments), peut être un pointeur sur de l'information (lien hypertexte), doit être "contigu" : un début –une fin … sans "trou"

L'arbre d'éléments (suite) Chaque élément est délimité par des crochets (balise de fermeture obligatoire sauf pour les éléments vides exemple : <foo att1="val1" /> ), Un élément peut avoir plusieurs attributs pour décrire ses propriétés exemple de balise ouvrante : <rapport langue="FR" version="v2">

Exemple Section Chapître livre Section Chapître

Exemple Rmq : le document est un arbre : les éléments ne doivent donc pas se chevaucher !

HTML : Description physique et structurelle mêlées Durée de vie courte (= celle des technologies qui donnent un sens aux éléments de mise en page) Plusieurs formes d'un même document => plusieurs versions de ce document !

Contrôle de validité Doc. XML Doc. HTML Présentation Présentation Contenu Structure Présentation Contenu Structure Contrôle de validité

Doc. bien formé - doc. valide Bien formé : Règles syntaxiques de XML respectées = bonne formulation. Valide : c'est un document bien formé qui respecte une DTD ou un schéma.

Modularité et réutilisation Structure définie à part, dans une "Document Type Definition" (DTD) ou dans un Schéma Utilisation de structures normalisées, publiques (ex : pour un tableau, une liste de références bibliographiques, …) Définition de nouveaux types de documents

Extensibilité et structure <DATE> <ANNEE>1999</ANNEE> <MOIS>Octobre</MOIS> <JOUR>14</JOUR> </DATE> ou <date format="ISO-8601">1999-10-14</date>

Sémantique dans les balises <PERSON ID="p1100" SEX = "M"> <NAME> <GIVEN> Hubert </GIVEN> <SURNAME> McDaniel </SURNAME> </NAME> <BIRTH><DATE>20 Fev 1923</DATE> </BIRTH> <DEATH><DATE>9 Oct 2000</DATE> </DEATH> </PERSON> Des données auto-documentées

Autres avantages Reste indépendant des constructeurs Norme du W3C Codage universel (UNICODE)

Ce qu'XML n'est pas Ce n'est pas un langage de programmation, Ce n’est pas un protocole réseau, Ce n'est pas un format propriétaire, Ce n'est pas une base de données, … mais XML permet le stockage d'informations "semi structurées".

Pour plus de détails… quelques éléments de syntaxe

Structure d’un document XML Le prologue Le corps Une racine unique, L’arbre d’éléments

Le prologue La déclaration XML La déclaration de la DTD ou du schéma La version de la spécification utilisée, Le type de codage (le jeu de caractères) La déclaration de la DTD ou du schéma Des commentaires (<!-- … -->) Les instructions de traitement (pour traiter le contenu non xml) La déclaration d’entités

Déclaration de type On indique le type du document (titlepage) SYSTEM permet de définir la ressource qui contient la DTD : une URL (<!doctype rapport SYSTEM "rapport.dtd" [déclarations]>) La référence à une DTD ou à un schéma n'est pas obligatoire… mais recommandée !!! (<!doctype lettre [déclarations]>)

Le corps d'un doc XML Une racine unique, L’arbre d’éléments.

Une racine unique <?xml version "1.0" ?> <!-- livre est la racine unique de ce document--> <livre> <chapître> <section>... </section> </chapître> ... </livre>

L'arbre d'éléments Un élément se compose: D’une balise d’ouverture Un contenu Une balise de clôture Si l’élément est vide il peut s’écrire uniquement avec la balise d’ouverture et un "slash" avant le chevron fermant exemple : <position/> Un élément peut contenir d'autres éléments imbriqués.

Un doc bien formé Cela signifie : Une racine unique, début et fin explicites pour chaque élément, Pas de superposition de définitions d'éléments, Les attributs respectent les règles suivantes :

Balises et attributs : règles des noms Les noms commencent par une lettre ou _ (caractère souligné) les noms peuvent contenir : des lettres de tous les alphabets (Unicode), des chiffres et les 3 caractères _ - .

Balises et attributs : règles des noms Les noms ne peuvent pas contenir : d'autres ponctuation (sauf :) des blancs ou des retours à la ligne) La "casse" (majuscule/minuscule) est importante.

Règles sur les attributs un espace sépare un attribut d'un élément ou deux attributs entre-eux, les attributs sont nommés, utilisation de l'égalité et des quotes (simples ou doubles)

Erreurs "classiques" de "bonne formation" Absence de déclaration XML mauvaise formation des noms XML mauvaise syntaxe des balises pas d'élément racine caractères spéciaux mal utilisés

Validité d'un doc XML Après le test de "bonne formation" Test de la conformité à la structure définie dans la DTD ou le schéma associé.

Document Type Definition

DTD Permet de définir un modèle d'un type de document, appelé aussi "Doctype": message email, article de journal, livre …

DTD (suite) Un ensemble de règles de définition de la structure d'un document, En général dans un fichier à part, Permet de connaître la structure d'un document sans accéder à son contenu, Une DTD peut être partagée par plusieurs documents et plusieurs sites Web.

DTD (suite) Un exemple de définition d’une liste qui est constituée d’items : <!ELEMENT list (item)+> <!ELEMENT item (#PCDATA)> les items contiennent du texte (parsable character data)

DTD (suite) Pas nécessairement incluse dans un fichier unique : sections internes et sections externes. Plusieurs sections externes (mais pas de déclaration du même élément dans 2 sections différentes : conflit de noms) domaines nominaux…

Quelles déclarations ? Eléments types, listes d'attributs, entités, notations, (des commentaires)

Eléments types Exemple : <!ELEMENT livre (préface?, avant-propos?, introduction, partie+, chapitre+, conclusion)> introduction, partie, chapitre et conclusion obligatoires, préface et avant-propos facultatives au moins une fois : partie, chapitre une seule fois : introduction, conclusion

Eléments déclarés "ANY" Le contenu est : un groupe ou répétable, il peut contenir : des chaînes (#PCDATA) ou tout autre élément de la DTD.

Eléments déclarés "EMPTY" Le contenu est vide On lui associe des attributs.

Les attributs Il est associé à un élément, Il fournit des informations supplémentaires sur l'élément, Il est limité à un ensemble de valeurs définies.

Les attributs (suite) Il contient en général : des informations de sécurité, de contrôle (version, statut, diffusion, …) des compléments d'information (date, langue, …) des informations de formattage.

Les attributs prédéfinis à la norme ISO 3166 par défaut xml:lang <p xml:lang='fr'> essai </p> <!-- la langue peut être privée --> <p xml:lang='iserois'>Quein même</p> xml:space pour indiquer à l'application si le contenu d'un élément doit être traité en préservant les espaces (xml:space='preserve') ou application du traitement par défaut (xml:space='default').

Exemple

Listes d'attributs Un attribut : une paire (nom, valeur) associée à un élément <ATTLIST nom-élément nom-att1 type-att1 déclaration-de-défaut> Types d'attributs : CDATA, ID ou IDREF ou IDREFS, ENTITY ou ENTITIES, NMTOKEN ou NMTOKENS, NOTATION

Exemple Dans la DTD : Dans le document XML :

Un exemple

Attributs ID, IDREF Un attribut de type ID affecte un identificateur unique à un élément XML, t.q. : Le parser peut tester s'il est unique à l'interieur du document, Un attribut IDREF peut référencer un élément nommé par ID les paires ID/IDREF sont utilisées pour : des références croisées et des liens internes. référencer des objets dans le document.

Exemple Exemple de déclarations pour ID/IDREF dans la DTD : <!ELEMENT para (#PCDATA | figure | figref)* > <!ELEMENT figure (title?, graphic) > <!ATTLIST figure name ID #REQUIRED > <!ELEMENT graphic EMPTY > <!ATTLIST graphic filename CDATA #REQUIRED > <!ELEMENT figref (#PCDATA) > <!ATTLIST figref pointer IDREF #REQUIRED >

Exemple (suite) Dans le document : <para> <figure name="fishes"> <title>Fish come in many sizes</title> <graphic filename="fisheatfish.jpg"/> </figure> As we see in the figure above (<figref pointer="fishes"> </figref>) we must consider size when selecting a fishtank. </para>

Les déclarations d'entités Celles déclarées dans un document : entités générales, Celles déclarées dans une DTD pour être utilisées dans la DTD : entités paramètres

Exemple : les entités d'un livre <?xml version="1.0"?> <!doctype livre SYSTEM "livre.dtd" [ <!ENTITY toc SYSTEM 'toc.xml'> <!ENTITY chap1 SYSTEM 'chap1.xml'> <!ENTITY chap2 SYSTEM 'chap2.xml'> ]> <livre> <titre>Ceci est le titre</titre> &toc; &chap1; &chap2; </livre> Les entités seront remplacées par leur valeur (ici, le contenu des fichiers)

Entité paramètre exemples : <!ENTITY % ent1 SYSTEM 'val1'> <!ENTITY % ent2 SYSTEM 'http://foo.fr/xxx.xml'> <!ENTITY % ent3 PUBLIC '-//US//TEXT texte//FR' 'http://foo.fr/secours.xml'> Déclaration dans la partie interne ou externe d'une DTD Dans la partie interne d'une DTD (entre les crochets ouvrant et fermant de la déclaration DOCTYPE) : utilisables en pratique pour inclure le contenu d'un fichier externe

Adressée par identificateur public FPI (Formal Public Identifier) Pas toujours gérés par les applications Hérité de SGML Indirection entre le nom symbolique donné à l'entité et son URL de la forme : <!ENTITY nom PUBLIC FPI URL> Utilisé si l'application ne peut pas résoudre l'identificateur public

Quelques règles d'écriture Modulariser / réutiliser

Quelques règles d'écriture Ordonner Les déclarations d'entités se placent en tête

Les outils nécessaires Un éditeur adapté (vision arborescente, indentation, etc…) Un "parseur", pour vérifier la bonne formulation : il peut être validant ou non. Une "visionneuse" : qui permet d'appliquer une feuille de style à un document XML et d'afficher le document formaté.

En résumé : Editeur Écrit le Document Vérifié par le "Parseur" Chargé dans le Navigateur Montré au Lecteur

Une vue d'ensemble d'XML

Les origines d'XML 1997 XML 1992 HTML WWW 1986 SGML GM Internet 1960 Generalized Markup

XML c'est (1/2) Des recommandations du W3C (XML 1.1 le 4 février 2004 : http://www.w3.org/TR/2004/REC-xml11-20040204/ X : eXtensible / Ouvert ML : Markup Language (comme HTML) Métalangage pour créer d'autres langages

XML c'est (2/2) Séparation du contenu, de la structure et de la forme Ajout de sémantique Internationalisation : Unicode

SGML ? Trop complexe (beaucoup d'options différentes, …), omission possible de balises : pb de lisibilité, "XML = 80% des fonctionnalités de SGML et 20% de sa difficulté" d'après J.C. Bernadac et F. Knab

Sous ses apparences… Ressemble au premier abord à du HTML Est un sous-ensemble de SGML (Standard Generalised Markup Language) Offre plus de flexibilité que HTML pour personnaliser et gérer des documents du Web

...trompeuses un méta-langage et non un langage de marquage sans liste d'éléments prédéfinis : tout élément possible utilisation optionnelle d'une DTD (Document Type Definition) ou d'un schéma contrôle possible de la structure logique du document écrit en SGML

De nouveaux enjeux Edition collaborative, Diffusion ciblée, Personnalisation, Adaptation Échange de données Partage de ressources, …

Les documents Des gisements d'information (veille, analyse, …), En énorme quantité (Web, mises en ligne,…) Hétérogénéité des origines, des logiciels utilisés (Word, LateX, ps, pdf, numérisé,…)

Quels traitements ? Recherche d’information (pb de la lecture séquentielle), Filtrage, Tri, Transformation, mise à jour, Traitements complexes (traitements conditionnels, extraction de données, changements simultanés dans plusieurs fichiers, …)

Prise en compte d’Unicode Codage sur deux octets. Comment écrire du XML en unicode ? Rédaction d’un texte avec un jeu de caractères puis conversion (Framemaker le gère automatiquement) Insertion de références à des caractères Unicode (&#233 pour le é)

Unicode : à quoi sert-il ? Actuellement, environ 137000 symboles issus d’au moins 24 alphabets internationaux (près de 20000 pour les idéogrammes du han (Chine), et 11000 pour les syllabes du hangul coréen). Permet de représenter pratiquement toutes les langues de la planète « The unicode standard » ISBN 0-201-48346-9 d’Addison-Wesley ou http://www.unicode.org

Unicode, quelques outils "recode" http://www.gnu.org/directory/recode.html "native2ascii" dans le java development kit : Converts a file with native-encoded characters (characters which are non-Latin 1 and non-Unicode) to one with Unicode-encoded characters. dans le parser XML : RXP (option –c) (http://www.cogsci.ed.ac.uk/~richard/rxp.html)

Les problèmes liés au Web Quantité d'informations "Infinie "   > Pb de recherche d'informations (pertinence, "Invisible Web", déterminisme, …) > Comment retrouver ? Structuration des informations Certification des informations

Les problèmes liés au Web (suite) Pérennité des informations Adaptation à l'utilisateur "Privacy", copyright, ... Limites du protocole HTTP Toujours de nouvelles normes

Le(s) "successeur(s)" d’HTML XML (Extensible Markup Language, ou Langage Extensible de Balisage) Comme HTML (Hypertext Markup Language) c'est un langage de balisage (markup), c'est-à-dire un langage qui présente de l'information encadrée par des balises.

Contrairement à HTML HTML : un jeu limité de balises orientées présentation (titre, paragraphe, image, lien hypertexte, etc.) XML est un métalangage, Permet d'inventer à volonté de nouvelles balises pour isoler toutes les informations élémentaires (titre d'ouvrage, prix d'article, numéro de sécurité sociale, référence de pièce…), ou agrégats d'informations élémentaires, que peut contenir une page Web.