Antoine Rizk, XML Le langage XML : fonctionnalités et standards associés Antoine Rizk
Antoine Rizk, XML La problèmatique n Création de l’information : 20% du PNB n 90% de l’information sont des documents n Traitement de texte et PAO traditionnels -30% du temps sur le formattage -30% du temps sur la recherche d’informations n La technologie change tous les 18 mois n US : nombre de documents produits/an = 92 Mds
Antoine Rizk, XML XML : Les besoins n Productivité n Réutilisabilité n Perrenité n Integrité n Partage n Portabilité
Antoine Rizk, XML Les origines XML HTML SGML GM Internet WWW
Antoine Rizk, XML Historique n 1996 : un groupe de 80 experts SGML se réunit durant 11 semaines n Nov 1996 : 1er Draft XML du W3C à la conférence SGML à Boston n Fév 1998 : XML adopté par le W3C comme recommandation
Antoine Rizk, XML Rappel des concepts
Antoine Rizk, XML XML demain A partir du deuxième semestre de l’an 2000 : n le volume des données XML sera plus important que celui des données HTML. - Gartner Group n 47% des entreprises utiliseront XML n 47% des entreprises utiliseront Linux n 90% des entreprises utiliseront Java - Java Web Panel survey, IBM 12/98
Antoine Rizk, XML Generalised Markup n 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 Ce document est une introduction à XML
Antoine Rizk, XML Le balisage (Markup) Exemple RTF: \par\pard\sb240\sl-264\b0\hyphpar0 Ce document est une introduction à XML \parStarts a new paragraph \pardRestores the default paragraph properties \sb240Twelve-point space before the paragraph \sl-264Puts a 13.2 point space between lines. \b0Switches bold off \hyphpar0Switches off automatic hyphenation for the paragraph
Antoine Rizk, XML HTML n HTML 2.0, HTML 3.2 et HTML 4.0 sont des DTD SGML
Antoine Rizk, XML HTML n L'affichage de très longues pages -Frames, DIV, découpage en plusieurs pages n Contôle de la présentation -CSS n Les liens hypertextes -IMG, HREF n Un nombre prédéfini de balises
Antoine Rizk, XML HTML n 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 n Format de données non perenne n Format d'échange de données nonretraitables
Antoine Rizk, XML Introduction à XML Petit exemple Antoine Rizk
Antoine Rizk, XML Documents bien formés A chaque balise ouvrante doit correspondre une balise fermante Balisage spécifique pour les éléments vides Les balises doivent s’imbriquer correctement Une racine doit exister Un élément ne peut avoir des attributs vides incorrecte correcte
Antoine Rizk, XML Documents valides Un document valide doit être bien formé ET se conformer à une grammaire (DTD)
Antoine Rizk, XML La DTD n Document Type Definition -Structure générique logique -Grammaire de la structure du document n Etablit les règles de structure de documents n Définit les noms d'éléments n Définit les relations entre éléments n Déclare les attributs ainsi que leurs types Document parser validant DTD erreurs sortie
Antoine Rizk, XML Exemple (1) M. Bonnard A. Rizk 4 Septembre 2000 Présentation XSL La présentation XSL suivra celle sur XML
Antoine Rizk, XML DTD memo <!DOCTYPE memo [ ]>
Antoine Rizk, XML DTD memo (2) <!DOCTYPE memo [ ]>
Antoine Rizk, XML Exemple (2) Un livre exemplaire Ceci est le chapitre 1. Pas très intéressant Ceci est le chapitre 2. Il est plus long, mais il n’est pas plus intéressant.
Antoine Rizk, XML DTD Book <!DOCTYPE Book [ ]>
Antoine Rizk, XML Un document est un arbre ceci est un fragment d'un livre cette note contient deux paragraphes un autre paragraphe chapitre titre note par ceci est un.. cette note.. un autre..
Antoine Rizk, XML Les parsers n Modèle événementiel (SAX) -Callback appelé pour chaque événement : -début balise, attribut, fin document etc.. n Peut être efficace sur les gros documents -L’arbre n’est jamais construit entièrement en mémoire
Antoine Rizk, XML Les parsers (API DOM) n Un modèle d’arbre est construit en mémoire (arbres abstraits) n L’application accède par API à l’arbre pour le manipuler n API DOM est normalisée (recommandation W3C)
Antoine Rizk, XML Limites d’une DTD n Un langage différent de celui des instances n Limité à la structure d’arbre, différent du modèle R n Pas de typage de contenu n Pas d’héritage => possibilité d’utiliser des schémas : XML-Schema
Antoine Rizk, XML Données/documents deptposte labo compta postenom Rizk Courtaud 322 Parigot456 labo Rizk Courtaud LABO 322 RIZK,Courtaud
Antoine Rizk, XML Données ou documents ? ceci est un fragment d'un livre cette note contient deux paragraphes un autre paragraphe 123 G.Dupont J.Smith
Antoine Rizk, XML Les EIP Presentation Services Access and Integration Services Application Services Collaboration Services Classification Metadata Content Integration Personalization Security Network Messaging Workflow Application Integration System Management Annotations, Recommendations Access, Hosting Wrapping Multiple Style Sheets Virtual Documents Information Services Description, Search Docs Repositories
Antoine Rizk, XML Le “ Virtual XML Warehouse “ n Description, organisation et recherche dans des ressources hétérogènes Unique Point d’ Accès Archives Virtual XML Warehouse Documents Bases de données Web RDF
Antoine Rizk, XML Traitement XML n Parsing et traitement applicatif -import dans un SGBD n Regénération : export d’un SGBD n Fusion de données, génération d’arbre, transformation -XSL n Présentation -CSS, XSL
Antoine Rizk, XML XSL Transformer Sortie (x) FO Interpreter (x) FO Interpreter (y) Sortie (y) FO Interpreter (z) Sortie (z) Feuille de style XSL Source XML W3C XSL Résultat FO décembre, 1997 décembre, 1997 décembre, {\c6\f12\i décembre, 1997\par}
Antoine Rizk, XML Portail/ Serveur d’intermédiation Internet/Intranet Terminal XML Terminal HTML Terminal WAP XSL XML + XSL SGBDR SGBDO Fichiers XMLXML
Antoine Rizk, XML XML+XSL SGBD-R labo compta SGBD-O Rizk Israel 322 Parigot456 labo Rizk Israel Données XML Plus feuilles XSL Internet/Intranet Terminal XML Terminal HTML Terminal HTML/XML
Antoine Rizk, XML XML + XSL architecture type Browser HTML/XML: CSS / XSL XSL Serveurs HTTP Middle-tier XML OO XML Repository R-DBMS XML+HTMLXML R- DBMS GXMLGXML SQL Traitement de requêtes XSL ou DOM côté serveur XML-QL XSL côté client
Antoine Rizk, XML Ex. 2 : ré-ingénierie de données R-DBMS-1DBMS-2(IR)DBMS-3 XML XML statique Processeur XSLT Feuille XSLT XML données fusionnées Script python DB-RESULTAT DB2XML Impression catalogue Transformations (scripts)
Antoine Rizk, XML Les limites n XML reste au niveau syntaxique n Pas de typage n Pas de sémantique n Pas de relations/rôles entre concepts n => n Les liens hypertextes : XLL (Xlink+Xpath) n Les métadonnées : RDF spec et RDF schema n Les schémas typés : XML-Schema n Les topic maps
Antoine Rizk, XML Liens simples Document B Document A Link element Link resource
Antoine Rizk, XML Xpath Document B Document A
Antoine Rizk, XML Liens étendus Document B Link elements Document A
Antoine Rizk, XML Liens étendus “out of line” Link elements Document C Document B Document A
Antoine Rizk, XML L’enjeu n Définir une ontologie par domaine n Organiser les schémas de navigation n DTD + concepts + roles + sémantique = ontologie n ontologie + thesaurus = RDF schema n RDF schema => RDF specifications => métadonnées n Augmenter le taux de précision n Diminuer le taux de rappel
Antoine Rizk, XML L’évolution documentaire ASCII, JPEG, MPEG... XML,XSL XQL,XLL, SMIL... Formats monomédia Structure syntaxique Structure sémantique RDF Ontologie, Thesaurus Intermédiation Production Publication
Antoine Rizk, XML Intégration par les Métadonnées Ontologies Vocabulaires Description de ressources Métadonnées Données Informations et Ressources Organisation des Connaissances
Antoine Rizk, XML L’état actuel n XML : recommandation 10 fév 1998 n DOM : DOM1 (1er oct 1998), DOM2 (recommandation nov 00), DOM3.. n Xlink : recommandation 27 Juin 2001 n Xpointer : WD 16 août 2002 n SVG 1.1 : Recommendation 14 janv 2003 n SMIL 2.1 : recommandation 13 déc 2005 n XSLT + Xpath : recommandation 16 nov 1999 n XSLT2 : candidate recommendation on June 2006 n XSL FO : recommendation 15 oct 2001 n MathML : V1 (recommandation Avr 1998), V1.1 (Juil. 99), V2 (WD) n XML Schema, XMLQuery n RDF : Model&syntax (recommandation fév 1999), Puis 10 fév 2004 n XHTML n Xforms : Recommendation 14 Mars 2006
Antoine Rizk, XML L’interopérabilité n Sémantique : -ontologies (ex. ICOM/CIDOC), thesaurus (ex. ULAN, TGN, AAT), métadonnées (ex. CIMI/Aquarelle Z39.50 profile) -Resource Description Framework (RDF) n Structurelle : -DTDs, XML Schema n Syntaxique : -XML, XLL,... n Fonctionnelle : -XPath, XQuery, XSL,...
Antoine Rizk, XML Core Architecture Query Engine Session Manager URL Resolver Metadata Store Painter Museum Painting XML Wrapper Resources XML Logical Middle Tier CWEB/Application Server Other docs news, reports on the Intranet e.g. mails, Well-formed XML docs on the Web XML XML enabled DBMS Client Tier Schema Generator RDF/XML Loader XML/XSL Processor Resource Description Interface Query Browsing Interface Artist XML/XSL Middleware APIs http Artist URL RDF/XML Schema RDF/XML Descriptions
Antoine Rizk, XML Pour aller plus loin Livre : A.Michard (chez Eyrolles)
Antoine Rizk, XML ZOOM sur XML
Antoine Rizk, XML Les éléments ceci est un fragment d'un livre cette note contient deux paragraphes un paragraphe un autre paragraphe start-tag end-tag sensible à la casse start-tag=end-tag < = < > = > mixed content empty element data content
Antoine Rizk, XML Créer des spans (étendus) ceci est un fragment d'un livre cette note contient deux paragraphes un paragraphe un autre paragraphe
Antoine Rizk, XML Les attributs 123 G.Dupont J.Smith AttName/Attvalue sensibles à la casse Attvalue peut contenir des espaces " ou ' mais pas les deux à la fois ex. ou bien " pour le " ' pour le ' l'omission du nom d'attribut n'est pas permise
Antoine Rizk, XML Les attributs réservés n Xml:lang this is English text..lift.....elevator... code ISO 639 code ISO 3166 code IANA Internet Assigned Numbers Authority défini par l'utilisateur
Antoine Rizk, XML Attributs ou éléments? n Attributs quand : -Typage est nécessaire -Information ne fait pas partie du contenu (ex. version)
Antoine Rizk, XML Les attributs réservés n Xml:space -deux valeurs possibles : 'preserve' et 'default' cette note contient deux paragraphes un paragraphe un autre paragraphe cette note contient deux paragraphes un paragraphe un autre paragraphe
Antoine Rizk, XML Les déclarations (1) Instructions au parser/XML processor Forme simple : Forme groupée : <!... [ ]>
Antoine Rizk, XML Les déclarations(2) n ou <!DOCTYPE myDTD [ définition de la DTD ici ]> n n Character data section est une balise XML. < remplace le n
Antoine Rizk, XML Processing instruction un saut de page ici serait bien
Antoine Rizk, XML La déclaration XML Les attributs sont optionnels Les valeurs ci-dessus sont les valeurs par défaut
Antoine Rizk, XML Les entités Document Entité A Entité B Le document entier = 3 entités : Le document entity (sans nom) Entité A Entité B
Antoine Rizk, XML L'usage des entités n Eviter la duplication de certaines informations (factorisation) n Différenciation des informations pour des plateformes incompatibles n Diviser des gros documents en unités gérables n Utilisation de données non XML
Antoine Rizk, XML La DTD n Document Type Definition -Structure générique logique -Grammaire de la structure du document n Etablit les règles de structure de documents n Définit les noms d'éléments n Définit les relations entre éléments n Déclare les attributs ainsi que leurs types Document parser validant DTD erreurs sortie
Antoine Rizk, XML La DTD n External subset vs. Internal subset Internal subset External subset document instance
Antoine Rizk, XML Structure de la DTD n Ensemble de déclarations au format n selon 4 classes -ELEMENT -ATTLIST -ENTITY -NOTATION
Antoine Rizk, XML Document type declaration <!DOCTYPE mybook [... ]> <!DOCTYPE mybook SYSTEM "/mydir/DTDS/mybook.dtd" [... ]> partie externe lu en premier déclaration retenue
Antoine Rizk, XML Les éléments nom modèle de contenu model group alphanumérique. - _ : ex: P, X:2, A-3
Antoine Rizk, XML Modèle de contenu connecteur de séquence connecteur de choix indicateurs d'occurence
Antoine Rizk, XML Le texte contenu mixte
Antoine Rizk, XML Les ambiguités (item?, item) à remplacer par (item, item?) ((nom,prof) | (nom,eleve)) à remplacer par (nom, (prof | eleve) )
Antoine Rizk, XML Les entités n Internal entities function as typing shortcuts or macros. Internal entities n External entities allow you to incorporate content from other files. External entities n Parameter entities, which can be internal or external, are only available within the internal and external subsets (the DTD). Parameter entities Internal Entities : remplacement d’un texte déclaré dans la DTD Forme suivante: Ex: Remplacement de texte dans l’instance par &yoyo;
Antoine Rizk, XML Entités (suite) n External Entities : référence à du texte XML ou autre notation dans un fichier externe. D’où usage de SYSTEM -system identifier est une URI, souvent un nom de fichier. Le public identifier, s’il est présent, peut être utilisé comme raccourci vers la ressource externe par certains parsers.URI Ex: -&chap1; Incorpore le contenu du fichier chap1.xml n n Ex: -GIF doit être déclaré comme NOTATION (voir plus loin)
Antoine Rizk, XML Entités (suite) n Parameter entities n Le fichier dans URI ne peut qu’être XML. Pas une notation autre.
Antoine Rizk, XML Entities : qqes infos n External entities can be further classified as either "parsed" or "unparsed". Entities which refer to external files that contain XML are called "parsed entities;" entities which refer to other types of data, identified by a notation, are "unparsed." n The parser inserts the replacement text of a parsed entity into the document wherever a reference to that entity occurs. It is an error to insert an entity reference to an unparsed entity directly into the flow of an XML document. Unparsed entities can only be used as attribute values on elements with ENTITY attributes.ENTITY attributes n Unparsed entities are used most frequently on XML elements that incorporate graphics into a document.
Antoine Rizk, XML Entities <!DOCTYPE doc [ <!ATTLIST graphic image ENTITY #REQUIRED alt CDATA #IMPLIED > ]> The following element incorporates the image declared as "mypicture": Le nom de l’entité Référence à l’entité
Antoine Rizk, XML Déclarations d'attributs Exemple <!ATTLISTchapitre nivsecurite CDATA dateCDATA version NMTOKEN type (corps | annexe) >
Antoine Rizk, XML Les types d'attributs n CDATA -chaîne de caractères (équiv.DTD absente) - n NMTOKEN, NMTOKENS - n ENTITY, ENTITIES
Antoine Rizk, XML Les types d'attributs n ID, IDREF, IDREFS voir chapitre 2 pour plus d'info etc etc
Antoine Rizk, XML La valeur par défaut <!ATTLIST aatt1NMTOKEN #REQUIRED att2NMTOKEN#IMPLIED att3NMTOKEN"A4" att4(x | y)"y" att5NMTOKEN>
Antoine Rizk, XML Déclaration de NOTATION SYSTEM
Antoine Rizk, XML Les types d'attributs n NOTATION main() {....} n NAME GROUP
Antoine Rizk, XML Référence à une NOTATION A l'aide d'une entité je mets le logo ici &logoEVE; A l'aide d'un attribut main() {....} gcc
Antoine Rizk, XML La DTD n Internal subset External subset standalone = "yes" standalone="no"
Antoine Rizk, XML XPath
Antoine Rizk, XML Arbre XML Boris Vian L'automne à Pékin Voyage en Exopotamie Amadis Dudu suivait... Il y avait du soleil...
Antoine Rizk, XML self parent Ancestor -or-self ancestor following following- sibling preceding- sibling preceding child descendant descendant-or-self
Antoine Rizk, XML Le vocabulaire XPath n Exprime la notion d'axe : parent, enfant, ancêtre, descendant pour identifier des sous-ensembles de noeuds au sein d'un document XML. n Permet d'exprimer des conditions dans la sélection des noeuds d'un document XML, ce sont les predicats, n Expression formelle d'une requête Xpath : axe::noeud[predicat]
Antoine Rizk, XML Xpath un langage orienté contexte n La syntaxe axe::noeud[prédicat] est répétable à la manière de la notation d'un système de fichier : -Le séparateur est le / -Chaque expression est dépendante du résultat (ensemble de noeuds ou NodeSet) de la précédente
Antoine Rizk, XML Xpath un langage orienté contexte n Un axe est une direction dans le document, il pose la base de la requête en pré-sélectionnant le premier sous-ensemble de noeuds XML à tester, n Puis vient l'expression du/des noeud(s) qui peut avoir deux formes dans la requêtes : -Générique : *, child -Explicite : le nom du noeud XML lui-même.
Antoine Rizk, XML Xpath un langage orienté contexte n Quelques axes : -Parent, child -Descendant, descendant-or-self -Ancestor, ancestor-or-self -Following, following-sibbling -Preceding, preceding-sibbling
Antoine Rizk, XML Xpath un langage orienté contexte n Il existe une syntaxe simplifiée qui permet d'exprimer des chemins d'une manière plus condensée, n Rapprochement encore plus fort vers la syntaxe de type « Système de fichiers » n Attention cependant, il est préférable de l'utiliser dans un contexte relatif
Antoine Rizk, XML Xpath un langage orienté contexte n Les expressions précédentes peuvent s'écrire aussi : -..* -//* -../.. ainsi de suite pour remonter au noeud ancêtre
Antoine Rizk, XML Xpath un langage orienté contexte n Un prédicat est une condition à satisfaire afin de rendre le contexte valide, n S'exprime entre crochets juste après l'expression du noeud n Permet de filtrer les noeuds : -Par leur nom, -Leur attribut, -Par leur valeur n Grace à des fonctions/opérateurs classiques
Antoine Rizk, XML Exemples de requêtes XPath n child::para ● Element para, enfant du noeud courant n child::* ● Tous les noeuds enfants du noeud courant n child::text() ● Tous les noeuds de type textuel enfants du noeud courant
Antoine Rizk, XML Exemples de requêtes XPath n child::node() -Tous les noeuds enfants du noeud courant quel que soit leur type n attribute::name -Selectionne l'attribut du noeud courant nommé name n Attribute::* -Tous les attributs du noeud courant
Antoine Rizk, XML Exemples de requêtes XPath n descendant::para -Tous les elements para, descendants du noeud courant n ancestor::div -Tous les elements div, ancetres du noeud courant n ancestor-or-self::div -Tous les elements div, ancetres du noeud courant et lui meme eventuellement
Antoine Rizk, XML Exemples de requêtes XPath n descendant-or-self::para -Tous les elements para descendants du noeud courant n self::para -Sélectionne le noeud courant s'il se nomme para n child::chapter/descendant::para -Tous les noeuds para descendants des noeuds chapter enfants du noeud courant
Antoine Rizk, XML Exemples de requêtes XPath n child::*/child::para -Tous les noeuds para petits enfants du noeud courant n / Sélectionne le noeud racine n /descendant::para -Selectionne tous les noeud para du document n /descendant::olist/child::item -Tous les élements item enfants des élements olist du document
Antoine Rizk, XML Exemples de requêtes XPath n child::para[position()=1] -Le premier enfant para du noeud courant n child::para[position()=last()] -Le dernier enfant para du noeud courant n following-sibling::chapter[position()=1] -Sélectionne le prochain élement chapter au noeud courant
Antoine Rizk, XML Exemples de requêtes XPath n preceding-sibling::chapter[position()=1] -Sélectionne le précédent élement chapter au noeud courant n /descendant::figure[position()=42] -Sélectionne le quarante deuxième élement figure dans le document n child::para[attribute::type="warning"] -Sélectionne tous les noeuds para qui ont un attribut nommé type possédant la valeur « warning »
Antoine Rizk, XML Exemples de requêtes XPath n /child::doc/child::chapter[position()=5]/child::section[po sition()=2] -Tous les élements section situés en deuxième position et enfants des élements chapter situés en cinquième position des élements doc enfants du noeud racine n child::para[attribute::type='warning'][position()=5] -Sélectionne les élements para enfants du noeud courant s'ils ont un attribut type égal à « warning » et s'ils sont en cinquième position
Antoine Rizk, XML Exemples de requêtes XPath n child::chapter[child::title] -Séléctionne les élements chapter s'ils ont un enfant nommé title n child::*[self::chapter or self::appendix] -Tous les enfants du noeud courant à condition qu'ils se nomment chapter ou appendix n child::*[self::chapter or self::appendix][position()=last()] -Idem. Et à condition qu'ils soient en dernière position
Antoine Rizk, XML Equivalences n Syntaxe complète -Self -Attribute -N[position()=5] -Parent -N/descendant::para -N[attribute::a1][attribute::a2] n Syntaxe simplifiée -. -N[5] -.. -N//para