View
88
Download
0
Category
Preview:
DESCRIPTION
UNIVERSITE CHOUAIB DOUKKALI Faculté des sciences Département des mathématiques & informatiques ELJADIDA. XQUERY. Encadré par: Mr. Ali Elhore. Réalisé par: LAAROUSSI Mohamed BENELFAHAME Oussama. PLAN. INTRODUCTION DEFINITION DE XQUERY - PowerPoint PPT Presentation
Citation preview
UNIVERSITE CHOUAIB DOUKKALI Faculté des sciencesDépartement des mathématiques & informatiques ELJADIDA
Encadré par: Mr. Ali ElhoreRéalisé par:
LAAROUSSI MohamedBENELFAHAME Oussama
XQUERY
PLAN
INTRODUCTION DEFINITION DE XQUERY XQUERY - EXEMPLES D’UTILISATION MODULE DE DONNEES DE XQUERY CONSTRUCTIONS DE XQUERY LES EXPRESSIONS XQUERY CONCLUSION
Le langage XQuery ou XmlQuery est conçu spécifiquement pour l'intégration de la programmation et des données XML, et les programmeurs sont plus productifs en utilisant XQuery pour ces tâches. Cependant, de nombreuses applications d'entreprise sont construites sur la plate-forme Java, et nécessitent souvent des fonctionnalités ne trouve pas dans XQuery, par exemple, de nombreux programmes XML doivent utiliser la fonctionnalité des services Web de J2EE.
INDRODUCTION
XQuery est un langage de requête informatique permettant non seulement d'extraire des informations d'un document XML, ou d'une collection de documents XML, mais également d'effectuer des calculs complexes à partir des informations extraites et de reconstruire de nouveaux documents ou fragments XML.
DEFINITION DE XQUERY
XQUERY - EXEMPLES D‘UTILISATION
XQuery peut être utilisé pour: Extraire des informations à utiliser dans
un service Web Générer des rapports de synthèse Transformer des données XML à XHTML Recherche de documents sur le Web
pour les informations pertinentes
• Une Valeur est une séquence ordonnée de 0 ou plusieurs items.
• Un item est un nœud ou une valeur atomique• Il y a 7 types de nœuds:
– Élément– Attribut– Texte– Espace de noms– Instruction de traitement– Commentaires – Documents nœuds.
MODELE DE DONNEES DE XQUERY
Exemples de valeurs 12 - xs: integer, "toto" – xs: string, <a>message</a> - element, (1, 2, 3) - séquence de 3 items, (12, <a/>, "toto") - séquence de 3 items, () - séquence vide
Quelques remarques sur les valeurs
• Il n’y a pas de distinction entre un item et une séquence de longueur 1. 47=(47)
• Une séquence peut contenir des données hétérogènes
(12, <a/>, "toto")• Il n’y a pas de séquences imbriquées (1,(2,3), <a/>, "toto")= (1,2,3, <a/>,
"toto") • Une séquence peut être vide : ()• les séquences sont triées : (1,4) ≠ (4,1)
Quelques remarques sur les items
• Les nœuds ont une identité (les valeurs atomiques n’en ont pas)
• Les nœuds de type element et attribut ont des annotations de type– Elles sont déterminées lorsque les nœuds sont
validés– Le type peut être complexe, voir inconnu
• Chaque nœud a une valeur de type– Une séquence de valeurs atomique– Peut être de type inconnu
• Chaque nœud est ordonné au sein du document dont il est issu
1. Règles générales de Xquery
• Xquery est un langage sensible à la casse– Les mots clés sont en minuscules
• Chaque expression a une valeur, et pas d’effet de bord
• Les expressions sont composables• Les expressions peuvent générer des erreurs• Les commentaires sont possibles
– (: un commentaire :)
CONSTRUCTIONS DE XQUERY
2. Structure d’une requête XqueryUne requête XQuery est composée de trois parties : une ligne d'entête commencée par "xquery" et contenant
la version et, éventuellement l'encodage du document ; un ensemble de déclarations :
déclarations de variables ou constantes, déclarations de fonctions utilisateur locales, importation de modules (bibliothèques XQuery), détermination des espaces de nom et de leur utilisation, détermination du format du résultat et autres paramètres ;
l'expression XQuery à exécuter.La ligne d'entête et les déclarations sont toutes terminées
par ";"
3. Contexte d’évaluation
Les expressions sont évaluées relatives à un contexte: Espace de nom Variables Fonctions Date et heure Item contexte (nœud courant) Position (dans la séquence en train d’être traitée) Taille de cette séquence
Exemples• Valeurs atomiques: "Hello" 12 4.7• Valeurs construites :
– true() false() date("2013-05-16")• Variables : $x• Séquences construites :
– $a, $b pareil que ($a, $b)– (1, (2, 3), ( ), (4)) pareil que 1, 2, 3, 4– 5 to 8 pareil que 5, 6, 7, 8– 8 to 5 pareil que ( )
4. Les fonctions Xquery permet à l’utilisateur de définir ses
propres fonctions. Les fonctions ne peuvent pas être
surchargées
Syntaxe :declare function prefix:function_name($parameter
AS datatype) AS return Datatype{ ...function code here...}
Exemplexquery version "1.0" encoding "utf-8";declare function local:liste_entier_pair($max) { (2 to $max)[. mod 2 = 0]} ;<pair> {local:liste_entier_pair(10)} </pair> Resultat: <pair> 2 4 6 8 10 </pair>
Il existe des fonctions prédéfinies de Xquery comme:
SUM: la sommeAVG: la moyenneCOUNT: nombre d’élémentsMAX: maximumMIN: minimum…..
EXPRESSIONS XQUERY
1. L’expression FLOWR Une expression FLWOR lie des variables, applique des
prédicats, et construit un nouveau résultat
FOR et LET clauses de générer une liste de tuples de variables liées, préserver l'ordre d'entrée.
WHERE clause s'applique un prédicat, en éliminant certains des tuples.
ORDER BY clause impose un ordre sur les tuples survivants.
RETURN clause est exécutée pour chaque tuple survivante, générer une liste ordonnée des sorties
Différence entre FOR et LET For:
for $x in /company/employee génère un lien de chaque employé vers $x pour chaque élément dans l’entreprise
Let: let $x := /company/employee génère un
seul lien $x représentant ici l’ensemble des employés
Exemple
for $d in document("depts.xml")//deptno let $e := document("emps.xml")//employee[deptno = $d]
where count($e) >= 10 order by avg($e/salary) descending return <big-dept> {
$d, <headcount>{count($e)}</headcount>,
<avgsal>{avg($e/salary)}</avgsal> } </big-dept>
Résultat : Retourne la liste des département avec plus de 10 employés, classés par salaire
2.L’expression IF-THEN-ELSESyntaxe: If (condition) then expr1; else
expr2; Exemple: for $x in doc("livres.xml")/librairie/livre
return if ($x/@category="CHILDREN")then <child>{data($x/titre)}</child>else <adult>{data($x/titre)}</adult>
3. Autres Expressions SOME,EVERY 1- some Syntaxe: some $var in expr1 satisfies expr2Exemple: for $l in document("bib.xml")//livre
where some $p in $l//paragraphe satisfies (contains($p,"plate") AND contains($p,"espace")) return $l/titre
Résultat: L'exemple suivant recherche les titres de tous les livres qui mentionnent les deux mots « plate » et « espace »dans le même paragraphe
2- EverySyntaxe: every $var in expr1 satisfies expr2Exemple for $l in document(« bib.xml")//livre
where every $p in $l//paragraphe satisfies contains($p, "plate") return $l/titre
Reseltat: L'exemple suivant trouve les titres de tous les livres qui mentionnent le mot "plate" dans chaque paragraphe
CONCLUSION
XQuery est un outil puissant et pratique pour analyserou générer XML
XQuery est un protocole indépendant, donc peut être évaluée n'importe quel système avec des résultats prévisibles
Il n'y a pas des implémentations mais le site XQuery listes connues mise en œuvre
MERCI POUR VOTRE ATTENTION
Recommended