ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

Σχετικά έγγραφα
ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

ΝΤUA. Τεχνολογία Πολυμέσων

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 5: XML. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

Βάσεις Δεδομένων ΙΙ. Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Σημασιολογικός Ιστός (Semantic Web) - XML

SGML (Standard Generalized Markup Language) HTML (HyperText Markup Language) XML (extensible Markup Language)

3. Επερώτηση XML Εγγράφων: Η Γλώσσα XPath

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ

ΝΤUA. Τεχνολογία Πολυμέσων

ΔΟΜΗΜΕΝΗ ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΛΗΡΟΦΟΡΙΩΝ

Σημασιολογικός Ιστός (Semantic Web) - XML

Μοντέλο. για ημι-δομημένα μημ δεδομένα. Ημι-δομημένα δεδομένα XML DTD XML Schema

Μαθηματικά Λογισμικά και Γλώσσες Αναπαράστασης Γνώσης

5. Επερώτηση XML Εγγράφων: Εισαγωγή στη Γλώσσα XQuery

<address>αδριανείου 2, Νέο Ψυχικό, 11525, Αθήνα</adderss> <address>

ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

ΜΕΡΟΣ II: XML DTD XML Namespaces XML Schema

Εισαγωγή(στη(γλώσσα(XML(

Βάσεις ιαδικτύου. Θέματα. Εισαγωγή στην XML. Ευρετήρια για την Ανάκτηση Κειμένων. Ο αλγόριθμος HITS. είναι η XML. Παράδειγμα XML

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

XML related standards

Σημασιολογικός Ιστός (Semantic Web) - XML

Δομημένη Αναπαράσταση Πληροφοριών

Σημασιολογικός Ιστός (Semantic Web) - XML

Άσκηση 1. Απάντηση Άσκησης 1

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Εισαγωγή XML: Extensible Markup Language Ορίστηκε από το WWW Consortium (W3C) ως συµπλήρωµα της HTML. εν σχεδιάστηκε για βάσεις δεδοµένων αλλά για δια

της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εισαγωγή στην Επιστήμη και Τεχνολογία των Υπηρεσιών

Σχεδιασμός Βάσεων Δεδομένων

Γλωσσική Τεχνολογία. HTML/XML Processing HTTP Services

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Ανάπτυξη και Σχεδίαση Λογισμικού

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Ο ΗΓΟΣ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΚΜΗΡΙΩΣΗΣ ΚΑΙ ΙΑΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑΣ

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Σημασιολογικός Ιστός (Semantic Web) - XML

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Μεταδεδομένα στο Ψηφιακό περιβάλλον

Εργαστήριο 8. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Ανάπτυξηλογισμικού υλοποίησης του ανοικτού πρότυπου EPCALEv1.1 για εφαρμογές RFID

Εργαστήριο 9. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο. Στόχος. Προετοιμασία περιβάλλοντος εργασίας

ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

DELETE, UPDATE, INSERT

DELETE, UPDATE, INSERT.

Δομημένη Αναπαράσταση Πληροφοριών

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση. Στη δήλωση ορισμό κανονικών εκφράσεων

«Διαδικτυακό Σύστημα Ηλεκτρονικής Διαχείρισης και Διάθεσης Μαθημάτων»

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

Μοντέλο Οντοτήτων-Συσχετίσεων

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο -

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

ΔΙΑΣΥΝΔΕΣΗ ΚΑΙ ΔΗΜΟΣΙΕΥΣΗ ΔΕΔΟΜΕΝΩΝ ΔΗΜΟΣΙΩΝ ΚΑΙ ΙΔΙΩΤΙΚΩΝ ΦΟΡΕΩΝ ΜΕ ΧΡΗΣΗ ΤΗΣ XML

Σχεδιασμός Βάσεων Δεδομένων

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων

ΕΙΣΑΓΩΓΗ ΣΤΗΝ HTML. Decode, ISSEL. Θεοδόσης Σουργκούνης Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Προγραμματισμός Ι (ΗΥ120)

Εισαγωγή στον Προγραμματισμό

Ηλεκτρονικοί Υπολογιστές II

ΕΥΦΥΗΣ ΔΙΑΧΕΙΡΙΣΗ XML ΔΕΔΟΜΕΝΩΝ ΜΕ ΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PROLOG

Ημερομηνία Παράδοσης: 4/4/2013

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES

Σχεδίαση Σχεσιακών ΒΔ

Περιγραφή Μαθήματος. Περιγραφή Περιεχόμενο του Μαθήματος

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενα: Βάσεις δεδομένων, σχέσεις μεταξύ πινάκων, ερωτήματα, φόρμες και αναφορές.

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

Διπλωματική Εργασία Διάθεση πολυμέσων σε ετερογενή δίκτυα κατά

Οδηγίες Ακολουθήστε τα παρακάτω βήματα. Βεβαιωθείτε ότι το πρόγραμμά σας δουλεύει σωστά σε κάθε βήμα, πριν προχωρήσετε στο επόμενο.

App Inventor. Εφαρμογή 7 η. Υπολογισμός Μέσου όρου μαθημάτων Επέκταση: Πέρασα ή δεν πέρασα? Version 2

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Οδηγίες Καταχώρησης Τεκμηρίου

Λειτουργικές - Τεχνικές Προδιαγραφές για το σύστημα Πρωτοκόλλου

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML Εργαστήρια 2-3 Στουγιάννου Ελευθερία estoug@unipi.gr

Περιεχόμενα Δεύτερου & Τρίτου Εργαστηριακού Μαθήματος Ορίζοντας διαλέκτους Δενδρική Δομή και Ασκήσεις CDATA και Ασκήσεις Namespaces και Ασκήσεις DTDs DTD Ασκήσεις XML επεξεργασία Parsers Well-formed XML documents Valid XML documents Ασκήσεις

XML Δενδρική Δομή (1/2) Η XML ως δενδρική δομή Κάθε xml έγγραφο (document) ενέχει την ιεραρχική σχέση πατέρα (parent node) παιδιών (child nodes), ξεκινώντας από το root element που είναι ο πατέρας όλων. Κάθε xml έγγραφο μπορεί να παρουσιαστεί ως μία δενδρική δομή. Παράδειγμα απλού εγγράφου XML: Δενδρική Αναπαράσταση εγγράφου XML: <?xml version="1.0"?> <contact-info> <name>jane Smith</name> <company>att</company> <phone>(212) 555-4567</phone> </contact-info> Contact-info Πρόγονος Παιδί Παιδί Παιδί name company phone Αδέρφια

XML Δενδρική Δομή (2/2) Δενδρική Δομή του 1 ου Element του XML Εγγράφου

Παράδειγμα 1 Άσκηση Δενδρικής Δομής (1/4) Γράψτε ένα XML έγγραφο, χωρίς όμως να χρησιμοποιήσετε attributes, και το οποίο να περιλαμβάνει την εξής πληροφορία: Το μικρό όνομα ενός ατόμου είναι Alan, το επίθετό του είναι Turing και τα επαγγέλματά του είναι επιστήμονας πληροφορικής, μαθηματικός και κρυπτογράφος. Δημιουργήστε το δενδρικό σχήμα του παραπάνω εγγράφου. Τροποποιήστε το έγγραφο, ώστε το μικρό όνομα και το επίθετο να είναι attributes του element του ονόματος.

Παράδειγμα 1 Άσκηση Δενδρικής Δομής (2/4) <person> <name> <first_name>alan</first_name> <last_name>turing></last_name> </name> <profession>computer scientists</profession> <profession>mathematician</profession> <profession>cryptographer</profession> </person>

Παράδειγμα 1 Άσκηση Δενδρικής Δομής (3/4)

Παράδειγμα 1 Άσκηση Δενδρικής Δομής (4/4) <person first_name= Alan last_name= Turing > <profession>computer scientists</profession> <profession>mathematician</profession> <profession>cryptographer</profession> </person>

Παράδειγμα 2 Άσκηση Δενδρικής Δομής (1/5) Έστω ότι για την περιγραφή ενός τηλεφωνικού καταλόγου είναι απαραίτητα τα παρακάτω πεδία: Ονοματεπώνυμο, Τηλέφωνο Οικίας, Κινητό τηλέφωνο, Διεύθυνση, Ηλεκτρονική Διεύθυνση. Τα στοιχεία Ονοματεπώνυμο και Διεύθυνση αποτελούνται από επιπλέον πεδία που τα περιγράφουν πλήρως. Για το Ονοματεπώνυμο είναι απαραίτητα τουλάχιστον το Όνομα και το Επώνυμο και για την Διεύθυνση είναι απαραίτητα η Οδός, ο Αριθμός, ο ΤΚ και η Περιοχή. Να δοθεί πλήρης περιγραφή και δενδρική αναπαράσταση της παραπάνω δομής και να αναφερθούν όλες οι παραδοχές που έγιναν για τον τύπο των δεδομένων και για την συχνότητα εμφάνισης του κάθε πεδίου. Επίσης, να δοθεί ένα παράδειγμα XML αρχείου.

Παράδειγμα 2 Άσκηση Δενδρικής Δομής (2/5) Δενδρική Αναπαράσταση

Παράδειγμα 2 Άσκηση Δενδρικής Δομής (3/5) Δενδρική Αναπαράσταση

Παράδειγμα 2 Άσκηση Δενδρικής Δομής (4/5) Παραδοχές Για λόγους απλότητας κάνουμε την παραδοχή ότι ο τύπος των δεδομένων για όλα τα στοιχεία φύλλα του δένδρου θα είναι τύπου string. Επιπλέον, γίνεται η υπόθεση ότι όλα τα στοιχεία του δένδρου είναι απαραίτητα ακόμη και τα στοιχεία Όνομα και Επώνυμο, όπου ανήκουν στο στοιχείο Ονοματεπώνυμο και απαιτείται να εμφανίζονται τουλάχιστον μια φορά. Όλα τα στοιχεία πρέπει να εμφανίζονται με τη σειρά που απεικονίζεται στη δενδροειδή αναπαράσταση.

Παράδειγμα 2 Άσκηση Δενδρικής Δομής (5/5) Παράδειγμα XML Αρχείου <?xml version="1.0" encoding="utf-8"?> <Τηλεφωνικός_Κατάλογος> <Ονοματεπώνυμο> <Όνομα>Ελευθερία</Όνομα> <Επώνυμο>Στουγιάννου</Επώνυμο> </Ονοματεπώνυμο> <Τηλέφωνο_Οικίας>2100000000</Τηλέφωνο_Οικίας> <Κινητό_Τηλέφωνο>6970000000</Κινητό_Τηλέφωνο> <Διεύθυνση> <Οδός>Ακαδημίας</Οδός> <Αριθμός>12</Αριθμός> <ΤΚ>14350</ΤΚ> <Περιοχή>Αθήνα</Περιοχή> </Διεύθυνση> <Ηλεκτρονική_Διεύθυνση> estoug@unipi.gr </Ηλεκτρονική_Διεύθυνση> </Τηλεφωνικός_Κατάλογος>

Σύνταξη & Χρήση Τμήματος CDATA στην XML (1/3) Υπάρχουν χαρακτήρες που δεν μπορούν να χρησιμοποιηθούν στις τιμές των elements και attributes. Αντί για αυτούς χρησιμοποιούνται οι αντίστοιχες entity αναφορές (entity references). Αν στο κείμενο XML πρέπει να συμπεριλάβουμε έναν μεγάλο αριθμό από ειδικούς χαρακτήρες ( <, >, & ) και δε θέλουμε να χρησιμοποιούμε πολλές entity αναφορές, επιλέγουμε τη χρήση του CDATA (character data). Μας διευκολύνει, γιατί δε χρειάζεται να αντικαθιστούμε κάθε φορά τον ειδικό χαρακτήρα με μια entity αναφορά. Ο XML Parser αγνοεί τους χαρακτήρες που βρίσκονται εντός της CDATA ενότητας. Η σύνταξη της ενότητας CDATA είναι η εξής: <![CDATA[ Κείμενο * ]]> *όπου, το κείμενο μπορεί να περιέχει οποιουσδήποτε χαρακτήρες επιθυμούμε και δεν ελέγχεται από τον XML parser.

Σύνταξη & Χρήση Τμήματος CDATA στην XML (2/3) Τα τμήματα CDATA (CDATA sections) στην XML χρησιμοποιούνται συνηθέστερα για την εισαγωγή εντολών κάποιας script γλώσσας, όπως η Javascript, και οριοθετούνται με τα strings <![CDATA[ και ]]>, π.χ. <script> <![CDATA[ function matchwo(a,b) { if (a < b && a < 0) then { return 1; } else { return 0; } } ]]> </script>

Σύνταξη & Χρήση Τμήματος CDATA στην XML (2/3) Χρήση του CDATA

XML Namespaces (1/2) Τα XML Namespaces αποτελούν μία μέθοδο για να αποφεύγονται οι συγκρούσειςσυμπτώσεις (conflicts) των κοινών ονομάτων των elements. Π.χ. δύο elements από δύο διαφορετικά xml έγγραφα χρησιμοποιούν το ίδιο όνομα. Όταν θα χρειαστεί να ενοποιηθούν τα δύο αυτά έγγραφα, αν δεν χρησιμοποιηθούν namespaces, τότε θα έχουμε conflicts στην προσπέλαση. Tα ονόματα των elements ενός αρχείου χαρακτηρίζονται από μια ετικέτα (super label). Π.χ. το f: <f:table xmlns:f="http://www.w3schools.com/furniture"> <f:name>african Coffee Table</f:name> </f:table> Το label αυτό (π.χ. το f) ονομάζεται namespace και αποτελεί το όνομα της συλλογής elements του αρχείου με το ίδιο όνομα. Το όνομα ενός namespace παίρνει τη μορφή ενός URI (π.χ. http://www.w3schools.com/furniture). Το namespace URI δεν χρησιμοποιείται από τον parser για να αναζητήσει την πληροφορία. Μοναδικός του σκοπός: να δοθεί ΜΟΝΑΔΙΚΟ όνομα στο xml namespace.

XML Namespaces (2/2) Χρησιμοποιούμε ένα ειδικό xmlns attribute για να ορίσουμε το namespace. Συντακτικό Ορισμού namespace: xmlns:prefix="uri" Πολλαπλές Δηλώσεις Namespaces

Άσκηση XML Namespaces Χρήση Default Namespaces

XML PARSERS - XML VALIDATION

XML Parsers (1/2) Για να μπορέσουμε να προσπελάσουμε και να διαχειριστούμε τα nodes ενός xml document θα πρέπει να χρησιμοποιήσουμε έναν parser. O parser πρέπει να πιστοποιήσει ότι τα XML δεδομένα είναι ορισμένα συντακτικώς σωστά. Όπως λέμε τα δεδομένα να είναι well-formed (η ελάχιστη απαίτηση για να είναι XML). Ένας parser πρέπει να σταματά την επεξεργασία αν τα δεδομένα δεν είναι well-formed (καλός ορισμένα) π.χ. σταμάτα την επεξεργασία και εμφανίζει ένα exception στην XML-based εφαρμογή. Υπάρχουν δύο γενικές κατηγορίες xml parsers: SAX (Simple API for XML parser): είναι ένας μονής κατεύθυνσης (one pass) σειριακός parser, ο οποίος εκτελεί ενέργειες ανάλογα με τα γεγονότα (events) που συναντάει. Τέτοια events μπορεί να είναι ένα element node ή ένα text node. DOM parser: χτίζει στην μνήμη την αντίστοιχη δενδρική δομή όλου του xml document, τους κόμβους, του οποίου μπορεί να προσπελάσει προς κάθε δυνατή κατεύθυνση.

XML Parsers (2/2) Διαφορές Οι SAX parsers είναι γρήγοροι και με πολύ λιγότερες απαιτήσεις σε μνήμη επιτρέποντας την επεξεργασία πολύ μεγάλων xml documents. Οι DOM parsers είναι απλούστεροι, απαιτώντας λιγότερες κλήσεις μεθόδων για την προσπέλαση και την διαχείριση των κόμβων και ιδανικοί όταν η δενδρική δομή πρέπει να διαπεραστεί πολλές φορές και σε διαφορετικές κατευθύνσεις : http://www.openhealth.org/astm/msxmlvalid.html 1ος Τύπος PARSER: Validating parser (Parser επικύρωσης) Πρέπει να ανακτήσουν όλες τις οντότητες και να επεξεργαστούν τα περιεχόμενα όλων των DTDs. Τερματίζουν την επεξεργασία και επιστρέφουν επιτυχία ή αποτυχία. Ελέγχουν για τη συμβατότητα του XML κειμένου με το DTD ως προς άλλες παραμέτρους, όπως για παράδειγμα συντακτικοί κανόνες. 2ος Τύπος PARSER: Non-validating parser (Parse μη επικύρωσης) Ο parser πιστοποιεί απλά ότι τα δεδομένα είναι well-formed XML.

XML Validation (1/2) Ορθά διαμορφωμένο έγγραφο XML (WELL-FORMED XML DOCUMENT) -> Είναι αυτό που έχει σωστή σύνταξη (βλ. Κανόνες Σύνταξης XML Εργαστήριο 1-): Έχει ένα root element Τα XML Elements πρέπει να έχουν μια ετικέτα αρχής (opening tag) και μια ετικέτα τέλους (closing tag) Οι XML ετικέτες είναι case sensitive Τα XML Elements δεν επικαλύπτονται, πρέπει να είναι σωστά εμφωλευμένα Τα attributes ενός element έχουν μοναδικά ονόματα και απαιτούν εισαγωγικά. Έγκυρο XML έγγραφο (VALID XML DOCUMENT) Το Valid XML ακολουθεί τους γενικούς κανόνες σύνταξης της XML, ενώ παράλληλα προσκολλάται σε ένα DTD ή σε ένα XML Schema. Θα αναφερθούμε στις επόμενες διαφάνειες πιο αναλυτικά για τα DTDs & XML Schemas.

XML Validation (2/2) Ένα έγκυρο (valid) έγγραφο XML: Well-Formed + DTD (ή XML Schema) DTD ( Document Type Definition - Ορισμός Τύπου Εγγράφου) Ορισμός όλων των ονομάτων των elements και attributes που μπορούν να χρησιμοποιηθούν στο XML έγγραφο. Ορισμός της δομής: Ποιες τιμές μπορεί να πάρει κάθε attribute, ποια elements μπορούν ή πρέπει να βρίσκονται μέσα σε άλλα elements. XML Schema Νεότερη τεχνολογία Χρησιμοποιεί τη σύνταξη της XML.

Βήματα για τη Δημιουργία Well-Formed XML Documents ΒΗΜΑ 1 Γράφουμε την XML δήλωση ΒΗΜΑ 2 Προσθέτουμε ένα root element ΒΗΜΑ 3 Γράφουμε σε XML (συνεχίζουμε με τα child elements και κλείνουμε το root element) ΒΗΜΑ 4 Ελέγχουμε αν το έγγραφο μας είναι ορθά διαμορφωμένο --> Αν εμφανίζεται σε έναν browser, ανεξάρτητα αν το έχουμε συνδέσει με ένα.css ή ένα.xsl έγγραφο (δηλαδή, εμφανίζει το πλήρες κείμενο με τη σήμανση), τότε είναι well-formed. ΕΑΝ ΕΝΑ ΕΓΓΡΑΦΟ ΔΕΝ ΕΙΝΑΙ WELL-FORMED, ΔΕΝ ΘΕΩΡΕΙΤΑΙ XML ΕΓΓΡΑΦΟ...

Άσκηση 1 -Well-Formed XML Documents (1/2) Δίνεται το παρακάτω XML αρχείο. Είναι καλά ορισμένο; Αν όχι διορθώστε τυχόν λάθη.

Άσκηση 1 -Well-Formed XML Documents (2/2) Το παρακάτω XML αρχείο ΔΕΝ είναι καλά ορισμένο.

Άσκηση 2 -Well-Formed XML Documents (1/5) Η φόρμα του δελτίου δανεισμού βιβλίων από τη βιβλιοθήκη του πανεπιστημίου έχει την εξής μορφή: Να δοθεί η δενδρική αναπαράσταση του παραπάνω δελτίου και να γίνουν οι παραδοχές για τον τύπο δεδομένων του κάθε πεδίου και για την συχνότητα εμφάνισής τους. Επίσης, να δοθεί ένα παράδειγμα XML αρχείου χρησιμοποιώντας μόνο elements και ένα παράδειγμα XML αρχείου χρησιμοποιώντας και attributes.

Άσκηση 2 -Well-Formed XML Documents (2/5) Δενδρική Αναπαράσταση

Άσκηση 2 -Well-Formed XML Documents (3/5) Παραδοχές Ο ταξινομικός αριθμός και ο κωδικός χρήστη είναι μοναδικά ορισμένοι αριθμοί. Δηλαδή, κάθε χρήστης και κάθε βιβλίο έχει από έναν μοναδικό αριθμό που τα χαρακτηρίζει. Η XML παρέχει την ιδιότητα ID, προκειμένου να αναπαραστήσει μοναδικά ορισμένη πληροφορία.

Άσκηση 2 -Well-Formed XML Documents (4/5) XML Αρχείο A Τρόπος (με χρήση elements ) XML έγγραφο που αναπαριστά το δενδρικό διάγραμμα: <?xml version="1.0" encoding="utf-8"?> <Δελτίο> <Βιβλίο> <Ταξινομικός_Αριθμός>Χ2054</Ταξινομικός_Αριθμός> <Συγγραφέας>John Doe</Συγγραφέας> <Συγγραφέας>Mary Doe</Συγγραφέας> <Τίτλος>XML</Τίτλος> <Ημερομηνία>2011</Ημερομηνία> </Βιβλίο> <Χρήστης> <Κωδικός_Χρήστη>ΜΤΕ0915</Κωδικός_Χρήστη> </Χρήστης> </Δελτίο>

Άσκηση 2 -Well-Formed XML Documents (5/5) XML Αρχείο Β Τρόπος (με χρήση attributes ) XML έγγραφο που αναπαριστά το δενδρικό διάγραμμα: <?xml version="1.0" encoding="utf-8"?> <!--Κωδικός_χρήστη, Ταξινομικός_Αριθμός ως attributes στα elements Χρήστης και Βιβλίο, αντίστοιχα--> <Δελτίο> <Βιβλίο Ταξινομικός_Αριθμός= X2054 > <Συγγραφέας>John Doe</Συγγραφέας> <Συγγραφέας>Mary Doe</Συγγραφέας> <Τίτλος>XML</Τίτλος> <Ημερομηνία>2011</Ημερομηνία> </Βιβλίο> <Χρήστης Κωδικός_Χρήστη= MTE0915 /> </Δελτίο>

Άσκηση 3 -Well-Formed XML Documents (1/2) Έστω για την περιγραφή των πανεπιστημιακών μαθημάτων είναι απαραίτητα τα παρακάτω πεδία: Τίτλος μαθήματος, κωδικός μαθήματος, πανεπιστήμιο, τμήμα, καθηγητής, έτος, εξάμηνο και βιβλίο που διανέμεται. Τα στοιχεία «καθηγητής» και «βιβλίο» αποτελούνται από επιπλέον πεδία που τα περιγράφουν πλήρως. Για τον καθηγητή είναι απαραίτητο τουλάχιστον το ονοματεπώνυμο και το e-mail του, ενώ για την περιγραφή του βιβλίου είναι απαραίτητα ο τίτλος, ο συγγραφέας, ο εκδότης και το έτος έκδοσης. Να γραφεί το XML έγγραφο.

Άσκηση 3 -Well-Formed XML Documents (2/2) XML Έγγραφο <?xml version="1.0" encoding="utf-8"?> <Μάθημα> <Τίτλος_Μαθήματος>Αποθήκες και Εξόρυξη Δεδομένων</Τίτλος_Μαθήματος> <Κωδικός_Μαθήματος>ΤΕ256</Κωδικός_Μαθήματος> <Πανεπιστήμιο>Πανεπιστήμιο Πειραιώς</Πανεπιστήμιο> <Τμήμα>Ψηφιακών Συστημάτων</Τμήμα> <Καθηγητής> <Ονοματεπώνυμο>Χαλκίδη Μαρία</Ονοματεπώνυμο> <Email>mchalk@unipi.gr</Email> </Καθηγητής> <Έτος>3</Έτος> <Εξάμηνο>5</Εξάμηνο> <Βιβλίο> <Τίτλος>Οδηγός της XML με παραδείγματα</τίτλος> <Συγγραφέας>Benoit Marchal</Συγγραφέας> <Εκδότης>B. Γκιούρδας Εκδοτική</Εκδότης> <Έτος_Έκδοσης>2000</Έτος_Έκδοσης> </Βιβλίο> </Μάθημα >

Άσκηση 4 -Well-Formed XML Documents (1/2) H δενδρική αναπαράσταση, η οποία περιγράφει ηλεκτρονικά βιβλία που υπάρχουν δημοσιευμένα στο Internet, φαίνεται σχηματικά παρακάτω. Να δημιουργηθεί το XML έγγραφο που περιγράφει ένα ηλεκτρονικό βιβλίο με βάση την παρακάτω δενδρική αναπαράσταση.

Άσκηση 4 -Well-Formed XML Documents (2/2) XML Έγγραφο

DTDs

Document Type Definitions (DTD) - 1- H XML δίνει τη δυνατότητα στο χρήστη να δηλώσει το ρόλο κάθε element στο κείμενο, με formal τρόπο, μέσω πρόσθετων συντακτικών εντολών. Το σύνολο αυτών των εντολών συνθέτουν ένα DTD. Το DTD δεν είναι υποχρεωτικό. Δηλαδή, ένα XML αρχείο μπορεί να έχει ή να μην έχει DTD. Όταν χρησιμοποιείται όμως DTD, ο parser μπορεί να ελέγξει την λογική ορθότητα στη δομή του κειμένου, σύμφωνα με το DTD. Το DTD επιβάλει επιπλέον κανόνες για την well-formed δομή του κειμένου. Ένα DTD αποτελεί ένα σχήμα για XML δεδομένα, προσδιορίζοντας ποια elements και ποια attributes είναι υποχρεωτικά ή προαιρετικά. Υπάρχουν τα εσωτερικά DTDs και τα εξωτερικά DTDs. Ένα έγκυρο XML (valid XML) έγγραφο περιέχει ένα DTD. Συντακτικό DTD Αρχείου

Document Type Definitions (DTD) -2 - Παράδειγμα XML Αρχείο: <?xml version="1.0" encoding="utf-8"?> <mobile_phone> <name>sony Xperia</name> <price>200</price> </mobile_phone> Συντακτικό DTD Αρχείου DTD: <!ELEMENT mobile_phone (name,price)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)>

DTD Εσωτερικά DTDs Εάν το DTD συμπεριλαμβάνεται στο XML αρχείο, τότε ακολουθείται η παρακάτω σύνταξη: <!DOCTYPE root-element [element-declarations]> Παράδειγμα εσωτερικού DTD: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE mobile_phone [ <!ELEMENT mobile_phone (name,price)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)> ]> <mobile_phone> <name>sony Xperia</name> <price>200</price> </mobile_phone> The DTD The document

DTD Εξωτερικά DTDs Εάν το DTD δεν συμπεριλαμβάνεται στο XML αρχείο, τότε ακολουθείται η παρακάτω σύνταξη: Παράδειγμα εξωτερικού DTD: <!DOCTYPE root-element SYSTEM "filename"> <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE mobile_phone SYSTEM "mobile_phone.dtd"> <mobile_phone> <name>sony Xperia</name> <price>200</price> </mobile_phone> Το περιεχόμενο του mobile_phone.dtd είναι το παρακάτω: <?xml version="1.0" encoding="utf-8"?> <!ELEMENT mobile_phone (name,price)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)>

Άλλο Παράδειγμα DTD

DTD Ορισμός Element DTD <!ELEMENT Professor (name, phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT phone (#PCDATA)> XML Έγγραφο <Professor> <name>gr.mentzas </name> <phone>210-7723895 </phone> </Professor> Τι σημαίνουν τα παραπάνω: Τα element types Professor, name και phone μπορούν να χρησιμοποιηθούν στο XML έγγραφο. Ένα element Professor περιέχει ένα element name και ένα element phone, με αυτή την σειρά. Κάθε στοιχείο που εμφανίζεται σε ένα XML αρχείο πρέπει να δηλωθεί και στο DTD. Τα elements, name και phone μπορούν να έχουν οποιοδήποτε περιεχόμενο (#PCDATA PCDATA [parsed character data] είναι κείμενο που θα προωθηθεί από τον parser, που σημαίνει ότι το κείμενο ελέγχεται για οντότητες και markup, άρα οι χαρακτήρες &, < και > θα αναπαρασταθούν από τις οντότητες & < και > αντίστοιχα). Αν ένα element Professor είχε είτε ένα element phone, είτε ένα element name, ο σωστός ορισμός στο DTD θα ήταν: <!ELEMENT Professor (name phone) >

Δηλώσεις Τύπου Στοιχείων

DTD - Δηλώσεις Τύπου Στοιχείων: Παράδειγμα <!ELEMENT s(a, b?, c*)> Δηλώνεται ότι: κάθε στοιχείο με ετικέτα s που εμφανίζεται σε ένα έγκυρο xml έγγραφο, περιλαμβάνει ένα ακριβώς στοιχείο με ετικέτα α ακολουθούμενο προαιρετικά από ένα το πολύ στοιχείο με ετικέτα b, και στη συνέχεια από οσοδήποτε μεγάλο πλήθος (μπορεί και μηδέν) στοιχείων με ετικέτα c. <!ELEMENT e ( (c?, d)* (d, c)*)> Δηλώνεται ότι: κάθε στοιχείο με ετικέτα e που εμφανίζεται σε ένα έγκυρο xml έγγραφο, περιλαμβάνει (i) μία ακολουθία από (μηδέν ή περισσότερα) ζεύγη στοιχείων c, d από τα οποία το c είναι προαιρετικό, είτε (ii) μία ακολουθία από (μηδέν ή περισσότερα) ζεύγη στοιχείων d, c.

DTD Ορισμός Attribute (1/2) Για κάθε στοιχείο μπορούμε να δηλώσουμε ιδιότητες (attributes) που το προσδιορίζουν. Για κάθε στοιχείο συνήθως δηλώνονται όλες οι ιδιότητές του σε ένα σημείο, χρησιμοποιώντας μια «λίστα δήλωσης ιδιοτήτων». Σύνταξη Ιδιοτήτων (Attributes) Στοιχείων: Παράδειγμα: <!ELEMENT order (item+)> <!ATTLIST order orderno ID #REQUIRED customer CDATA #REQUIRED> <!ELEMENT item EMPTY> <!ATTLIST item itemno ID #REQUIRED quantity CDATA #REQUIRED> <!ATTLIST όνομα-στοιχείου όνομα-ιδιότητας τύπος-ιδιότητας προκαθορισμένη-τιμή> DTD XML Έγγραφο <order orderno= 234 customer= Babis > <item itemno= a52 quantity= 1 /> <item itemno= a53 quantity= 2 /> </order>

DTD Ορισμός Attribute (2/2) DTD <!ELEMENT order (item+)> <!ATTLIST order orderno ID #REQUIRED customer CDATA #REQUIRED> <!ELEMENT item EMPTY> <!ATTLIST item itemno ID #REQUIRED quantity CDATA #REQUIRED> XML Έγγραφο <order orderno= 234 customer= Babis > <item itemno= a52 quantity= 1 /> <item itemno= a53 quantity= 2 /> </order> Το element item ορίζεται ως EMPTY. To + μετά το item, στον ορισμό του order, είναι ένα πιθανό προσδιοριστικό cardinality (Αν δεν υπάρχει προσδιοριστικό σημαίνει ακριβώς μία φόρα):? : Μία ή καμία φορά * : Καμία ή περισσότερες φορές + : Μία ή περισσότερες φορές

DTD Attribute Types Πρόκειται για προ-ορισμένους τύπους δεδομένων. Οι πιο σημαντικοί είναι: CDATA (ακολουθία χαρακτήρων (character data)): είναι κείμενο που ΔΕΝ θα προωθηθεί από τον parser, οπότε οι οντότητες δεν θα αντικατασταθούν. ID: μοναδικό προσδιοριστικό. (ν1... νn): απαρίθμηση όλων των πιθανών τιμών.

DTD Value Types of Attributes Υπάρχουν τέσσερις τύποι τιμών: #REQUIRED. Το attribute πρέπει να εμφανίζεται πάντα με το αντίστοιχο element type. Π.χ. Τα attributes itemno και quantity πρέπει να εμφανίζονται πάντα σε ένα element item. #IMPLIED. Η ύπαρξη αυτού του attribute είναι προαιρετική. #FIXED. Το attribute αυτό εμφανίζεται πάντα και η τιμή του δίνεται μετά το #FIXED στο DTD. value. Καθορίζει την default τιμή για το attribute. Η ύπαρξη μιας συγκεκριμένης τιμής στο XML έγγραφο υπερισχύει έναντι της default τιμής.

Παράδειγμα - Άσκηση Έστω το παρακάτω: Το lecturer element περιέχει το name element και το phone element (με αυτή τη σειρά). Το name element και το phone element μπορούν να έχουν οποιοδήποτε περιεχόμενο. (α) Πώς θα δηλώσουμε ότι το lecturer element περιέχει είτε το name element είτε το phone element; <!ELEMENT lecturer (name phone)> (β) Πώς θα δηλώσουμε ότι το lecturer element περιέχει το name element και το phone element με οποιαδήποτε σειρά; <!ELEMENT lecturer ((name, phone) (phone,name))>

Άσκηση - Ερώτημα 1 (well-formed xml) Δίνεται το παρακάτω XML αρχείο. 1. Είναι καλά ορισμένο; Αν όχι διορθώστε τυχόν λάθη.

Άσκηση - Ερώτημα 1 Λύση (well-formed xml) 1. Το παρακάτω XML αρχείο ΔΕΝ είναι καλά ορισμένο. Σωστή Σύνταξη: <AUTHOR ID= 3 > <LASTNAME>Widom</LASTNAME> </AUTHOR> Σωστή Σύνταξη: <NUM>1</NUM>

Άσκηση - Ερώτημα 2 (DTD & XML) 2. Για το καλά ορισμένο XML αρχείο του πρώτου ερωτήματος σας δίνεται το παρακάτω DTD. α) Αλλάξτε το DTD, ώστε να ταιριάζει στο XML αρχείο. β) Αλλάξτε το XML αρχείο, ώστε να ταιριάζει στο DTD.

Άσκηση - Ερώτημα 2 Λύση (DTD & XML) 2. Για τα συγκεκριμένα υποερωτήματα υπάρχουν πολλές πιθανές απαντήσεις. Μία πιθανή λύση θα ήταν η παρακάτω: α) Αλλαγή του DTD, ώστε να ταιριάζει στο XML αρχείο. 1. Προσθέτουμε μέσα στο LASTNAME, το FIRSTNAME, σαν ένα πιθανό στοιχείο. <!ELEMENT LASTNAME (#PCDATA FIRSTNAME)*> 2. Προσθέτουμε πολλαπλά στοιχεία TEXT μέσα σε ένα στοιχείο CHAPTER. <!ELEMENT CHAPTER (NUM, TITLE, TEXT+)> 3. Μετατρέπουμε το στοιχείο TEXT σε προαιρετικό για το στοιχείο INTRODUCTION. <!ELEMENT INTRODUCTION (TITLE, TEXT?)> 4. Επιτρέπουμε να υπάρχουν πολλά στοιχεία AUTHOR μέσα σε ένα στοιχείο BOOK. <!ELEMENT BOOK (TITLE, AUTHOR+, INTRODUCTION?, CHAPTER+)> 5. Μετατρέπουμε την ιδιότητα ID του AUTHOR σε προαιρετική. <!ATTLIST AUTHOR ID #IMPLIED>

Άσκηση - Ερώτημα 2 Λύση (DTD & XML) β) Αλλαγή του XML αρχείου, ώστε να ταιριάζει στο DTD. 1. Διαγράφουμε εντελώς το στοιχείο FIRSTNAME ή το μετακινούμε μετά το στοιχείο LASTNAME. <LASTNAME>Garcia-Molina</LASTNAME> ή <LASTNAME>Garcia-Molina</LASTNAME> <FIRSTNAME>HECTOR</FIRSTNAME> 2. Για κάθε στοιχείο BOOK επιτρέπεται να υπάρχει ένα ή κανένα στοιχείο AUTHOR. Άρα, από τα 3 στοιχεία AUTHOR που υπάρχουν κρατάμε μόνο το ένα.

Άσκηση - Ερώτημα 2 Λύση (DTD & XML) β) Αλλαγή του XML αρχείου, ώστε να ταιριάζει στο DTD. 3. Αν κρατήσουμε το στοιχείο AUTHOR που δεν έχει ID και σβήσουμε τα άλλα δυο (παραπάνω αλλαγή) θα πρέπει να προσθέσουμε μια ιδιότητα ID στο στοιχείο AUTHOR που έχει απομείνει. <AUTHOR ID= 2 ><LASTNAME>Ullman</LASTNAME></AUTHOR> 4. Προσθέτουμε ένα στοιχείο TEXT στο στοιχείο INTRODUCTION. <INTRODUCTION> <TITLE>Introduction to Databases</TITLE> <TEXT>We add the text element.</text> </INTRODUCTION>

Άσκηση - Ερώτημα 2 Λύση (DTD & XML) β) Αλλαγή του XML αρχείου, ώστε να ταιριάζει στο DTD. 3. Διαγράφουμε ένα στοιχείο TEXT από το τελευταίο στοιχείο CHAPTER. <CHAPTER> <NUM>1</NUM> <TITLE>The Entity-Relationship Data Model</TITLE> <TEXT>Then we move to design principles</text> </CHAPTER>

Ερωτήσεις??