XQuery XML Query Language

Documents pareils
Nouveautés apportées à l assessment-tool

Gestion des Prospects : Adresses à exporter

PHASE 1 : choix et définition du sujet du TM.

2. Trouvez la version du firmware que vous souhaitez télécharger dans la rubrique Boot From CD, correspondant à votre modèle de SSD.

République Française Services du Premier Ministre

Catalogue de formation bureautique

Kluwer ERP Dashboard - VERO.

Pour répondre au besoin de sécurité juridique et de prévisibilité, la Loi type devrait traiter des questions suivantes:

MAGESTIA - MODULE MAGESTION COMMERCIALE

Meilleures pratiques en matière d'indexation de contenu. Mise à niveau à partir de versions antérieures à la version 6.5

Coefficient 4. L ACRC est validé par le contrôle des compétences suivantes :

SYSTEME DE TELERADIAMETRIE H*(10)

LE TABLEAU DE BORD REMONTEE DES COMPTES. Outils de gestion prévisionnelle, d'analyse financière et du contrôle de gestion. TABLE DES MATIERES

Directory List & Print (Pro) by Infonautics GmbH, Switzerland

Charte de la gestion cookies groupe PVCP 25/09/2014

OBTENEZ LES SERVICES DONT VOUS AVEZ BESOIN OÙ QUE VOUS SOYEZ

Manuel d'utilisation: Gestion commerciale - CRM

(les caractères apparaissent en vidéo inversé : blanc sur fond

MISSIONS COMMERCIALES

Impact des réformes financières en cours dans le monde bancaire. Olivier Motte - Public Affairs 12 juillet 2010

Sociétés Non Financières - taux endettement - % PIB, valeur nominale

Bibliothèque Zotero : Aide à la prise en main. Un outil de gestion de références bibliographiques en ligne

Annexe 1 Annexe technique de la convention d habilitation «expert en automobile»

ÉTAPES CLÉS DE LA RÉPONSE AUX VIOLATIONS DU RESPECT DE LA

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Contenu de version

Développement d applications mobiles natives avec LongRange de LANSA

PROCESSUS DE CERTIFICATION DES MONITEURS JE NAGE INFORMATIONS POUR LES MAITRE ÉVALUATEURS

DOSSIER DE CANDIDATURE. Master Transport, Logistique Et Commerce International

ACCORD SUR LE RECOUVREMENT AMIABLE EN CREDIT A LA CONSOMMATION

Guide pour la rédaction d une Spécification Technique de Besoin (STB)

Manuel d utilisation de Nomad Trading

Gestionnaire de Prêts Margill 4.1

DOSSIER DE CANDIDATURE. Programme Executive MBA

LES 3 PHASES DU PROJET EDI

Règlement de la BCL Collecte directe des données paiement. Note de guidance relative à la transmission des données paiements

Guide d aide à la rédaction d un essai

Les stratégies de Backup dans WSS V3

Archivage et valeur probatoire. Livre blanc

LIVRE BLANC SEM. Google AdWords Le guide ultime du SEM pour votre Boutique en ligne

Alcatel OmniPCX Office

ENREGISTEUR NUMERIQUE USB Guide utilisateur

- Le service aux tables. - Le service rapide & commande pour emporter. - Le service à l auto. - La livraison. o Voir le feuillet Livraison.

En collaboration avec la direction territoriale du MFA

Cible de Sécurité - Blancco DataCleaner+ v4.8

Bourse Étienne-Beauclair Banque Nationale

GUIDE INSTALLATION IAS

Pour l étude d un logiciel documentaire : o Mener une réflexion technique sur les ressources d un logiciel documentaire : Caractériser le logiciel

Dossier Spécial. Les 5 étapes pour vendre ACT! Apprendre à détecter un besoin en Gestion de Contacts

a) Financement par des tiers : emprunts, crédits bancaires, leasing, crédit spontané (lors d un achat à crédit) ;

NOTICE POUR L IMPORT DU FICHIER «IACA» DANS CORRELYCE

L'ANALYSE DU BILAN PATRIMONIAL EN VALEURS NETTES. Approfondir l'analyse du bilan financier : retraitements du bilan comptable.

FORMATION SUR «CLOUD COMPUTING : CONCEPTS, TECHNOLOGIES ET APPROCHES DE MIGRATION»

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Nous proposons 3 syntaxes au choix :

[SIMULATEUR DE CREDIT IMMOBILIER]

Licence professionnelle Management des organisations. Spécialité Distribution - Commerce en réseau. Cours Systèmes d information

Restitution. Enquête FNOGEC auprès des principaux éditeurs de logiciels. Mise en conformité aux normes SEPA

Communiqué de lancement : Sage 100 Scanfact Version V15.50

Marché public de prestations intellectuelles ETUDE PRELIMINAIRE DANS LE CADRE DE LA CONSTRUCTION D UNE DECHETERIE A PLAISANCE DU TOUCH (31)

MIGRATION VERS L'OMNIPCX OFFICE R9.1

RÈGLEMENT DU CONCOURS

Résumé du module 6 : Coût et structure du capital

Multi Devis 30&100, véritable «Gestion Commerciale» dédiée aux petites entreprises et PME du BTP.

Chap I : Economie d'entreprises

A toutes les Directrices et à tous les Directeurs des établissements scolaires de l enseignement secondaire et secondaire technique

LiO.2 Listes des paramètres

GUIDE pour la CONDUITE D ENTRETIEN

Le dispositif de qualification OPQIBI pour les audits énergétiques (réglementaires)

CONTEXTE DRSI Paris12 - Site de Créteil

Vente de Capacités de Stockage de gaz du 13 mai 2015

Logiciel de gestion des inscriptions en CPGE

LOGICIELS ET BASES DE DONNÉES PROTECTION ET VALORISATION

MARCHES PUBLICS DE TRAVAUX. Lot : n 3 PEINTURE. Objet du marché : RENOVATION DES BUREAUX 411, 412 et 413 BLOC III / Niveau 4 INRA SITE DE THEIX

Cahier des Clauses Techniques Particulières. Lot n 2 : CLOISONS MODULAIRES

Microsoft BizTalk Server et Microsoft Dynamics AX : Solutions d intégration pour l entreprise étendue

Physique Chimie LA GRAVITATION

SAP SAP ERP SAP ERP FINANCIALS

Règlement du concours de POCKET FILM organisé par le Département de la Haute-Vienne

COMPTE RENDU DE LA COMMISSION COMMUNICATION

livraisons en centrale

Coalition énergie et construction durable

ITIL V3. Les principes de la conception des services

NOMBRES RELATIFS Exercices 1/6

Processus des services

SMART Document Camera Modèle SDC-450

Les accidents du travail

ETUDES DES SOLUTIONS DE BI AGILE

Les EMA (Empreintes de Machines à Affranchir)

Les dossiers de FO RÉSIDENCE PRINCIPALE. Prêts soumis à conditions de revenus : o Critères d attribution :

Utilisation de RAMSIS dans la conception automobile Lisa Denninger Apports et Limites des Mannequins Virtuels 18 Novembre 2014

RELEASE NOTES DATAEXCHANGER DEX VERSION X

marché français du stockage (+12% en plupart ont des réticences en raison grandes villes d Europe, c est aussi la

Financement des investissements Page 1 sur 6

Dossier de Presse. 1 ier guide Interactif pour créateurs et entrepreneurs

Ville de Pierrefitte-sur-Seine Centre Technique Municipal

Présentation de la SCHL Canada

Transcription:

XQuery XML Query Language Sébastien Labrie Sebastien.Labrie@iutbaynne.univ- pau.fr Christian Sallaberry Christian.Sallaberry@univ- pau.fr Bibligraphie http://www.w3.rg/xml/ http://www.w3.rg/tr/xquery/ http://www.w3.rg/tr/xquery-semantics/ http://www.w3.rg/tr/xpath-full-text-10-use-cases/ http://www.gnu.rg/sftware/qex/xquery-intr.html http://www.w3schls.cm/xquery/ http://biblitheques.univ-pau.fr/live/livreselectrniques/editin-eni http://www.gchagnn.fr/curs/xml/index.html http://www.datypic.cm/intrductintxquery.pdf http://www.datypic.cm/bks/xquery/ 2

Xquery : présentatin http://www.w3schls.cm/xquery/ 3 XQuery : présentatin XQuery est un langage de requêtes pur les dcuments et bases de dcuments XML XQuery est suvent cmparé : au langage SQL des bases de dnnées relatinnelles au langage XSLT gérant des structures hiérarchisées XML http://biblitheques.univ-pau.fr/live/livres-electrniques/editin-eni 4

XQuery : présentatin Langages pur interrger des arbres : XQuery, plus pur interrger que pur transfrmer XSLT, plus pur transfrmer XQuery et XSLT utilisent des expressins XPath Langages pur interrger des relatins : SQL, pur interrger deux niveaux : relatins & attributs 5 XQuery : présentatin Analgie XML et BD Vue XML XML XSLT XPath XQuery Vue BD Dnnées HTML & ASP,JSP Référence à un champ SQL Semi-structuré Echange & partage Aut-descriptif Structuré Stckage Nrmes et cntraintes SGBDR 6

XQuery : présentatin Les dnnées relatinnelles snt denses : le schéma existe et est stcké séparément les attributs de chaque instance nt une valeur prblème des valeurs nulles Ce n est pas le cas de XML pur qui : le schéma existe u pas (s il existe, il est stcké dans le dcument u bien séparément) il peut y avir des éléments vides il peut y avir des éléments absents Degré de liberté supérieur pur les dcuments XML dits semi-structurés 7 XQuery : présentatin Les requêtes SQL returnent des relatins, ensembles résultats hmgènes Les requêtes XML returnent des arbres, de type différent de structure cmplexe //*[culeur="ruge"] peut returner une cerise, une viture, On truve côte à côte des éléments et des valeurs atmiques ; des transfrmatins structurelles snt supprtées 8

XQuery : présentatin Les BD XML - relatinnel XML : Traductin en attributs <Vins> <Tuple nv= 100 cru= Jurançn mill= 1999 degré= 12 /> <Tuple nv= 200 cru= Madiran mill= 1996 degré= 12 /> </Vins> 9 XQuery : présentatin Les BD XML - relatinnel XML : Traductin en éléments <Vins> <Tuple> <nv>100</nv> <cru>jurançn</cru> <mill>1999</mill> <degré>12</degré> </Tuple> <Tuple> <nv>200</nv> <cru>madiran</cru> <mill>1996</mill> <degré>12</degré> </Tuple> </Vins> 10

XQuery : présentatin Les BD XML mdèle : BD relatinnelle Cllectin de relatins Relatin Cllectin tuples BD XML Cllectin de frêts Frêt XML Cllectin d arbres Arbre XML Dcument XML 11 XQuery : présentatin Les extensins par rapprt à SQL snt : extractin de sus-arbres : XPath sélectin de sus-arbres (avec prédicats) : XPath variables d itératin sur des cllectins d arbres : XPath jintures pur cmbinaisns d arbres : XQuery rérdnnancement d arbres : XQuery définitin et intégratin de fnctins dans des requêtes : XQuery transfrmatin de dcument (arbres) : XSLT 12

Syntaxe : XQuery : expressin let : permet l affectatin de valeurs à une variable fr : itératin sur une liste de partie de dcument XML return : frme de l expressin à returner where : clause de restrictin de la requête Xquery rder by : tri des résultats If then else : expressin cnditinnelle 13 XQuery : expressin Créatin d éléments : Créatin de l élément XML <valeur> cntenant la chaîne "k " <valeur>k</valeur> Créatin de l élément XML <valeur> qui a pur cntenu la valeur de la variable i let $i := 1 return <valeur>{$i}</valeur> Un cnstructeur d élément XML peut cntenir tut type d expressin XQuery. L expressin dit alrs être placée entre acclades { } Créatin de l élément <resultat> cntenant l ensemble des éléments <titre> de l ensemble des recettes du dcument let $i := /cllectin/recette return <resultat>{$i/titre}</resultat> Lrsque la variable est une séquence, il y a autant d éléments générés que de valeurs dans la séquence d rigine <resultat> <titre>pivrée de steak d autruche sur purée de céleri</titre> <titre>salade de chèvres chauds</titre> </resultat> 14

XQuery : expressin Créatin d éléments : Créatin, pur chacune des recettes du dcument, d un élément <resultat> cntenant l élément <titre> fr $i in /cllectin/recette return <resultat>{$i/titre}</resultat> La différence avec l exemple précédent est la structure returnée. La fermeture de la balise <resultat> après chaque balise <titre> u une seule fis en fin de dcument ne dnne pas la même significatin au dcument XML <resultat> <titre>pivrée de steak d autruche sur purée de céleri</titre> </resultat> <resultat> <titre>salade de chèvres chauds</titre> </resultat> 15 XQuery : expressin Créatin d éléments : Intégratin d une séquence dans le cnstructeur d élément <recette> {fr $i in /cllectin/recette return <resultat>{$i/titre, $i/cmmentaire}</resultat>} </recette> <recette> <resultat> <titre>pivrée de steak d autruche sur purée de céleri</titre> <cmmentaire auteur="labrie">très bn!</cmmentaire> </resultat> <resultat> <titre>salade de chèvres chauds</titre> <cmmentaire auteur="labrie">un classique!</cmmentaire> </resultat> </recette> sus exist : <recette> { fr $i in cllectin("recettes")/cllectin/recette return <resultat>{$i/titre, $i/cmmentaire}</resultat> } </recette> 16

XQuery : expressin Créatin d éléments : Calcul de la valeur d un attribut par un cnstructeur d élément fr $i in /cllectin/recette return <recette image="{$i/image/@src}">{$i/titre}</recette> <recette image="http://www.mesrecettes.cm/imgrecette1.jpg"> <titre>pivrée de steak d autruche sur purée de céleri</titre> </recette> <recette image="http://www.mesrecettes.cm/imgrecette2.jpg"> <titre>salade de chèvres chauds</titre> </recette> 17 XQuery : expressin Créatin d éléments : Utilisatin du mt-clé "element" pur évaluer le nm de l élément créé ("attribut" pur évaluer le nm de l attribut) let $i := "message", $j := "k" return element {$i}{$j} <message>k</message> let $i := "val", $j := "k" return element message {attribute {$i} {$j}, "bn"} <message val="k">bn</message> Ces exemples mntrent cmment générer à partir de valeurs de variables des séquences u des attributs XML 18

XQuery : expressin Expressin FLWOR : fr $<var_f1> in <frest_1> [, $<var_f2> in <frest_2>] //itératin let $<var_s1> := <subtree_1> [, $<var_s2> := <subtree_2 >] //assignatin where <cnditin> //élagage rder by <criterin> //trie return <result> //cnstructin 19 XQuery : expressin Expressin FLWOR : fr $<var_f1> in <frest_1> [, $<var_f2> in <frest_2>] //itératin let $<var_s1> := <subtree_1> [, $<var_s2> := <subtree_2 >] //assignatin where <cnditin> //élagage rder by <criterin> //trie return <result> //cnstructin fr / let where return 1 2 3 20

XQuery : expressin Expressin FLWOR : différence entre F et L fr $i in (2,3) return <res> {2 * $i} </res> <res>4</res> <res>6</res> fr $i in (2,3) return <res> {2 * 1} </res> <res>2</res> <res>2</res> let $i := (2,3) return <res> {2 * 1} </res> <res>2</res> let $i := (2,3,4) return <res> {cunt($i)} </res> ( fr $i in (2,3,4) return <res> {cunt($i)} </res>) <res>3</res> 21 XQuery : expressin Expressin FLWOR : sélectin d éléments fr $i in /cllectin/recette return $i/titre <titre>pivrée de steak d autruche sur purée de céleri</titre> <titre>salade de chèvres chauds</titre> 22

XQuery : expressin Expressin FLWOR : restrictin fr $i in /cllectin/recette where $i/@categrie="entree" return $i/titre <titre>salade de chèvres chauds</titre> fr $i in /cllectin/recette where $i/@prix<15 return $i/titre <titre>salade de chèvres chauds</titre> 23 XQuery : expressin Expressin FLWOR : tri fr $i in /cllectin/recette rder by $i/titre ascending return $i/titre <titre>fie frais aux pmmes</titre> <titre>pivrée de steak d autruche sur purée de céleri</titre> <titre>salade de chèvres chauds</titre> fr $i in /cllectin/recette where $i/ingredient/@nm = "salade" rder by $i/@prix ascending return $i/titre <titre>fie frais aux pmmes</titre> <titre>salade de chèvres chauds</titre> 24

XQuery : expressin Expressin FLWOR : fnctin SI fr $i in /cllectin/recette return <recette> {$i/titre, element {if ($i/ingredient/@nm = "armagnac") then "avec_alcl" else "sans_alcl"} {$i/ingredient}} </recette> <recette> <titre>pivrée de steak d autruche sur purée de céleri</titre> <sans_alcl> <ingredient nm="céleri" qte="500" unite="g"/> <ingredient nm="pmmes de terre" qte="1" unite="kg"/> <ingredient nm="sel fin"/> </sans_alcl> </recette> <recette> <titre>fie frais aux pmmes</titre> <avec_alcl> <ingredient nm="fie" qte="300" unite="g"/> <ingredient nm="armagnac" qte="5" unite="cl"/> <ingredient nm="pmmes" qte="3"/> <ingredient nm="salade" qte="1"/> </avec_alcl> </recette> 25 XQuery : expressin Expressin FLWOR : fnctins prédéfinies (valides XPath) let $R := dc("recettes.xml")//recette return <NmbreRecettes> {cunt($r)} </NmbreRecettes> <NmbreRecettes>3</NmbreRecettes> 26

XQuery : expressin Expressin FLWOR : fnctins prédéfinies let $a := //cmmentaire fr $d in distinct-values($a/@auteur) return <auteur> {$d} </auteur> <auteur>labrie</auteur> <auteur>sallaberry</auteur> 27 XQuery : expressin Expressin FLWOR : fnctins prédéfinies fr $d in dc("recettes.xml")//recette return <res> {$d/titre}{data($d/preparatin)} </res> <res> <titre>pivrée de steak d autruche sur purée de céleri</titre> Peler le céleri et les pmmes de terre. Faire cuire dans l eau buillante. Arrser du jus de viande </res> <res> 28

XQuery : expressin Expressin FLWOR : fnctins persnnalisées declare functin lcal:quantitecmmentaires($i as nde()) as xs:integer {cunt($i/cmmentaire)}; fr $i in //recette return <res> {$i/titre} <cm>{lcal:quantitecmmentaires ($i)} </cm> </res> <res> <titre>pivrée de steak d autruche sur purée de céleri</titre> <cm>2</cm> </res> <res> <titre>salade de chèvres chauds</titre> <cm>1</cm> </res> <res> <titre>fie frais aux pmmes</titre> <cm>1</cm> </res> 29 XQuery : expressin Expressin FLWOR : quantificateur universel let $seuil := 40 return <message> {if (every $i in //recette satisfies $i/@prix > $seuil) then "Trp cher" else "Pas cher"} </message> <message>pas cher</message> 30

XQuery : expressin Expressin FLWOR : quantificateur universel fr $i in /cllectin/recette where every $c in $i/cmmentaire satisfies cntains($c, "bn") return $i/titre <titre>pivrée de steak d autruche sur purée de céleri</titre> 31 XQuery : expressin Expressin FLWOR : quantificateur existentiel let $seuil := 15 return <message> {if (sme $i in //recette satisfies $i/@prix > $seuil) then "Des répnses" else "Pas de répnse"} </message> <message>des répnses</message> 32

XQuery : expressin Expressin FLWOR : quantificateur existentiel fr $i in /cllectin/recette where sme $c in $i/cmmentaire satisfies $c/@auteur="labrie" return $i/titre <titre>pivrée de steak d autruche sur purée de céleri</titre> <titre>salade de chèvres chauds</titre> 33 XQuery : expressin Cas particulier de la jinture : exemple gestin cmmerciale fr $p in dc("gestincmmerciale-v2.xml")//prduit, $cp in dc("gestincmmerciale-v2.xml")//cmmande/detail/prduit where $p/designatin = "Bâtn de clle" and $cp/@ref = $p/@id return <res> {$p/designatin} <cm> <numcm>{$cp/../../@id}</numcm> </cm> </res> fr $p in dc("gestincmmerciale-v2.xml")//prduit where $p/designatin = "Bâtn de clle" return <res> {$p/designatin} <cm> {fr $cp in dc("gestincmmerciale-v2.xml")//cmmande/detail/prduit where $cp/@ref = $p/@id return <numcm> {data($cp/../../@id)} </numcm> } </cm> </res> 34

XQuery : expressin Expressin FLWOR : rappel Nm Ntatin Rôle Assignatin et cnstructin let $var := expr Cnstructin d un élément XML et assignatin à une variable $var Prjectin $var / xpath Extractin de séquences d éléments u d attributs d un arbre XML à l aide d une expressin de chemin XPath Accès dnnées $var / xpath / data() Extractin de séquences de dnnées d un arbre XML à l aide d une expressin XPath u de la fnctin data() 35 XQuery : expressin Expressin FLWOR : rappel Nm Ntatin Rôle Itératin Sélectin (restrictin) Quantificatin existencielle fr $var IN seq return expr fr $var IN seq where qual return cns sme $var in seq satisfies qual Itératin sur les éléments d une séquence et cnstructin d une séquence résultat dérivée Itératin avec sélectin des arbres satisfaisant la qualificatin qual : expressin de la frme expr1 expr2 Expressin de qualificatin vraie si un des éléments de la séquence satisfait la qualificatin qual 36

XQuery : expressin Expressin FLWOR : rappel Nm Ntatin Rôle Quantificatin universelle Jinture Tri every $var in seq satisfies qual fr $var1 in seq1 $var2 in seq2 where qual return expr expr1 srtby expr2 Expressin de qualificatin vraie si tus les éléments de la séquence satisfnt la qualificatin qual Expressins d itératin imbriquées permettant de jindre seq1 et seq2 seln la qualificatin qual Tri de la séquence Expr1 seln les dnnées extraites par Expr2 37 XQuery : expressin Expressin FLWOR : rappel Nm Ntatin Rôle Fnctins intégrées Définitin de fnctin distinct-value avg, cunt, define functin nm ([type:var]*) returns cllectin Éliminatin des dubles Fnctins d agrégats Définitin d une fnctin paramétrée returnant une cllectin d arbres XML 38

Exercices! Recherche d infrmatin avec XQuery 39 Exercice 1 : éditeur Xygen Ouvrir un nuveau fichier 40

Exercice 1 : éditeur Xygen Ecrire et exécuter une requête XQuery 41 Exercice 1 : éditeur Xygen Ecrire et exécuter une requête XQuery 42

Exercice 2 : Oxygen & XQuery Interrger le fichier gestin_cmmerciale.xml : Nms et prénms des clients Clients qui nt des cmmandes Clients et nmbre de cmmandes Clients qui nt plus de 2 cmmandes Clients qui n nt pas de cmmande Désignatin et prix des prduits à plus de 10 eurs Prduits en rupture de stck (quantité en stck < 2) Prduits cmmandés Cde des cmmandes cmprenant plus de deux lignes de cmmande Nmbre ttal de bâtns de clle cmmandés Nmbre de bâtns de clle en stck Nmbre de cmmandes 43 Exercice 3 : éditeur exist 44

Exercice 3 : éditeur exist 45 Exercice 3 : éditeur exist 46

Exercice 3 : éditeur exist 47 Exercice 4 : exist & XQuery Interrger le fichier gestin_cmmerciale.xml : 1. Nms et prénms des clients 2. Clients qui nt des cmmandes 3. Clients et nmbre de cmmandes 4. Clients qui nt plus de 2 cmmandes 5. Clients qui n nt pas de cmmande 6. Désignatin et prix des prduits à plus de 10 eurs 7. Prduits en rupture de stck (quantité en stck < 2) 8. Prduits cmmandés 9. Cde des cmmandes cmprenant plus de deux lignes de cmmande 10. Nmbre ttal de bâtns de clle cmmandés 11.Nmbre de bâtns de clle en stck 12. Nmbre de cmmandes 48