Post on 05-Dec-2014
description
Introduction à XML
Gestion de l’information sur InternetModule 1
7 décembre 2004
EL MUSTAPHA EL ATIFI / SAID RADHOUANI
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
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.
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.
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
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
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
10/04/23 8
Historique
GM
Internet
Web
SGML
HTML
XML
1960
1986
1992
1996
Source: www.euroclid.fr
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
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
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>webmaster@xmlfacile.com</email> </personne> <personne type="chanteur"> <nom>CANTAT</nom> <prenom>Bertrand</prenom> </personne>
</annuaire>
10/04/23 12
Vue hierarchique XML
annuaire
Personnechanteur
nom
Personneétudiant
prenomemail
nomprenom
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.
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
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
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!
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
10/04/23 18
Editeurs XML
Editeurs d’XML Jaxe : éditeur XML Xeena XML SPY Exchanger XML Editor XML Editor Jaxe Morphon XMLwriter …
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/>
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
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)
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
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
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
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>webmaster@xmlfacile.com</email> </personne> <personne type="chanteur"> <nom>CANTAT</nom> <prenom>Bertrand</prenom> <email>noir@desir.fr</email> </personne>
</annuaire>
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)>
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/
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
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>
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).
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
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)
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
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.
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.
10/04/23 36
Source: www.euroclid.fr
10/04/23 37
Source: www.euroclid.fr
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)
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é)
10/04/23 40
Exemple SVG
Autre exemple: http://www.svg.free.fr/SVG/Voiture.html
Voir : demos/svg
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
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>
10/04/23 43
SMIL - exemple
Autres exemples: http://www.realnetworks.com/resources/samples/switching.html
Voir : demos/smil/exemple2.smi
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.
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>
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
10/04/23 47
VXML - exemple
Voir : demos/vxml
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 )
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>
10/04/23 50
Scène virtuelle - exemple
Voir : demos/x3d-vrml
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
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
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 /!\
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/