180 likes | 305 Views
Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας. Διατύπωση Ερωτημάτων σε XML τεκμήρια με τη γλώσσα XQuery Εργασία για το μάθημα Ηλεκτρονική Δημοσίευση. Υπεύθυνος καθηγητής: Σαράντος Καπιδάκης Φοιτήτρια: Αγγελίνα Λούβαρη. XML. Η XML είναι μία ιδιαίτερα εύκαμπτη διάταξη δεδομένων ,
E N D
Ιόνιο ΠανεπιστήμιοΠΜΣ Επιστήμη της Πληροφορίας Διατύπωση Ερωτημάτων σε XML τεκμήρια με τη γλώσσα XQuery Εργασία για το μάθημα Ηλεκτρονική Δημοσίευση Υπεύθυνος καθηγητής: Σαράντος Καπιδάκης Φοιτήτρια: Αγγελίνα Λούβαρη
XML • Η XML είναι μία ιδιαίτερα εύκαμπτη διάταξη δεδομένων, • Έχει χρησιμοποιηθεί για να περιγράψει διαφορετικών ειδών δεδομένα. • Ανάγκη για την χρήση μιας γλώσσας επερωτήσεων XML • Ενδεικτικά, Lorel, Quilt, MnQL, Xduce, XMLQL, XPath, Xquery, XQL και YaTL
X-Query • Βασίζεται στην γλώσσα XPath • Περιέχει κόμβους και τύπους κόμβων • Συμβατή με XML, XML Schema, XPath, XSLT • Δεν αποτελεί ακόμα πρότυπο.
X-Query-Δεδομένα • Αντικείμενο (item): μοναδική τιμή ή ένας μεμονωμένος κόμβος • Μία σειρά αντικειμένων αποτελεί μία ακολουθία • Κόμβοι: τεκμηρίου (document nodes), στοιχείων (element nodes), γνωρισμάτων(attribute nodes), κειμένου (text nodes), χώρων ονομάτων (namespace nodes), οδηγιών επεξεργασίας (processing instruction nodes) και σχολίων (comment nodes)
Σχόλια και σήμανση • Σχόλια (: Thanks, Jeni! :) • Συμβολοσειρές "a string” 'a string‘ "This is a string, isn't it?” 'This is a "string”'
Εκφράσεις XQuery Οι εκφράσεις XQuery εμπίπτουν σε επτά ευρύς τύπους: • εκφράσεις μονοπατιού, • κατασκευαστές στοιχείων, • FLWOR εκφράσεις, • εκφράσεις που περιέχουν τελεστές και συναρτήσεις, • υποθετικές εκφράσεις, • ποσοτικές εκφράσεις και • εκφράσεις που δοκιμάζουν ή μετατρέπουν τύπους δεδομένων.
1.Εκφράσεις μονοπατιών Οι εκφράσεις μονοπατιών είναι βασισμένες στη σύνταξη του XPath, τα XML πρότυπα για τη διευκρίνιση "των πορειών" XML έγγραφου, παραδείγματος χάριν: Βρίσκει όλους τους τίτλους των κεφαλαίων στο έγγραφο books.xml: έγγραφο ("books.xml")/ chapter / title
2. Κατασκευαστές στοιχείων Αυτός ο τύπος έκφρασης χρησιμοποιείται όταν πρέπει να δημιουργήσει μια ερώτηση νέα στοιχεία, παραδείγματος χάριν: Παράγετε το στοιχείο <book> με τις ιδιότητες "year" και του οποίου η αξία είναι ο τίτλος του βιβλίου: <book> { $b/@year }{ $b/title } </book> <book year="1992"> <title>Advanced Programming in the Unix environment</title> </book>
3. FLWΟR εκφράσεις • Ο όρος “for” O όρος for εκχωρεί στο όνομα μιας μεταβλητής κάθε αντικείμενο ενός συγκεκριμένου στοιχείου. Ο όρος for έχει σαν αποτέλεσμα την επανάληψη. Μπορούν να χρησιμοποιηθούν πολλαπλοί όροι for μέσα στην ίδια έκφραση FLWOR. • Ο όρος let Ο όρος let επιτρέπει την εκχώρηση μιας μεταβλητής και αποτρέπει την επανάληψη μιας έκφρασης πολλές φορές. Ο όρος let δεν έχει σαν αποτέλεσμα την επανάληψη. • O όρος “where” Ο όρος where προσδιορίζει τα κριτήρια (ένα ή περισσότερα) για την εξαγωγή ενός αποτελέσματος της Xquery. • Ο όρος “order by” Ο όρος order by ταξινομεί τα εξαγόμενα αποτελέσματα. Π.χ. θέλουμε να ταξινομήσουμε τα αποτελέσματα κατά κατηγορία και τίτλο. • Ο όρος “return” Ο όρος return προσδιορίζει τι ακριβώς πρέπει να επιστρέψει σαν απάντηση η Xquery.
4. Εκφράσεις που περιέχουν τελεστές και συναρτήσεις Η XQuery παρέχει των περισσότερων από τους τελεστές και τις λειτουργίες που μπορούν επίσης να βρεθούν σε άλλες γλώσσες υπολογιστών, συμπεριλαμβανομένων: • των αριθμητικών τελεστών, • τελεστές σύγκρισης, • τελεστέςακολουθιών • Συναρτήσεις.
Αριθμητικοί τελεστές Η XQuery υποστηρίζει, όπως είδαμε, αριθμητικούς τελεστές, όπως τα εξής: +/-,*, div, idiv και mod. Ο τελεστής div κάνει την πράξη της διαίρεσης. Ο τελεστής idiv απαιτεί ακεραίους τελεστές και δίνει σαν αποτέλεσμα ένα ακέραιο. Η χρήση τους φαίνεται στο ακόλουθο παράδειγμα το οποίο έχει ως αποτέλεσμα (4): 2 + <int>{ 2 }</int>
τελεστέςακολουθιών • Union • Intersect • Except Π.χ. for $b in doc("books.xml")//book where $b/title ="TCP/IPIllustrated” return <book> { $b/@* } { $b/* except $b/price } </book>
min(), max(), count(), avg(), sum(). distinct-values(), οι συναρτήσεις εισαγωγής doc() και collection() not() και empty() Συναρτήσεις for $b in doc("books.xml")//book where not(empty($b/author)) return $b
5. Υποθετικές εκφράσεις • Η XQuery επίσης επιτρέπει τη χρήση IF-THEN-ELSE εκφράσεων. for $b in doc("books.xml")//book return <book> { $b/title } { for $a at $i in $b/author where $i <= 2 return <author>{string($a/last), ", ", string($a/first)}</author> } { if (count($b/author) > 2) then <author>et al.</author> else () } </book>
6. Ποσοτικές εκφράσεις Οι SOME and EVERY είναι οι αποκαλούμενες ποσοτικές εκφράσεις. Μέσω της SOME έκφρασης είναι δυνατό να προσδιορίσει εάν τουλάχιστον ένας κόμβος ενός συνόλου κόμβων ικανοποιεί ένα κατηγόρημα. Η EVERY έκφραση χρησιμοποιείται για να εξετάσει εάν όλοι οι κόμβοι ενός συνόλου ικανοποιούν ένα κατηγόρημα. Π.χ: for $b in doc("books.xml")//book where every $a in $b/author satisfies ($a/last="Stevens" and $a/first="W.") return $b/title
Συμπεράσματα • Σχετικά εύκολη γλώσσα • Προσφέρει δυνατότητα επεξεργασίας και διατύπωσης πολύπλοκων ερωτημάτων • Ομοιότητα με SQL και συμβατότητα με XML XML Schema