1.02k likes | 1.19k Views
Le langage XML : fonctionnalités et standards associés. Antoine Rizk. La problèmatique. Création de l’information : 20% du PNB 90% de l’information sont des documents Traitement de texte et PAO traditionnels 30% du temps sur le formattage 30% du temps sur la recherche d’informations
E N D
Le langage XML : fonctionnalités et standards associés Antoine Rizk
La problèmatique • Création de l’information : 20% du PNB • 90% de l’information sont des documents • Traitement de texte et PAO traditionnels • 30% du temps sur le formattage • 30% du temps sur la recherche d’informations • La technologie change tous les 18 mois • US : nombre de documents produits/an = 92 Mds
XML : Les besoins • Productivité • Réutilisabilité • Perrenité • Integrité • Partage • Portabilité
Les origines XML 1998 WWW HTML 1992 1986 SGML Internet GM 1960
Historique • 1996 : un groupe de 80 experts SGML se réunit durant 11 semaines • Nov 1996 : 1er Draft XML du W3C à la conférence SGML à Boston • Fév 1998 : XML adopté par le W3C comme recommandation
XML demain A partir du deuxième semestre de l’an 2000 : • le volume des données XML sera plus important que celui des données HTML. - Gartner Group • 47% des entreprises utiliseront XML • 47% des entreprises utiliseront Linux • 90% des entreprises utiliseront Java - Java Web Panel survey, IBM 12/98
Generalised Markup • Generalised ou descriptive Markup • n’inclut pas les instructions de formattage • décrit uniquement le rôle logique d’un élément • le formattage est décrit séparément par une feuille de style \par Ce document est une introduction à XML ou bien <par> Ce document est une introduction à XML </par>
Le balisage (Markup) Exemple RTF: \par\pard\sb240\sl-264\b0\hyphpar0 Ce document est une introduction à XML \par Starts a new paragraph \pard Restores the default paragraph properties \sb240 Twelve-point space before the paragraph \sl-264 Puts a 13.2 point space between lines. \b0 Switches bold off \hyphpar0 Switches off automatic hyphenation for the paragraph
HTML <body bgcolor=«#FFFFFF» text =«#000000» link=«#054BBB» vlink=«#054BBB» background=«/Images/backshadow2.gif»> <a name=«top»></a> <img src=«/Images/ec.gif» border=0 width=50 height=5 align=left> • HTML 2.0, HTML 3.2 et HTML 4.0 sont des DTD SGML
HTML • L'affichage de très longues pages • Frames, DIV, découpage en plusieurs pages • Contôle de la présentation • CSS • Les liens hypertextes • IMG, HREF • Un nombre prédéfini de balises
HTML • La diffusion d'informations structurées • La charge sur le serveur • Aucune interprétation côté client • problème de mise-à-jour de fragments de pages • Recherche d'informations pauvre • Format de données non perenne • Format d'échange de données nonretraitables
Introduction à XML Petit exemple <?xml version="1.0" standalone="yes"?> <IdentityCard> <FirstName>Antoine</FirstName> <LastName>Rizk</LastName> <CardNumber>11437398</CardNumber> <Photo url="ar.gif"/> </IdentityCard>
Documents bien formés A chaque balise ouvrante doit correspondre une balise fermante Balisage spécifique pour les éléments vides <IMG SRC="picture.gif"/> <IMG SRC="picture.gif"></IMG> Les balises doivent s’imbriquer correctement Une racine doit exister Un élément ne peut avoir des attributs vides <DL COMPACT> incorrecte <DL COMPACT=""> correcte
Documents valides Un document valide doit être bien formé ET se conformer à une grammaire (DTD)
La DTD • Document Type Definition • Structure générique logique • Grammaire de la structure du document • Etablit les règles de structure de documents • Définit les noms d'éléments • Définit les relations entre éléments • Déclare les attributs ainsi que leurs types Document parser validant sortie erreurs DTD
Exemple (1) <memo> <to>M. Bonnard</to> <from>A. Rizk</from> <date>4 Septembre 2000</date> <subject>Présentation XSL </subject> <para>La présentation XSL suivra celle sur XML</para> </memo>
DTD memo <!DOCTYPE memo [ <!ELEMENT memo (to, from, date, subject?, para*) > <!ELEMENT para (#PCDATA) > <!ELEMENT to (#PCDATA) > <!ELEMENT from (#PCDATA) > <!ELEMENT date (#PCDATA) > <!ELEMENT subject (#PCDATA) > ]>
DTD memo (2) <!DOCTYPE memo [ <!ELEMENT memo (to, from, date, subject?, (para|figure)+ > <!ELEMENT figure (graphic, caption?) > <!ELEMENT graphic EMPTY > <!ELEMENT para (#PCDATA|citation|figref)+ > <!ELEMENT to (#PCDATA) > <!ELEMENT from (#PCDATA) > <!ELEMENT date (#PCDATA) > <!ELEMENT subject (#PCDATA) > <!ELEMENT citation (#PCDATA) > <!ELEMENT figref (#PCDATA) > <!ELEMENT caption (#PCDATA) > ]>
Exemple (2) <?xml version="1.0" ?> <Book Author=”Anonyme"> <Title>Un livre exemplaire</Title> <Chapter id="1"> Ceci est le chapitre 1. Pas très intéressant </Chapter> <Chapter id="2"> Ceci est le chapitre 2. Il est plus long, mais il n’est pas plus intéressant. </Chapter> </Book>
DTD Book <!DOCTYPE Book [ <!ELEMENT Book (Title, Chapter+)> <!ATTLIST Book Author CDATA #REQUIRED> <!ELEMENT Title (#PCDATA)> <!ELEMENT Chapter (#PCDATA)> <!ATTLIST Chapter id ID #REQUIRED> ]>
Un document est un arbre <chapitre> <titre>ceci est un fragment d'un livre</titre> <note> <par> cette note contient deux paragraphes </par> <par> un autre paragraphe </par> </note> </chapitre> chapitre titre note ceci est un .. par par un autre .. cette note..
Les parsers • Modèle événementiel (SAX) • Callback appelé pour chaque événement : • début balise, attribut, fin document etc.. • Peut être efficace sur les gros documents • L’arbre n’est jamais construit entièrement en mémoire
Les parsers (API DOM) • Un modèle d’arbre est construit en mémoire (arbres abstraits) • L’application accède par API à l’arbre pour le manipuler • API DOM est normalisée (recommandation W3C)
Limites d’une DTD • Un langage différent de celui des instances • Limité à la structure d’arbre, différent du modèle R • Pas de typage de contenu • Pas d’héritage => possibilité d’utiliser des schémas : XML-Schema
Données/documents dept poste labo 322 LABO 322 RIZK,Courtaud <telephone poste="322"> <dept>labo</dept> <person>Rizk</person> <person>Courtaud</person> </telephone> compta 456 nom poste Rizk 322 Courtaud 322 Parigot 456
Données ou documents ? <chapitre> <titre>ceci est un fragment d'un livre</titre> <note> <par> cette note contient deux paragraphes </par> <par> un autre paragraphe </par> </note> </chapitre> <transaction> <time date="19980509"/> <amount>123</amount> <currency type="pounds"/> <from id="X3543>G.Dupont</from> <to id="X7987>J.Smith</to> </transaction>
Les EIP Presentation Services Multiple Style Sheets Virtual Documents Access and Integration Services Personalization Metadata System Management Messaging Workflow Classification Content Integration Security Network Application Integration Information Services Collaboration Services Application Services Description, Search Docs Repositories Annotations, Recommendations Access, Hosting Wrapping
Le “ Virtual XML Warehouse “ RDF • Description, organisation et recherche dans des ressources hétérogènes Virtual XML Warehouse Unique Point d’ Accès Archives Documents Web Bases de données
Traitement XML • Parsing et traitement applicatif • import dans un SGBD • Regénération : export d’un SGBD • Fusion de données, génération d’arbre, transformation • XSL • Présentation • CSS, XSL
Source XML Sortie (y) FO Interpreter (y) Résultat FO Sortie (x) FO Interpreter (x) XSL Transformer Feuille de style XSL Sortie (z) FO Interpreter (z) XSL <date>décembre, 1997</date> W3C XSL {\c6\f12\i décembre, 1997\par} <P STYLE="font-style:italic;color:green"> décembre, 1997</P> <fo:block font-style= "italic" color="green" xmlns:fo="http://www.w3.org/TR/WD-xsl/FO">décembre, 1997</fo:block> ... <xsl:template match="date"> <fo:block font-style="italic" color="green"> <xsl:apply-templates/> </fo:block> </xsl:template>
XML + XSL Portail/ Serveur d’intermédiation SGBDR Terminal XML SGBDO XML Internet/Intranet XSL Terminal HTML Fichiers Terminal WAP
Terminal XML Internet/Intranet Terminal HTML Terminal HTML/XML XML+XSL SGBD-R labo 322 <telephone poste="322"> <dept>labo</dept> <person>Rizk</person> <person>Israel</person> </telephone> compta 456 Données XML Plus feuilles XSL SGBD-O Rizk 322 Israel 322 Parigot 456
XSL XML+HTML XML XML OO XML Repository XML + XSL architecture type XSL côté client SQL Traitement de requêtes XSL ou DOM côté serveur R-DBMS G X M L R-DBMS Middle-tier Serveurs HTTP Browser HTML/XML: CSS / XSL XML-QL
R-DBMS-1 DBMS-2(IR) DBMS-3 DB2XML DB2XML DB2XML XML XML XML XML statique Transformations (scripts) Feuille XSLT Processeur XSLT XML données fusionnées Script python Impression catalogue DB-RESULTAT Ex. 2 : ré-ingénierie de données
Les limites • XML reste au niveau syntaxique • Pas de typage • Pas de sémantique • Pas de relations/rôles entre concepts • => • Les liens hypertextes : XLL (Xlink+Xpath) • Les métadonnées : RDF spec et RDF schema • Les schémas typés : XML-Schema • Les topic maps
resource Link element Link Document A Document B Liens simples
Document A Document B Xpath
Link elements Document A Liens étendus Document B
Liens étendus “out of line” Link elements Document C Document A Document B
L’enjeu • Définir une ontologie par domaine • Organiser les schémas de navigation • DTD + concepts + roles + sémantique = ontologie • ontologie + thesaurus = RDF schema • RDF schema => RDF specifications => métadonnées • Augmenter le taux de précision • Diminuer le taux de rappel
L’évolution documentaire RDF Ontologie, Thesaurus Intermédiation Structure sémantique Production Publication XML,XSL XQL,XLL, SMIL... Structure syntaxique Formats monomédia ASCII, JPEG, MPEG...
<tag1> <tag2> <tag3> </tag1> Intégration par les Métadonnées Organisation des Connaissances Ontologies Vocabulaires Description de ressources Métadonnées Données Informations et Ressources
L’état actuel • XML : recommandation 10 fév 1998 • DOM : DOM1 (1er oct 1998), DOM2 (recommandation nov 00), DOM3.. • Xlink : recommandation 27 Juin 2001 • Xpointer : WD 16 août 2002 • SVG 1.1 : Recommendation 14 janv 2003 • SMIL 2.1 : recommandation 13 déc 2005 • XSLT + Xpath : recommandation 16 nov 1999 • XSLT2 : candidate recommendation on June2006 • XSL FO : recommendation 15 oct 2001 • MathML : V1 (recommandation Avr 1998), V1.1 (Juil. 99), V2 (WD) • XML Schema , XMLQuery • RDF : Model&syntax (recommandation fév 1999), Puis 10 fév 2004 • XHTML • Xforms : Recommendation 14 Mars 2006
Core Architecture Artist Artist Painting Client Tier Museum URL Query Browsing Interface Painter Resource Description Interface Schema Generator http XML/XSL RDF/XML Schema RDF/XML Descriptions CWEB/Application Server Middleware APIs Session Manager Logical Middle Tier Metadata Store RDF/XML Loader XML/XSL Processor Query Engine URL Resolver XML XML XML Resources http XML Wrapper XML enabled DBMS Well-formed Other docs XML docs on the Intranet on the Web e.g. mails, news, reports
Pour aller plus loin .. www.w3.org www.xmlfr.org www.oasis-open.org/cover Livre : A.Michard (chez Eyrolles)
Les éléments <chapitre> <titre>ceci est un fragment d'un livre</titre> <note> cette note contient deux paragraphes <par>un paragraphe </par> <par> un autre paragraphe </par> </note> <image f="image1.gif"/> <image f="image2.gif"></image> </chapitre> start-tag mixed content data content end-tag empty element sensible à la casse start-tag=end-tag < = < > = >
Créer des spans (étendus) <chapitre> <titre>ceci est un fragment d'un livre</titre> <note> cette note contient <rev/>deux paragraphes <par>un paragraphe </par> <par> un autre <endrev/> paragraphe </par> </note> <image f="image1.gif"/> <image f="image2.gif"></image> </chapitre>
Les attributs <transaction> <time date=”04092000" hour="0945"/> <amount>123</amount> <currency type="pounds"/> <from id="X3543”>G.Dupont</from> <to id="X7987”>J.Smith</to> </transaction> AttName/Attvalue sensibles à la casse Attvalue peut contenir des espaces " ou ' mais pas les deux à la fois ex. <vis dimension='2" '/> ou bien " pour le " ' pour le ' l'omission du nom d'attribut n'est pas permise