XML et données semi-structurées

Slides:



Advertisements
Présentations similaires
Tutoriel - Les Ressources du BCH
Advertisements

1Er Partie Intervenants : Nuno Barata Alain Joly Thierry Belvigne
Données structurées et XML
D.U Introduction à XML Université Paris II & LRI Michel de Rougemont 1.Introduction à XML 2.DTD 3.XSL : style.
Transformation de documents XML
Xavier Blanc Web Services Xavier Blanc
DTD Sylvain Salvati
Site WEB: communication grand publique
19 septembre 2006 Tendances Logicielles IBM Rational Data Architect Un outil complet de modélisation et de conception pour SGBD Isabelle Claverie-Berge.
Les espaces de nommage XML par Philippe Poulard 1
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.
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
Design Pattern MVC En PHP5.
Manipulation d’XML avec XSL
Adamou Mahamane Sidi Maman Bachir
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
HTML.
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Web Structurel
28 novembre 2012 Grégory Petit
Bases de données lexicales
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
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.
Une chaîne éditoriale développée dans le cadre du CIRM François Dagorn Journées pédagogiques de lIFSIC.
Xpath XML Path language par Yves Bekkers
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.
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Jonathan Montois Cyrille Kriegel
Langages de requêtes XML
8 - XML Cours XML.
Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB
Le langage XHTML 420-S4W-GG Programmation Web Client
Le langage du Web CSS et HTML
PROGRAMMATION WEB FRONT-END.
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.
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
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.
S'initier au HTML et aux feuilles de style CSS Cours 5.
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.
Campus-Booster ID : **XXXXX Copyright © SUPINFO. All rights reserved Le développement Web.
Introduction à XML Yves Bekkers. Plan Introduction - structurer l’information Les langages à balises - un peu d’histoire XML - concepts de base Outils.
Soutenance du mémoire de synthèse
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Initiation au JavaScript
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
eXtensible Markup Language. Généralités sur le XML.
DU24 Septembre Introduction à XML test et correction Université Paris II & LRI Michel de Rougemont 1.Introduction.
Introduction à MathML Par Katia Larrivée UQO Le 18 mars 2004.
Présentation nouveau site marchand
Comprendre le SGBDR Microsoft Access – partie 2
Introduction à SVG Scalable Vector Graphic. Informations ● Plus d'informations ici (draft, tutoriaux, outils... ): –
Conception des pages Web avec
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.
Architectures articulant des représentations hétérogènes L’exemple de Gate (Mini tutoriel, journée Atala du 12 février 2005) Thierry Poibeau LIPN (CNRS.
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.
SI28 – Ecriture interactive et multimédia Sylvain Slaton – Pierre Laporte.
Introduction au HTML Qu’est ce que le HTML ?
INF2005– Programmation web– A. Obaid Variantes de HTML.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
ARIANE : Interopérabilité sémantique et accès aux sources d'information sur Internet Sylvain Aymard, Michel Joubert, Dominique Fieschi, Marius Fieschi.
Transcription de la présentation:

XML et données semi-structurées

La révolution du Web… Depuis dix ans, Internet révolutionne l'informatique « grand public » HTML est le langage du Web… Même si on trouve aussi du .doc, .ps, .pdf… et des images (jpg, gif), du son, de la vidéo… Des milliards de pages existent actuellement public/privé, statique/dynamique, visible/caché Support naturel pour l’information distribuée À destination d’êtres humains et de plus en plus, pour des applications XML – Miage III 2005

Distribution de données sur le Web: les applications arrivent… Exemples: B2C (commerce électronique) B2B (achats groupés) Bibliothèques et fonds documentaires en ligne G2C (impôts)… HTML n'est pas adapté pour ces applications Ces applications (programmes) ont besoin de typage pour représenter la structure des données XML – Miage III 2005

Constat1 Pour écrire des programmes, il faut du typage On ne peut pas se contenter d’obtenir des ensembles de pages HTML comme avec les moteurs de recherche du Web Les modèles documentaires à la HTML ne proposent pas assez de structure Quel modèle et quelles structures? Un typage à la « bases de données »? XML – Miage III 2005

Particularités – différences avec SGBD On ne connaît pas bien la structure Dans un SGBD, on connaît la structure des tables et la sémantique des colonnes; pas sur le Web La structure est irrégulière Données manquantes, ou en plus (annotations) Variations de type: dollars, euros Standards différents sur les adresses La structure peut être implicite Il faut « parser »pour la découvrir La structure peut n’être que partielle Une partie des données est sas structure: plein texte, images, son Le typage peut n’être qu’indicatif On tolère des données non strictement conforme XML – Miage III 2005

Particularités – différences avec SGBD Le schéma est souvent a posteriori On a des données et on en déduit un type Le schéma est souvent gros et complexe Le schéma est parfois ignoré par les requêtes Requête par mots clé et broutage Le type d’une information peut dépendre du contexte An objet MyBib est d’abord une chaîne de caractères, puis un fichier BibTex après analyse/classification, il peut obtenir un « propriétaire » une date_création; peut devenir ensuite un ensemble de Références après analyse syntaxique Le schéma évolue très rapidement Souvent une raison de ne pas choisir un SGBD XML – Miage III 2005

Constat2 Les modèles bases de données classiques proposent une structure trop rigide Ni modèle documentaire, ni modèle base de données, on va prendre un modèle de données semi-structuré qui marrie les deux XML – Miage III 2005

Deux mondes se rejoignent dans les modèles semi-structurés Gestion de documents SGML HTML Documentation hypertexte Gestion de données Bases de données structurées (relationnelles et objet) semistructurées Conçus à l'origine comme des systèmes fermés pour des données régulières et des applications de gestion, les systèmes de gestion de base de données évoluent pour devenir la brique de base de nouvelles applications ouvertes sur le réseau telles que librairies numériques, systèmes Intra/Internet, serveurs de Web, commerce électronique, etc. Ces applications nécessitent l'intégration de données hétérogènes et parfois peu structurées (par exemple, des documents XML ou HTML, les données trouvées sur un site Web, etc.). Une solution consiste alors à se reposer sur un modèle de graphe pour stocker ces données de façon dite "semi-structurée". Tout d'abord conçues par des chercheurs, et notamment par l'équipe bases de données de Stanford à qui l'on doit le système Lore, les bases de données semi-structurées séduisent maintenant les industriels. L'émergence de XML comme format d'échange de données entre systèmes est évidemment à la base de ce nouvel état de fait. Ce cours a pour but de présenter cette nouvelle technologie et les problèmes qu'il reste à résoudre pour la rendre industriellement viable XML XML – Miage III 2005

Le spectre de l’information et les données semi-structurées Minimal structure Structured Data Hierarchy + Meta data Systèmes Relationnels Systèmes Documentaire Books Contracts Catalogs Bank accounts Emails Financial Reports Insurance Policies Economical Analysis Derivatives Inventory Political analysis Insurance Claims Financial News Sports News Resumes XML – Miage III 2005

Données semi-structurées = XML Cible: la gestion du champ le plus large possible de contenus SGBD Données textuelles Données documentaires Data eXchange Formats ASN1, BibTex, EDI… XML – Miage III 2005

A la découverte de XML

XML – eXtensible Markup Language Un format universel pour les documents et données (semi-) structurés sur le Web Une version simplifiée de SGML (ISO 8879) L’espéranto du Web qui va remplacer HTML Beaucoup de bruit pour rien… du marketing Une famille de standards en train de naître XLink, XPointer, XSchema, DOM, SAX, Xpath, XSL, XQuery, SOAP, WSDL, … Un modèle de données fondé sur des arbres et un langage de représentation basé sur le balisage (« bannières ») XML – Miage III 2005

Exemple La structure est dans les bannières La sémantique aussi <a>…</a> <fiche> <nom> <fn>Serge</fn> <ln>Abiteboul</ln> </nom> <job nature=“recherche"> INRIA <adresse> <ville>Le Chesnay</ville> <zip>92310</zip> </adresse> <email>serge@inria.fr</email> </job> <mission>J’aime enseigner   </mission> </fiche> fiche Syntaxe nom job mission nature fn ln INRIA adresse email recherche J’aime… fn Serge Abiteboul ville zip serge@inria.fr Le Chesnay 92310 Éléments Attributs Données fn nature 92310 XML – Miage III 2005

Remarques XML fournit une syntaxe, pas de sémantique « a priori » Les balises n'ont pas de présentation ou de signification définie par le langage mais elles peuvent bien sûr avoir un sens pour les applications <nom>jean</nom> <matière>jean</matière> XML ne définit que la structure et le contenu d'un document, pas son comportement ni son traitement XML – Miage III 2005

Remarques Développement et promotion par W3C Industriels: tous les poids lourds, notamment Oracle, IBM, Compaq, Xerox, Microsoft, etc.. Laboratoires de recherche: MIT (représentant les US), INRIA (Europe), université Keio au Japon (Asie) Sur Internet: publication et échange d’information Simplicité Production Lecture, analyse syntaxique, compréhension Les mêmes données (avec différentes feuilles de style) disponibles pour de nombreux supports (pc, pda…) et de nombreuses applications XML – Miage III 2005

XML est un univers impitoyable Les standards naissent et meurent XML: données [DTD],Xschema: typage Les documents doivent être bien formés mais le typage (« valide ») n’est pas obligatoire XSL/T, [Xquery]: transformation et requêtes XPATH: chemins XLink: liens entre documents DOM: Application programing interface … Plus des tas d’autres et de logiciels XML – Miage III 2005

Héritage et principes fondamentaux

XML : « successeur » de HTML HTML Hypertext Markup Language. Un ensemble prédéfini et limité de balises surtout de présentation, défini par une norme (HTML 2.0, 3.2, 4.0). Sémantiques des balises : h1,..,h6, title, address, … donnent des indications structurelles center,hr,b,i,big,small,… ne servent qu'à décrire une mise en page Tim Berners-Lee (le créateur de HTML) a lui-même prêché pour un successeur. Pourquoi? XML – Miage III 2005

Surtout de la présentation Des méta données + Surtout de la présentation Exemple de html XML – Miage III 2005

Problèmes liés à HTML L'affichage d'un document est fortement dépendant de l'interprétation qu'en fait le navigateur Il est nécessaire de disposer de plusieurs versions du document en fonction du média de rendu L'indexation de documents ne peut se faire que sur la partie textuelle Document et pas donnée 1- la pérennité des documents n'est pas assurée. Pas d'importance pour la majorité des documents, mais vrai problème pour articles scientifiques, encyclopédies, documentations techniques etc.. 2- 3- problèmes de maintenance. Par ex, plusieurs versions d'un même site à entretenir. Dans l'avenir, versions vont tendre à se multiplier (sites accessibles à partir de téléphones portables, WML (wireless markup language) 4- vrai problème actuellement. Les moteurs de recherche ne sont plus pertinents du fait de la trop grande masse de documents en ligne XML – Miage III 2005

SGML et le balisage structurel Il fallait passer d’un de balisage de présentation à un BALISAGE STRUCTUREL XML comme SGML dont il est un descendant utilisent un balisage structurel SGML : Standardized Generalized Markup Language Très utilisé en documentation technique Airbus: la doc doit être précise et non ambiguë SGML + vocabulaire contrôlé: ontologie Ce sont des métalangages de description et d’échange de documents structurés Métalangage: possibilité de définir des « dialectes » dans des domaines particuliers XML – Miage III 2005

XML contre SGML SGML norme ISO 8879:1986 Très utilisé dans l'industrie pour de grandes documentations techniques. Trop complexe pour une utilisation « grand public » ou dans des domaines moins exigeants sur la précision SGML: trop de trucs compliqués et inutiles XML utilise 10% de SGML pour représenter efficacement la plupart des besoins des applications XML – Miage III 2005

Exemple de document En-tête Logo Objet Date Salutation Destinataire Saint Pétaouchnoque, Le 30 nivose 2004 Editions Duschmol, 12 rue Schmurz YT123 Rapis WindStar 2000 Les rosières en buget AB562 Saint Pétaouchnoque Tel: 012133564 Fax: 879765426 Objet: ben quoi? Monsieur, Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf jùkvbc lkhdklvn v Veuillez agréer patati patata vachement sincères. signature Pied de page En-tête Logo Objet Date Salutation Destinataire Formule de politesse Corps Considérons une lettre commerciale. Grâce aux conventions de mise en page d'une lettre, nous pouvons repérer aisément ses éléments constitutifs, comme le logo etc. Certains peuvent se décomposer à nouveau en entités élémentaires. Ainsi l'entête se compose d'un nom d'entreprise, d'une adresse, d'un logo, le destinataire se compose d'un nom de personne et d'une adresse, le corps de la lettre est composé éventuellement de plusieurs paragraphes. XML va simplement offrir des conventions pour représenter cette lettre en repérant chacun de ses éléments constitutifs. Signature Pied de page

Représentation XML <lettre> … <entete> <date> <logo loc="logo-graph.vml"/> <adresse> &abrev-adresse; </adresse> </entete> <destinataire> <nom> Mr Schnock </nom> <rue> rue des églantiers </rue> <ville> Saint Glin </ville> </destinataire> <objet> bla bla </objet> … … <date> 30 Nivose 2004 </date> <salutation> Monsieur, </salutation> <corps> <para> Ici le premier paragraphe </para> et là le deuxième </corps> </lettre>

Points importants La représentation de cette lettre en XML ne comporte aucune indication sur sa mise en page Les aspects graphiques ou typographiques sont absentes du source XML Ces aspects seront définis par l'intermédiaire d'une feuille de style Une feuille de style est un ensemble de règles pour spécifier la réalisation concrète d'un document sur un média particulier XML – Miage III 2005

Principe de fonctionnement des feuilles de style <lettre> <entete> . . . </entete> <corps> </corps> </lettre> Si lettre alors enfants Si entete alors … Si corps alors enfants para Si para alors Police new roman, taille 12, décaler première ligne Si … alors … Saint Pétaouchnoque, Le 30 nivose 2004 Editions Duschmol, 12 rue Schmurz YT123 Rapis WindStar 2000 Les rosières en buget AB562 Saint Pétaouchnoque Tel: 012133564 Fax: 879765426 Objet: ben quoi? Monsieur, Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf jùkvbc lkhdklvn v Veuillez agréer patati patata vachement sincères. signature Pied de page

Exemples d’applications

Principe général Pour une application particulière On se définit une syntaxe: un dialecte XML On définit la sémantique de ce dialecte Pour me demander un rendez-vous, il faut m’envoyer le document xml-rdv du type suivant <rdv><d><n>$x</n><p>$y</p></d> <h232>$z</h232><p>$p</p></rdv> Où $x est votre nom, $y votre prénom, $z la date et l’heure du rdv au format ISO… et $p optionnel, un lieu de rdv. XML – Miage III 2005

Exemples de dialectes XML XHTML MathML SVG XSL XML Schema XML – Miage III 2005

XHTML = HTML avec un syntaxe XML Reformulation de HTML en tant qu'application XML En gros: on ferme ce qu’on a ouvert… Intérêt Syntaxe plus rigoureuse Importation de fragments de documents d'autres domaines nominaux Possibilité d'utiliser les applications XML standard XML – Miage III 2005

MathML : les maths en XML Permettre l'échange et le traitement d'expressions mathématiques sur le Web Insertion aisée d'expressions mathématiques dans des documents HTML ou XML Communication d'expressions entre applications au plan sémantique XML – Miage III 2005

SVG : le graphique 2D en XML Langage de description de graphiques 2D Graphiques vectoriels Interactifs et dynamiques Animations déclaratives Programmation ECMAScript Recommandation du 04/09/2001 XML – Miage III 2005

Avantages de XML

Echange et partage d’information En XML, une communauté d'auteurs invente librement les balises qui lui paraissent utiles pour représenter les informations qu’ils comptent échanger ou partager Exemple: diverses façons de représenter une date <date> 5 Janvier 2000 </date> <date> <a>2000</a><m>01</m><j>05</j> </date> <date format='ISO-8601'> 2000-01-05 </date> Exemples Commandes en commerce électronique ou toute transaction Publication et recherche d’information dans un domaine industriel comme l’industrie des biotechnologies XML – Miage III 2005

Interopérabilité des outils de traitement Existence d’outils pour données XML Parseurs, éditeurs, browser… Conséquences: Un serveur de documents XML est susceptible de répondre à l'ensemble des besoins d'une organisation. Un seul éditeur permet de traiter l'ensemble des données d'une organisation. XML – Miage III 2005

Modularité et réutilisation Chaque utilisateur est libre de définir ses propres structures de document Il peut aussi se conformer à des structures types, appelées DTD Chaque communauté peut ainsi proposer des structures normalisées La conformité à une DTD permet l'automatisation des traitements et assure une possibilité de contrôle de validité XML – Miage III 2005

Accès à des sources d'information hétérogènes L'interrogation et l'échange de données entre systèmes d'information hétérogènes est souvent complexe XML contribue à résoudre ce problème format d'échange normalisé indépendant de toute plateforme L'indexation et l'interrogation de grosses bases documentaires informations structurelles en plus d'informations textuelles. XML – Miage III 2005

Zoom sur le langage

Exemples de documents XML <document> </document> <document> Bonjour! </document> <document> <salutation> Bonjour! </salutation> </document> <?xml version="1.0" standalone="yes" ?> <document> <salutation> Bonjour! </salutation> </document> XML – Miage III 2005

<nom attr='valeur'> contenu </nom> XML 1.0 Structure d'un élément Un élément est de la forme: <nom attr='valeur'> contenu </nom> <nom> est la balise d'ouverture </nom> est la balise de fermeture [ éléments vides, indifféremment <nom> </nom> ou </nom> ] contenu est le contenu d'un élément  composé d’une liste (peut-être vide) de texte, d'autres éléments, d'instructions de traitement et de commentaires attr='valeur' représente un ensemble éventuellement vide d'attributs, c'est à dire de paires (nom,valeur). Un élément ne peut posséder qu'un seul attribut de nom donné XML – Miage III 2005

Exemples d’éléments <a></a> </a> <a>Bonjour comment va?</a> <a><b>…</b><b>…</b><a>…</a></a> <a><b>…</b>Bonjour<b>…</b>Salut</a> Contenu d’un élément = Forêt d’éléments ou de texte Texte UNICODE: peut représenter n’importe quel alphabet (russe, hébreu, arabe, japonais, chinois…) XML – Miage III 2005

Contrainte sur les noms (détail) XML 1.0 Contrainte sur les noms (détail) Un nom d'élément ou d’attribut est une suite non vide de caractères pris parmi les caractères alphanumériques; le tiret-souligné (undescore); le signe moins; le point; le caractère deux-points (:) sens particulier qui doit satisfaire les contraintes suivantes le premier caractère doit être alphabétique ou un tiret-souligné les trois premiers caractères ne doivent pas former une chaîne dont la représentation en lettres minuscules est "xml". Exemples de noms d'éléments corrects incorrects _toto Nom_société xsl:rule X.11 1998-catalogue XmlSpécifification nom société XML – Miage III 2005

Syntaxe des attributs XML 1.0 Un attribut est une paire nom='valeur' qui permet de caractériser un élément. Un élément peut avoir plusieurs attributs. Dans ce cas, les paires nom='valeur' seront séparées par un espace. <rapport langue='fr' dern-modif='08/07/99'> <annuaire generator='SQL2XML V2.0' update='07.08.99'> La valeur d'un attribut est une chaîne encadrée par des guillemets (") ou des apostrophes simples ('). Une valeur d'attribut ne doit pas contenir les caractères ^, % et &. Un élément a un ensemble d ’attributs (ordre n’a pas de sémantique pour les attributs) XML – Miage III 2005

Document bien formé XML 1.0 Un document XML doit représenter un arbre d'éléments Il existe dans un document un et un seul élément père qui contient tous les autres. C'est la racine du document. Un élément distinct de la racine est totalement inclus dans son père <p> <b> bla bla </p> bla </b> NON! On dit qu’un document XML doit être bien formé XML – Miage III 2005

Typage de XML

Structure d’un document Un document XML se compose d’un prologue, éventuellement vide d’un arbre d’éléments de commentaires et d’instructions de traitement, facultatifs <?xml version="1.0" standalone="yes" ?> <document> <salutation> Bonjour! </salutation> </document> XML – Miage III 2005

<!DOCTYPE exemple SYSTEM "exemple.dtd" [ déclarations ]> Le prologue contient Une déclaration XML, facultative <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"> indique au processeur qui va traiter le document: la version du langage XML utilisée le codage de caractères utilisé l'existence de déclarations extérieures au document Une déclaration de type de document, facultative <!DOCTYPE exemple SYSTEM "exemple.dtd" [ déclarations ]> indique la structure particulière à laquelle doit se conformer un document XML – Miage III 2005

Document bien formé sans typage Exemple <?xml version="1.0" standalone="yes" ?> <document> <salutation> Bonjour! </salutation> </document> XML – Miage III 2005

Documents valides Un document est dit valide si: son prologue contient une déclaration de type de document son arbre d'éléments respecte la structure définie par la déclaration de type <?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?> <!DOCTYPE document [ <!ELEMENT document (salutation)> <!ELEMENT salutation (#PCDATA)> ]> <document> <salutation> Bonjour! </salutation> </document> XML – Miage III 2005

Exemple de DTD simple <?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?> <!DOCTYPE document SYSTEM "accueil.dtd"> <document> <salutation> Bonjour! </salutation> </document> <!–- fichier accueil.dtd. Exemple de DTD simple --> <!–- Auteur: --> <!–- Date: --> <!–- la déclaration XML n'est pas obligatoire dans une DTD --> <!–- permet de s'assurer que les documents qui la référence --> <!–- utilisent la même version de XML --> <?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?> <!–- Définition de l'élément racine --> <!ELEMENT document (salutation)> <!–- Un élément salutation ne contient que du texte --> <!ELEMENT salutation (#PCDATA)> XML – Miage III 2005

Une autre DTD un peu plus compliquée <!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> Pour chaque élément, on définit une expression régulière qui définit le langage des sous éléments XML – Miage III 2005

La même chose en XML schema – c’est du XML <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string" minOccurs='1' maxOccurs='1'/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> XML – Miage III 2005

Quelques gadgets importants autour de XML

DOM Document Object Model – DOM Permet d'accéder modèle de document interface de programmation indépendante du langage et des plates-formes Permet d'accéder la structure des documents (HTML et XML) le contenu des documents Exemple: Premier-Enfant, Premier-Enfant(Section) Suivant, Parent, Attribut(ID)… API définie pour trois langages OMG IDL, Java, ECMAScript XML – Miage III 2005

XPath Langage d'expressions de chemin adresser des parties de documents XML Une expression élémentaire XPath contient un axe qui spécifie la relation structurale : fils, descendants, ancêtres, frères, attributs,... un test qui spécifie le type de noeud des prédicats pour raffiner la sélection Brique de base d'autres applications XML Xlink, XSLT, Xquery, … XML – Miage III 2005

XLink XML Linking Language Liens simples unidirectionnels à la HTML Hypertexte avancé permet d'insérer dans les documents XML de quoi décrire les liens entre ressources Web Liens simples unidirectionnels à la HTML Liens hors document Liens multidirectionnels Comportement des liens XLink utilise XPath pour adresser l'intérieur des structures XML XML – Miage III 2005

Si on ajoute des références: cela devient un graphe personne personne nom prénom père époux nom prénom époux adam eve personne personne nom prénom filsde nom prénom filsde filsdadam cain filsdadam abel

Transformation de documents Le Web présente de multiples cas de transformation Formatage Réutilisation de document Adaptation aux outils de présentation Conversion de format, par exemple XML vers HTML Trois approches Des programmes utilisant le DOM Les feuilles de transformation XSLT Le langage de requêtes XQuery XML – Miage III 2005

XSLT Langage de transformation « le Perl de XML » Une feuille de transformation XSLT contient un ensemble de règles pattern/template Pattern Contexte structurel dans l'arbre source Expression XPath Template Un fragment du résultat à produire pour le pattern correspondant Principe Quand le pattern est reconnu dans le document source, le template correspondant est engendré dans le document résultat XML – Miage III 2005

XQuery « le SQL de XML » Pas complètement fixé Les requêtes XQuery Peuvent sélectionner des documents entiers ou des sous-arbres qui répondent à la requête Peuvent construire des documents nouveaux fondés sur ce qui est sélectionné XML – Miage III 2005

Exemple de XQuery FLW prononcer "flower" Exemple Dans le style du SFW de SQL Exemple FOR $p IN document("bib.xml")//publisher LET $b := document("bib.xml)//book[publisher = $p] WHERE count($b) > 100 RETURN $p $p : parcourt la séquence des éléments publisher $b : contient la séquence des book associés à $p WHERE filtre la liste des tuples ($p,$b) RETURN construit pour chaque tuple le résultat XML – Miage III 2005

XML et traitement de données On voit arriver des processeurs XQuery SGBD relationnels adaptées pour XML Oracle a maintenant un XML-Box, IBM… SGBD objets refaits à la mode XML Excellon vient de Object Design SGBD « natif » XML Tamino de Software AG (recyclage?) Repository XML natif Xyleme – on verra peut-être XML – Miage III 2005

Exemples d’applications A quoi cela sert? Exemples d’applications

Applications Commerce électronique et aussi administration électronique… Gestion documentaire Bibliothèque numérique, documentation, sites Web, portail… Gestion de données distribuées Entrepôt de contenu Gestion de données personnelles Domotique, informatique embarquée, gestion de réseau… XML – Miage III 2005

Gestion de données personnelles demain matin :-) Adresse, agendas, photos, musique, films, reçus, comptes bancaires… Où sont-elles? PDA, téléphone cellulaire (et autres), PC maison, PC portable (et autres PC), home cinéma (et autres domotique), voiture, Web Intégration de données de la maison (époux, enfants), de l’entreprise (patron, assistants, clients, fournisseurs…), du Web Protocole pour intégrer/synchroniser ces données: les services Web Format de ces données: XML XML – Miage III 2005

Gestion de ces données Exemple de nouveaux services Je veux passer un message à Mme Michu Je me moque du media: par téléphone (son portable, sa secrétaire…), boite vocale (sur son portable, son PC…), courriel, sms… Suivant son profile et son activité et qui je suis, un choix de livraison est choisi On cherche un restaurant avec des copains Le système choisi suivant notre localisation, nos profiles (nos goûts), notre budget… XML – Miage III 2005

Conclusion

Ce qu’il faut retenir Semi-structuré: mariage des systèmes documentaires et des systèmes de gestion de bases de données XML Des arbres ordonnes étiquetés et des liens La sémantique et le typage est dans les bannières Format d’ échange de données: XML Protocole pour échanger des données: les services Web XML – Miage III 2005

Et avec quelle technologie La techno base de données Arbre-B, hachage, optimisation de requêtes… La techno documentaire Indexe plein texte, classification… La techno réseau Requêtes distribuées, table hachage dynamique… La techno XML propre Automate, automate d’arbres… XML – Miage III 2005

Merci …