Introduction à XML

54
Introduction à XML Gestion de l’information sur Internet Module 1 7 décembre 2004 EL MUSTAPHA EL ATIFI / SAID RADHOUANI

description

XML, DTD, XSD, XML Schema, XSL, XSLT, SVG, SMIL, VXML, X3D

Transcript of Introduction à XML

Page 1: Introduction à XML

Introduction à XML

Gestion de l’information sur InternetModule 1

7 décembre 2004

EL MUSTAPHA EL ATIFI / SAID RADHOUANI

Page 2: Introduction à XML

10/04/23 2

Rappels Langages de balisage <tag-nom attribut1="expression" attribut2="…"> contenu </tag-nom> Meta-données :données qui décrivent les données !! Ou

Informations descriptives que l’on ajoute à une ressource Web XHTML Feuilles de style CSS

Définir et contrôler l’application des règles de style à du contenu html

Séparer le contenu de son rendu Concevoir des rendus de document spécifiques à des

besoins variés

Page 3: Introduction à XML

10/04/23 3

Introduction Notion de document électronique

Aspect statique Aspect dynamique

Et si on veux partager des documents entre les membres d’une communauté?

Et si l’on veux publier les mêmes données sous multiples présentations (en tableau, en texte, graphique …)?

Avec éventuellement des traitements sur ces données: tris, enrichissement, sélections, réorganisations, génération automatique de libellés, tables des matières, index, etc.

Page 4: Introduction à XML

10/04/23 4

Introduction

Et ce sur de multiples médias (écran, papier, terminal Braille, cellulaire, etc.)

Et si l’on veux chercher sur Internet un hôtel libre à paris sans avoir une connexion chez sois?

Remarque: Les ordinateurs ne sont pas intelligents. Il faut leur dire exactement ce que représentent les informations.

Page 5: Introduction à XML

10/04/23 5

Complément [Limites d’HTML] HTML est devenu le langage universel de formatage et de

présentation des informations aux utilisateurs du web Mais! Les tâche utilisateur du web?

Chercher de l’information Voir accès à une information structurée rassemblant non

seulement l'information elle-même (mots, images,...) mais aussi des indications sur son contenu.

utilisateurs et entreprises souhaitent des sites Web qui fournissent des services au-delà d’afficher des pages bien présentées

Ils veulent des systèmes qui prennent des commandes de clients des systèmes qui consolident des informations

Page 6: Introduction à XML

10/04/23 6

Complément [Limites d’HTML] des systèmes qui traitent ces informations avant de les présenter Partager des documents à structure spécifique entre une

communauté

/!\ HTML n'avait pas été conçu pour ce genre de tâches HTML: peu de balises pour la structure <p>, <head>, <body>,

<title>, … Avec HTML il est difficile d’exprimer la sémantique (méta-infos +

commentaires+ sémantique des balises) HTML: mélange les balises de structure et ceux de la

présentation

Page 7: Introduction à XML

10/04/23 7

Historique Au début des années 80 (1986) standard SGML

Connu pour sa complexité de mise en œuvre Usage limité à de très grands systèmes documentaires.

En 1996 une équipe conduite par Jon Bosak de Sun Microsystems décide de créer une version du SGML plus simple et mieux adaptée aux besoins d'échange de données sur le Web.

En 1998 XML est né: la recommandation XML 1.0 a été publiée par l’XML Working Group le 10 février 1998

XML est l'abréviation d'eXtensible Markup Language. Etat actuel : XML 1.1, recommandation publiée par le W3C le 4

février 2004

Page 8: Introduction à XML

10/04/23 8

Historique

GM

Internet

Web

SGML

HTML

XML

1960

1986

1992

1996

Source: www.euroclid.fr

Page 9: Introduction à XML

10/04/23 9

XML c’est quoi?

Document éléctronique Document texte plat décrit la structure logique et la sémantique

des documents Langage pour écrire des langages

(métalangage) Langage de balisage

Page 10: Introduction à XML

10/04/23 10

Structure XML Un document XML est fait de:

Un prologue <?xml version="1.0" encoding="ISO-8859-1"?> Le prologue se poursuit avec des informations facultatives sur

des instructions de traitement à destination d'applications particulières. Leur syntaxe est la suivante: <?instruction de traitement?>

Le second élément est une déclaration de type de document (à l'aide d'un fichier annexe appelé DTD - Document Type Definition)

L’arbre des éléments Un élément racine Des éléments internes

Un élément peut contenir d’autres éléments ou du texte Un élément peut avoir des attributs Un élément peut être vide

Page 11: Introduction à XML

10/04/23 11

Exemple de document XML

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

    <personne type="étudiant">        <nom>HEUTE</nom>        <prenom>Thomas</prenom>        <email>[email protected]</email>    </personne>    <personne type="chanteur">        <nom>CANTAT</nom>        <prenom>Bertrand</prenom>    </personne>

</annuaire>

Page 12: Introduction à XML

10/04/23 12

Vue hierarchique XML

annuaire

Personnechanteur

nom

Personneétudiant

prenomemail

nomprenom

Page 13: Introduction à XML

10/04/23 13

Syntaxe Le document commence par une déclaration XML avec

l’encodage. Le document utilise une DTD s’il y a. Le document contient un seul et unique élément racine. Le document contient un ou plusieurs éléments. Un élément

correspond à une balise fermé sans contenu ou Une balise d’ouverture, un contenu une balise de fermeture.

Une balise contenant des données doit impérativement être fermée.

Les balises doivent être correctement imbriquées.

Page 14: Introduction à XML

10/04/23 14

Syntaxe

XML - eXtensible XML n'impose pas de structure rigide :

<nom valeur=EL ATIFI/> <nom>EL ATIFI</nom>

décrit la structure logique et la sémantique des documents

Page 15: Introduction à XML

10/04/23 15

Autres exemples de docs XML

http://cui.unige.ch/xml/evenements/derniere_depeche.xml

http://cui.unige.ch/xml/DI/etudes/licence.xml http://cui.unige.ch/xml/etudiants/index.xml

http://cui.unige.ch/etudiants/index.html

http://cui.unige.ch/xml/etudiants/index-en.xml http://cui.unige.ch/etudiants/index-en.html

Page 16: Introduction à XML

10/04/23 16

Caractéristiques et avantages

L’édition d’un document XML se fait indépendamment de sa restitution future (papier, écran, cellulaire, synthèse vocale ou autre) ou d’un traitement futur

Réutilisabilité et amélioration de la productivité Rendre les données facilement partageables XML n’est pas un langage propriétaire (portabilité

assurée) Le coût de mise en place est très faible : mettre à

jour le contenu d’un fichier!

Page 17: Introduction à XML

10/04/23 17

Caractéristiques et avantages XML a pour but de rendre les informations auto-explicatives

pour les ordinateurs et pour les humains XML permet de représenter des données structurées ou des

objets dans un fichier texte plat eXtensible: car les repères de marquage des données ne

sont pas définies dans le langage comme en HTML. Représentation des données indépendamment d'un système.

Pas comme les feuille Excel, BD, fichier Word … XML facilite donc l'échange d'informations non seulement

entre des systèmes informatiques différents mais aussi au-delà des frontières nationales ou culturelles: utilisation d’UNI-CODE

Lisibilité Outils de validation

Page 18: Introduction à XML

10/04/23 18

Editeurs XML

Editeurs d’XML Jaxe : éditeur XML Xeena XML SPY Exchanger XML Editor XML Editor Jaxe Morphon XMLwriter …

Page 19: Introduction à XML

10/04/23 19

Parseurs XML Parseurs ou afficheurs :

Internet explorer : A partir de  la version 5.0 et au delà. <http://www.microsoft.com/downloads/search.asp?LangID=7&LangDIR=FR> affiche l'arborescence d'un fichier xml.

Microsoft XML Parser (MSXML) 3.0 Service Pack 4 (SP4) <http://msdn.microsoft.com/library/default.asp?url=/downloads/list/xmlgeneral.asp >

Opera .A pertir de la version 5 <http://www.opera.com/opera5/specs.html#xml> valable pour BeOS, Linux,Windows, Epoc et Mac.

Mozilla <http://www.mozilla.org/> affiche le contenu des balises d'un fichier xml les uns à la suite des autres.

Netscape A partir de la version 6. <http://wp.netscape.com/download/>

Page 20: Introduction à XML

10/04/23 20

Autour d’XML

DTD(Document Type Definition), XML est un ensemble de nouvelles

technologies : «XML namespaces» «XML Schemas»,CSS, XPath, XLink , XQuery, …

analyseurs (en anglais parsers, parfois francisé en parseurs). le SAX et le DOM : ensemble de classes d'objets pour

programmer avec des données XML. Applications XML Dans le cadre du web Autres utilisations

Page 21: Introduction à XML

10/04/23 21

Définition de types de document (DTD)

Question? Comment imposer une structure rigide pour l’édition d’un document XML?

Comment vérifier qu’un document XML respecte la charte d’une communauté au niveau de sa structure et son contenu? Validité de document

Besoin d’un langage qui permet de définir des jeux de balises.

=> DTD: langage de Définition de Type de Document (Document Type Definition)

Page 22: Introduction à XML

10/04/23 22

DTD Chaque document XML peut être associé à une

DTD Une DTD c’est:

Ensemble de règles définissant la structure d’une classe de documents XML

elle fournit la liste des éléments xml et leurs imbrication, leurs attributs, notations et entités

Une DTD peut être insérée dans le document XML qu’elle régit, ou être associée à ce document par une adresse de référence (url externe). Ce dernier cas de figure permet de partager une DTD entre plusieurs documents

Page 23: Introduction à XML

10/04/23 23

DTD interne: exemple

<?xml version=1.0 standalone=yes?>

<!DOCTYPE MESSAGE [

<!ELEMENT MESSAGE (#PCDATA)>

]>

<MESSAGE>

Salut tout le monde

</MESSAGE>

Visualiser le fichier avec IE

Page 24: Introduction à XML

10/04/23 24

DTD partagée: exemple

<?xml version=1.0 standalone="yes"?>

<!DOCTYPE MESSAGE SYSTEM "message.dtd">

<MESSAGE>

Salut tout le monde

</MESSAGE>

<?xml version=1.0 standalone="yes"?>

<!DOCTYPE MESSAGE SYSTEM "http://unl.unige.ch/message.dtd">

<MESSAGE>

Salut tout le monde

</MESSAGE>

Visualiser le fichier avec IE

Page 25: Introduction à XML

10/04/23 25

DTD

<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE annuaire SYSTEM "annuaire.dtd"><annuaire>

    <personne type="étudiant">        <nom>HEUTE</nom>        <prenom>Thomas</prenom>        <email>[email protected]</email>    </personne>    <personne type="chanteur">        <nom>CANTAT</nom>        <prenom>Bertrand</prenom>        <email>[email protected]</email>    </personne>

</annuaire>

Page 26: Introduction à XML

10/04/23 26

DTD – exemple : annuaire

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

<!ELEMENT annnuaire (personne*)>

<!ELEMENT personne (nom+,prenom+,email?)>

<!ATTLIST personne type (étudiant |professeur | chanteur | musicien) "étudiant">

<!ELEMENT nom (#PCDATA)>

<!ELEMENT prenom (#PCDATA)>

<!ELEMENT email (#PCDATA)>

Page 27: Introduction à XML

10/04/23 27

DTD Un document XML est dit valide s’il est conforme à ce qui est

défini dans la DTD associée. Exemple de document XML non valide:

<?xml version=1.0 standalone=yes?><!DOCTYPE MESSAGE [ <!ELEMENT MESSAGE (#PCDATA)>]><MESSAGE langue="fr">Salut tout le monde</MESSAGE>

Il existe des validateurs de documents XML par rapport à leur DTD exemple: http://www.cogsci.ed.ac.uk/%7Erichard/xml-check.html http://www.stg.brown.edu/service/xmlvalid/

Page 28: Introduction à XML

10/04/23 28

XML Schema (XSD)

XML Schema est un formalisme qui permet de définir des contraintes en matière de syntaxe, de structure et de valeurs applicables à une classe de documents XML.

Il permet entre autres d'effectuer des contrôles de validité lors de la saisie/mise à jour de ces documents

XSD est plus stricte qu’une DTD Permet d’introduire la notion de type de

donnée

Page 29: Introduction à XML

10/04/23 29

XSD - exemple <?xml version="1.0" encoding="utf-8" ?>

<xsd:schema targetNamespace="http://localhost/perso/MonExemple" "xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:element name="produit"><xsd:complexType>      <xsd:element name="specification">      <xsd:complexType>            <xsd:all>            <xsd:attribut name="taille" type="xsd:string" />            <xsd:attribut name="couleur" type="xsd:string" />            </xsd:all>      </xsd:complexType>      </xsd:element>

      <xsd:element name="prix">      <xsd:complexType>            <xsd:all>            <xsd:attribut name="gros" type="xsd:decimal" />            <xsd:attribut name="detail" type="xsd:decimal" />            <xsd:attribut name="tva" type="xsd:decimal" />            </xsd:all>      </xsd:complexType>      </xsd:element>

 <xsd:element name="notes" minOccurs="0" type="xsd:string" /></xsd:complexType></xsd:element></xsd:schema>

Page 30: Introduction à XML

10/04/23 30

XML NameSpaces XML namespaces

permet de mélanger les repères de sources différentes sans risques( c’est un mécanisme destiné à lever les ambiguïtés éventuelles des intitulés de balise ),

Par exemple "titre" peut aussi bien désigner le titre d'un ouvrage que celui d'une personne. Pour lever ces ambiguïtés, le mécanisme des namespaces consiste à utiliser des préfixes, par ex. "perso:titre" et "biblio:titre". Ces préfixes doivent être déclarés comme associés à une URL qui peut être fictive, mais qui le plus souvent fera référence à l'organisme garant du vocabulaire en question).

Page 31: Introduction à XML

10/04/23 31

XML et le WEB Affichage d’un document XML par les différents navigateurs. Partager de l’information entre plusieurs sites en facilitant leur

mise à jour: Chaque site possède son propre document Il enregistre le lien (URI) vers ce document auprès

d'aggrégateur(s) de contenu Les mises à jour se font une seule fois et à un seul niveau Efficace pour des sites portails (portails d’information) imaginer

un portail qui regroupent toutes les informations relatives aux célébrités sportives et en même temps intègrent des informations sur leurs opérations financières

Interfacer des applications Web

Page 32: Introduction à XML

10/04/23 32

Applications XML sur le web XHTML XSL / XSLT VoiceXML ou VXML: Spécification XML, validée en mai 2000 par

le W3C, conçue pour "l'internet vocal". Outils de création de sites vocaux (Voice Publisher ) Et des produits : Notifier

[http://www.dexem.fr/stories/2003/12/23/notifier] SVG: (Scalable Vector Graphics ) SMIL : l'intégration du contenu multimédia grâce à XML X3D : (Extensible 3D) langage de description de scènes de

réalité virtuelle WML: (Wireless Markup Language) similaire à HTML, il est lu et

interprété par un navigateur intégré à un terminal WAP (téléphone portable)

Page 33: Introduction à XML

10/04/23 33

XML et les feuilles de style

Il est possible d'utiliser pour présenter un document XML les feuilles de style CSS les feuilles de style XSL

L’utilisation des feuilles de style XSL pour transformer ou rendre utilisable un document XML se fait par utilisation de XSLT

Page 34: Introduction à XML

10/04/23 34

XML et CSS Association d’une ou plusieurs feuilles de style à un document

XML Association au moyen de l’instruction de traitement <?xml-

stylesheet …?> Par référence dans une autre feuille de style à l’aide de @import Feuille de style spécifié par l’utilisateur (options du navigateur)

Moyens d’introduire des règles de style pour le contenu XML: Séléction par des pseudo-classes Séléction par identificateur Attribut d’exception STYLE="font-style:italic«

Attention pas pris en charge par tous les navigateurs Héritage des règles de style dans la hiérarchie des éléments.

Page 35: Introduction à XML

10/04/23 35

XSL / XSLT

XSL et XSLT sont des outils pour appliquer des transformations et styles à des documents,

XSL et un langage normalisé de feuilles de style (Extensible Style Language)

XSL permet de définir simplement les règles de construction de nouveaux documents(XML, html, pdf, txt,…) à partir de documents XML.

XSLT et le mécanisme qui permet de transformer un arbre source représentant le document xml en un arbre résultat.

Page 36: Introduction à XML

10/04/23 36

Source: www.euroclid.fr

Page 37: Introduction à XML

10/04/23 37

Source: www.euroclid.fr

Page 38: Introduction à XML

10/04/23 38

XSL / XSLT exemples

Utiliser un navigateur (IE) pour afficher le contenu XML associé à une feuille de style xsl (voir demos)

Génération automatique des fiches des membres et des chercheurs du CUI

(voir demos)

Page 39: Introduction à XML

10/04/23 39

SVG

SVG: Scalable Vector Graphics Langage de définition de formes graphiques

2D en XML Intègre des éléments d’animation 1èr avantage: éditer un dessin graphique

avec Note-Pad !! Les images SVG sont zoomable (sans perte

de qualité)

Page 40: Introduction à XML

10/04/23 40

Exemple SVG

Autre exemple: http://www.svg.free.fr/SVG/Voiture.html

Voir : demos/svg

Page 41: Introduction à XML

10/04/23 41

SMIL

Langage d'Intégration Multimédias Synchronisés

SMIL est pour le multimédia ce que HTML est pour le texte

Intègre des mécanismes puissants pour la gestion du temps, de la synchronisation et des animations

Page 42: Introduction à XML

10/04/23 42

SMIL - exemple<smil>

<head><!-- Presentation attributes. -->

<meta name="title" content="video example"/><meta name="author" content="EL atifi"/><layout> <!-- Width, height, and background color of entire presentation. --> <root-layout width="300" height="300" background-color="black" /> <!-- Text region. --> <region id="text_region" left="0" top="175" width="300" height="120" /> <!-- video region. --> <region id="video_region" left="0" top="0" width="300" height="170" /></layout>

</head><body>

<par> <!-- Play these streams concurrently (in parallel). --> <text src="g2video.rt" region="text_region" /> <video src="g2video.rm" region= "video_region"clip-end="0:43.0"/></par>

</body></smil>

Page 43: Introduction à XML

10/04/23 43

SMIL - exemple

Autres exemples: http://www.realnetworks.com/resources/samples/switching.html

Voir : demos/smil/exemple2.smi

Page 44: Introduction à XML

10/04/23 44

VXML le VoiceXML permet de déployer des applications

professionnelles (centres d'appels, messagerie d'entreprise, intranet vocal) ou grand public (services d'informations boursières, météo, jeux, astrologie, etc...).

Permet l'accès à Internet via le téléphone, mobile ou fixe navigation téléphonique sur Internet à travers des sites

vocaux Conception de plate formes Internet pour les handicapés

mal voyants… standard automatique, journal téléphoné, serveur vocal

d'actualités, service thématique etc.

Page 45: Introduction à XML

10/04/23 45

VXML<?xml version="1.0"?>

<vxml version="2.0">  <menu>    <prompt>      Choisissez une section: <enumerate/>    </prompt>    <choice next="http://www.le-site.com/sports.vxml">      Sports    </choice>    <choice next="http://www.le-site.com/meteo.vxml">      Météo    </choice>    <choice next="http://www.le-site.com/actus.vxml">      Actualités    </choice>    <noinput>Faites un choix parmi les sections proposées: <enumerate/> </noinput>  </menu></vxml>

Page 46: Introduction à XML

10/04/23 46

VXML

Le dialogue serait rendu comme suit, à l'aide d'un téléphone:

- Ordinateur: "Choisissez une section: Sports; Météo; Actualités." - Utilisateur: "Astrologie." - Ordinateur: message spécifique à la plateforme, de la forme "Je

n'ai pas compris ce que vous avez dit", puis "Faites un choix parmi les sections proposées: Sports; Météo; Actualités.«

- Utilisateur: "Actualités.« - Ordinateur: charge la page

http://www.le-site.com/actus.vxml

Page 47: Introduction à XML

10/04/23 47

VXML - exemple

Voir : demos/vxml

Page 48: Introduction à XML

10/04/23 48

X3D (eXtensible 3D)

D’abord il y avait VRML X3D: Successeur au VRML conforme à XML Langage de définition de scènes virtuelles 3D

en XML Nécessite des "viewers" pour rendre la

scène visible et navigable Facilement intégrable aux services web

(exemple environnements de chat 3D )

Page 49: Introduction à XML

10/04/23 49

X3D - exemple<?xml version="1.0" encoding="UTF-8"?>

< !DOCTYPE X3D PUBLIC "http://www.web3D.org/TaskGroups/x3d/translation/x3d-draft.dtd""file://localhost/C:/www.web3D.org/TaskGroups/x3d/translation/x3d-draft.dtd">< X3D>

  < Header>     < meta name="file" content="HelloWorld.x3d"/>    < meta name="author" content="*enter name here*"/>    < meta name="revised" content="9 Feb 2000"/>    < meta name="description" content="Simplist World"/>    < meta name="url" content="*enter url address here*"/>    < meta name="generator" content="X3D-Edit,     http://www.web3D.org/TaskGroups/x3d/translation/README.X3D-Edit.txt"/>  < /Header>

  < Scene>     < Transform>       < Shape>         < Appearance>           < Material diffuseColor="0 0 1"/>         < /Appearance>        < IndexedFaceSet coordIndex="0 1 2 3 0 -1">           < Coordinate point="-1.5 -1 0, 1.5 -1 0, 1.5 1 0, -1.5 1 0"/>         < /IndexedFaceSet>       < /Shape>     < /Transform>   < /Scene>

< /X3D>

Page 50: Introduction à XML

10/04/23 50

Scène virtuelle - exemple

Voir : demos/x3d-vrml

Page 51: Introduction à XML

10/04/23 51

Web sémantique Tout objet du web ou (ressource) possède une

étiquette. Toute étiquette est lisible par les agents logiciels et

par les êtres humains. Intégration des liens sémantiques externes qui

existent entre les ressources Beaucoup d’applications et langages ont vu le jour:

RDF, RDFS, OWL, … Application dans plusieurs domaines et pour

différents besoins Futur du web

Page 52: Introduction à XML

10/04/23 52

Pour conclure

Futur Futur d’Internet: Cette modification mineure dans

la manière de communiquer des ordinateurs va transformer l'Internet d'une plate-forme d'échange d'informations en une plate-forme pour traiter les informations.

Futur des entreprises: Disposer de données XML va devenir une condition sine qua non pour préserver sa position sur le marché.

L’Utilisation d’XML va améliorer la recherche d'information

Page 53: Introduction à XML

10/04/23 53

Pour conclure

Mais XML n’est pas la solution miracle Les outils d’XML ne sont pas tous encore des standards XML ne peut pas remplacer à l’état actuel les bases de

donnée mais peut les alimenter et les interfacer avec des applications.

Le passage à XML au sein des entreprises et des organisation et limité par Les frais de formation du personnel La complexité de conversion des données stocké(fichiers

texte, Excel, BD…) dans le format XML Les gens sont content avec ce qu’ils ont /!\ Il n’est pas toujours facile de changer les habitudes /!\

Page 54: Introduction à XML

10/04/23 54

Références http://www.chez.com/xml/ http://www.toutestfacile.com http://www.w3c.org/XML/ http://www.w3schools.com/svg/svg_examples.asp http://www.w3.org/Math/implementations.html XML le guide de l’utilisateur. Edition OSMAN

EYROLLES MULTIMEDIA (Livre sur XML) http://www.yoyodesign.org/doc/w3c/w3c.html http://apia.u-strasbg.fr/vrml/index.html http://www.web3d-fr.com/