La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Données sous XML Stéphane Marchand-Maillet Groupe Viper Vision par Ordinateur et Multimédia CUI – Université de Genève

Présentations similaires


Présentation au sujet: "Données sous XML Stéphane Marchand-Maillet Groupe Viper Vision par Ordinateur et Multimédia CUI – Université de Genève"— Transcription de la présentation:

1 Données sous XML Stéphane Marchand-Maillet Groupe Viper Vision par Ordinateur et Multimédia CUI – Université de Genève http://viper.unige.ch/~marchand Stephane.Marchand-Maillet@cui.unige.ch

2 Cours XML 2 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Plan du cours lSession XML: 6Généralités 6Définition 6Principes lSession Représentation de données: 6Structuration de données 6Requêtes lSession Outils: 6XML sur le WWW 6Développements liés à XML

3 Cours XML 3 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Session 2: Données lRappel XML lStructuration hiérarchique lSpécification XPath lLangages de requêtes 6Quilt 6XQuery lOutil 6Cocoon / Kweelt lAlternatives lExemple de structuration

4 Cours XML 4 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Résumé XML lXML = eXtended Markup Language lXML version 1.0 = 10/02/1998 lSpécification sur le site du W3C lBasé sur SGML, « similaire » à HTML, texte lXML bien formé 6Syntaxe simple 6Peu de contraintes lXML valide 6Respecte la structure donnée par la DTD/Schema lLiens (XLink/Xpointer)

5 Cours XML 5 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Exemple XML (annoté) Instructions de traitement Type de document Corps du document Racine du document Attribut Element vide Element non-vide Commentaire Balise d'ouvertureBalise de fermeture Declaration Marchand-Maillet Stéphane CUI, Université de Genève Entête du document

6 Cours XML 6 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Document XML Entête adresses personne typenomprenomadresse personne typenomprenomadresse

7 Cours XML 7 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Structure hiérarchique lSyntaxe XML: 6Une seule racine 6Imbrication correcte lSans les liens (Xlink/Xpointer), document = arbre 6Balises = Nœuds 6Contenus, Elements vides = feuilles lIl faut pouvoir naviguer dans cet arbre 6Structure de graphe orienté 6XPath = « Langage » de localisation

8 Cours XML 8 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand XPath (types) lSpécification W3C, V 1.0: 16/11/99 (V 2.0 pour XQuery) lTypes 6Boolean 6Number 6String 6Node-sets Sous-arbre lTypes of nodes: 6processing instruction nodesInstructions 6comment nodesCommentaires 6root nodes Racine 6element nodesÉlément 6attribute nodesAttribut 6namespace nodesAttributs d’un nœud d’un NS 6text nodesContenu

9 Cours XML 9 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand XPath (chemin = axes) lPosition (nœud) courant self. lDescendants 6Directchild / 6(In)directdescendant // lPredecesseurs 6Directparent.. 6(In)directancestor lFrères 6Meme niveau sibling 6Navigation following- / preceding-sibling lAutres 6 ancestor-or-self 6 descendant-or-self 6 namespace 6 attribute @

10 Cours XML 10 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Chemins descendant children sibling ancestor parent root processing commentaire attribut texte self

11 Cours XML 11 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand XPath (fonctions) lPositions relatives et information locale lExemples: 6position() : postion dans le contexte 6number() : Nombre de positions possibles dans le contexte 6count() : Cardinalité d’un « node-set » 6last() : Indicateur de derniere position lAutres: 6Fonctions booléennes: and, not, or, … 6Operateurs : mod, >, <=, … 6Fonctions de chaîne: contains, substring-before 6Fonctions d’environnement: normalize-space lPermettent des requêtes de base 6Analyse des contenus et noms de balises/attributs

12 Cours XML 12 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand XPath : exemples child::paragraphe : enfant ./paragraphe (premier de la liste) l child::text() : texte contenu dans les enfants l descendant::paragraphe : element paragraphe dans le ss-arbre 6 //paragraphe l child::*/child::paragraphe 6 */paragraphe l child::paragraphe/descendant::section 6./paragraphe//section l /descendant::list/child::item 6 //list/item l child::paragraphe[position()=last()-1] (avant-dernier paragraphe) l /child::doc/child::chapitre[position()=5]/child::section[position()=2]

13 Cours XML 13 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Requête XML lStandardisation toujours en cours (presque finale - WD) lButs: 6Recherche d'informations dans le document 6Travaille directement sur la structure XML lRessemble à SQL lBases de réflexion: 6XML-QL (AT&T) 6YAT (INRIA) 6Lorel (Stanford) 6XQL (~Microsoft) 6Quilt (IBM)  Base du standard èKweelt (open source) èksp (module de Cocoon) 6Comparaison: http://www-db.research.bell-labs.com/user/simeon/xquery.html http://www-db.research.bell-labs.com/user/simeon/xquery.html http://www.w3.org/XML/Query

14 Cours XML 14 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Langage de requête (analyse) lCapacités essentielles: 6Une formulation de la requête en trois parties: pattern + filter + constructor 6La possibilité d'imbriquer des requêtes, de les grouper, d'avoir une indexation interne et de pouvoir faire des opérations de classement 6de disposer d'un opérateur JOIN 6d'avoir un accès imprécis aux données pour une grande flexibilité lCapacités utiles 6Avoir la possibilité de définir une alternative en cas de données manquantes 6Pouvoir faire appel à des fonctions externes 6Pouvoir manipuler les données par références

15 Cours XML 15 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Langage de requête (analyse) l10 Requêtes de test 6Sélection et extraction: "tous les ouvrages publiés après 1991" 6Flattening: l'arbre XML de la base est "mis à plat" 6Garder la structure: afficher la base dans sa version originale 6Changer la structure par imbrication de requête: lister la base par auteur 6Changer la structure par opérateur de regroupement 6Combiner plusieurs sources de données 6Indexer les éléments de la structure: accéder au 3ème auteur d'un livre 6Classer les résultats 6Avoir un accès approximatif (wildcard) sur les éléments (tags) 6Avoir un accès approximatif (wildcard) sur le contenu

16 Cours XML 16 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Requirements lTest cases W3C 6Use Case "XMP": Experiences and Exemplars  Use Case "TREE": Queries that preserve hierarchy  Use Case "SEQ" - Queries based on Sequence  Use Case "R" - Access to Relational Data  Use Case "SGML": Standard Generalized Markup Language  Use Case "TEXT": Full-text Search  Use Case "NS" - Queries Using Namespaces  Use Case "PARTS" - Recursive Parts Explosion  Use Case "REF" - Queries based on References

17 Cours XML 17 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand XQuery language (1) lSpécification du W3C (Working Draft au 20/12/2001) lRessemble à SQL 6Notation ENBF (notation des DTD) 6Satisfait les contraintes emises « W3C XQuery requirements » 6S’inspire de Quilt (IBM) è basé sur XPath (2.0), XQL, XML-QL, ODMG lLiterals (éléments de base) 6Entiers, Flottants, Doubles, Chaînes lVariables 6Notation $nom lAppels de fonctions 6Syntaxe nom-de-la-fonction(…)

18 Cours XML 18 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand XQuery language (2) lRequêtes sur un arbre => parcours de l’arbre 6Utilisation de XPath lOpérateurs sur les éléments 6Logiques: and or 6Arithmetiques: + - * div mod (pas « / ») 6Comparaison: > = (en fait lt, gt, eq) 6Comparaison sur les nœuds: == !== 6Ordre sur les nœuds : > lNotion de « sequences » ~ listes 6Exemples (1,2,3,4) 6Operateurs: union, intersect,except

19 Cours XML 19 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand XQuery language (3) lConstructions 6Evaluation: {…} (symbole « ` » UNIX) lCommentaires 6{-- Ceci est un commentaire pour XQuery --} Harold and the Purple Crayon Crockett Johnson Here is a query. $i//title Here is the result of the above query. { $i//title } Here is a query. $i//title Here is the result of the above query. Harold and the Purple Crayon

20 Cours XML 20 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand XQuery language (4) lExpression FLWR (FLoWeR) 6FOR…LET…WHERE…RETURN… 6 Exemple: for $b in $input//book where $b/author = $a return $b/title l Classement: SORTBY…ASCENDING/DESCENDING 6 //book[price > 100] sortby ((author[1], title) ascending) l Conditions : IF…THEN…ELSE… 6 if ($widget1/unit-cost < $widget2/unit-cost) then $widget1 else $widget2 l Selection SOME/EVERY…SATISFIES 6 some $emp in //employee satisfies ($emp/bonus > 0.25 * $emp/salary)

21 Cours XML 21 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand XQuery language (5) lTYPESWITCH…CASE…DEFAULT… 6 typeswitch ($animal) case element duck return quack($animal) case element dog return woof($animal) default return "No sound" l define function summary (element employee* $emps) returns element dept* { for $d in distinct-values($emps/deptno) let $e := $emps[deptno = $d] return {$d} {count($e)} {sum($e/salary)} } summary(document("acme_corp.xml")//employee[location = "Denver"])

22 Cours XML 22 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Requête: Exemple: KSP <!– QUERY  XML et XQuery Module KSP XML pur Module XSLT HTML Serveur Apache Browser WWW

23 Cours XML 23 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Alternatives lServeur SQL classique 6Pas forcement adapte (Transport du systeme) lXML et SQL: Cocoon + module serveur MySQL 6Architecture lourde lPHP: spécialisé pour les BD SQL lMicrosoft: ASP + Access 6Plate-forme Microsoft 6Access n’est pas un serveur  Microsoft SQL server lChoix: dépend des cas d’utilisations et de leur contexte

24 Cours XML 24 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Structuration de l’information lChoix technologique 6XML: Transport de données èTechnologie légère : Parseur + représentation objet èMultiplateforme èBasé sur le fichiers (texte) èPas de système de serveur èTexte = mauvaise compression èTexte => peu d’optimalité dans les requêtes èXML: Hiérarchique / Pas de structure relationelle (si avec XPointer) 6Structure: Choix de représentation èPas de recette générique èPeu faciliter l’analyse finale

25 Cours XML 25 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Structuration (exemple) Jean Prof Groupe Vision vision Pierre Etude Groupe Vision vision Jean Prof Groupe Vision Pierre Etude T. I. O. S

26 Cours XML 26 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Conclusion lXML structure d’arbre 6Navigation grâce à XPath 6Caractérisation de sous-arbres grâce aux Axes lRequêtes 6Travaillent sur les sous-arbres construits 6Opérateurs de comparaison 6Générent un sous-arbre extrait ou calculé lStructuration de données 6Dépend du contexte 6Pas de recette unique 6XML n’est pas forcément toujours le bon choix XML : Echange de données

27 Cours XML 27 Stéphane Marchand-Maillet – CUI – Université de Genève – http://viper.unige.ch/~marchand Liens utiles (suite de la liste donnée au premier cours) lXPath : http://www.w3.org/TR/xpathhttp://www.w3.org/TR/xpath lXQuery : http://www.w3.org/TR/xquery/http://www.w3.org/TR/xquery/ lQuilt : http://www.almaden.ibm.com/cs/people/chamberlin/quilt.htmlhttp://www.almaden.ibm.com/cs/people/chamberlin/quilt.html lKweelt : http://kweelt.sourceforge.net/http://kweelt.sourceforge.net/ lDocument sur XQuery: http://www.w3.org/1999/09/ql/docs/xquery.htmlhttp://www.w3.org/1999/09/ql/docs/xquery.html lCocoon : http://xml.apache.org/cocoon/http://xml.apache.org/cocoon/ ldbXML : http://www.dbxml.org/http://www.dbxml.org/


Télécharger ppt "Données sous XML Stéphane Marchand-Maillet Groupe Viper Vision par Ordinateur et Multimédia CUI – Université de Genève"

Présentations similaires


Annonces Google