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

Σχετικά έγγραφα
ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ερωτήσεις σε Ημι-δομημένα δεδομένα. 13/5/2008 Μ.Χατζόπουλος 1

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

Βάσεις Δεδομένων Εισαγωγή

Βάσεις δεδομένων. (9 ο μάθημα) Ηρακλής Βαρλάμης

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

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

επιµέλεια Θοδωρής Πιερράτος

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

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

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

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

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

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

Κεφάλαιο 11: Εισαγωγή στην HTML. Εφαρμογές Πληροφορικής Κεφ. 11 Καραμαούνας Πολύκαρπος

Ποιες είναι οι κύριες ετικέτες που χρησιμοποιεί η HTML για την περιγραφή της συνολικής δομής μιας ιστοσελίδας;

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

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

Πρόβλημα 29 / σελίδα 28

Θέματα ανακεφαλαίωσης

Βάσεις Δεδομένων. Εργαστήριο 1. Ηλεκτρονικοί Υπολογιστές ΙI. Ακαδημαϊκό Έτος Διαφάνεια 1. Κάπαρης Αναστάσιος

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7

Εισαγωγη στην html. Η δομή μιας ιστοσελίδας (αρχείο html) Η βασική δομή ενός αρχείου html είναι η εξής: <html> <head>

Σχεδίαση Βάσεων Δεδομένων

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

Θεωρία Κανονικοποίησης

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

Αλεξιάδης Γεώργιος (ΠΕ86) -

Διάγραμμα Οντοτήτων - Συσχετίσεων

Ψηφιακή οργάνωση πολιτισμικής πληροφορίας

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

Διάλεξη 03: Εννοιολογική Σχεδίαση Βάσης Δεδομένων I (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke

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

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Προγραμματισμός ΙI (Θ)

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

Σχεσιακό Μοντέλο Δεδομένων

7-22 Οκτωβρίου Μία γιορτή δημιουργίας με κώδικα. Europe Code Week

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ηλεκτρονικοί Υπολογιστές ΙI. Βάσεις Δεδομένων. Ακαδημαϊκό Έτος Εργαστήριο 2. Διαφάνεια 1. Κάπαρης Αναστάσιος

Βάσεις Δεδομένων (Databases)

Επαλήθευση και Βελτιστοποίηση Συστήµατος ιαχείρισης XML Εγγράφων στη Γλώσσα CLIPS

Βάσεις Δεδομένων Σύνθετα SQL queries

Σχεδίαση Βάσεων Δεδομένων

κεφάλαιο 3 Η ΓΛΩΣΣΑ XML Εισαγωγή

Προγραμματισμός I (Θ)

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Γιώργος Χρ. Μακρής. Σύγχρονες Γλώσσες Σήμανσης του Διαδικτύου. Αναπαράσταση Μαθηματικών κειμένων στο διαδίκτυο. Η Γλώσσα MathML

Προγραμματισμός I (Θ)

Βασικά στοιχεία του CSS

Βάσεις Δεδομένων Σύνθετα SQL queries. Ψευδώνυμα (Aliases) (2) Ψευδώνυμα (Aliases) (1) Ασάφεια και Πλήρη Ονόματα. Ερώτημα χωρίς τον όρο WHERE (1)

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 8: RM II. Relational Model. (Chapter )

Περιεχόμενα. Πρόλογος... xiii

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

Εισαγωγή στις Βάσεις Δεδομένων (ΒΔ)

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

Πίνακας Εικόνων. 22/04/2014 Έκδοση 3.0.1

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

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

SITEBUILDER ΠΛΑΤΦΟΡΜΑ ΑΥΤΟΝΟΜΗΣ ΚΑΤΑΣΚΕΥΗΣ & ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΑΚΩΝ ΤΟΠΩΝ (WEBSITE) ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ. Version 2.0

Εφαρμογή Διαχείρισης Ψηφιακής Πληροφορίας ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Ενδεικτικές Ερωτήσεις Θεωρίας

CSS. Εισαγωγή & Βασικές έννοιες. Cascading Style Sheets. Επικαλυπτόμενα φύλλα στυλ

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

Διάλεξη 04: Εννοιολογική Σχεδίαση Βάσης Δεδομένων II (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου

Σχεδιασμός και Ανάπτυξη Ιστοτόπων. ΕΠΑ.Λ. ΑΛΙΜΟΥ Τομέας Πληροφορικής Κ. Φλώρος

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις δεδομένων. (2 ο μάθημα) Ηρακλής Βαρλάμης

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

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

Τίτλος Εργασίας. Επώνυμο και Όνομα Πρώτου Εισηγητή (ΠΡΟΣΟΧΗ: πρώτα το Επώνυμο) Ιδιότητα, Εργασιακός Φορέας, Διεύθυνση

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

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

Προγραμματισμός Δομές Δεδομένων

Βάσεις Δεδομένων. Σταύρος Βαλσαμίδης Βάσεις Δεδομένων Διάγραμμα Ο-Σ 1

Transcript:

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

Στις παραδοσιακές βάσεις δεδομένων, η πληροφορία είναι αυστηρά δομημένη και υπακούει σε ένα σταθερό σχήμα που έχει οριστεί εκ των προτέρων. Τα δεδομένα του Ιστού μπορεί να μην έχουν κανονικότητα στην δομή και να μην υπακούν σε κάποιο ξεχωριστά ιστάμενο σχήμα. Η δομή των δεδομένων του Ιστού εξελίσσεται απρόβλεπτα και παρουσιάζει ετερογένεια με βαθύς εμφωλιασμούς. Ο όρος ημιδομημένα δεδομένα εισήχθη για να περιγράψει πληροφορία που είναι λιγότερο δομημένη από τα σχεσιακά ή τα αντικειμενοστρεφή δεδομένα, αλλά που δεν είναι εντελώς αδόμητη. Δρ. Κεραμόπουλος Ευκλείδης 3

Οι ανάγκες που μας οδήγησαν στην κατασκευή του ημιδομημένου μοντέλου ήταν οι εξής: Ενοποίηση ετερογενών πηγών δεδομένων Αναφέρεται σε δομές δεδομένων οι οποίες κατά κανόνα περιγράφουν ομοειδή αντικείμενα και ενέργειες του φυσικού κόσμου και διαφέρουν σε μικρό βαθμό μεταξύ τους. Ένα παράδειγμα είναι η ενοποίηση διάφορων βιβλιοπωλείων σε μια ενιαία βάση δεδομένων για τα βιβλία, τα περιοδικά κλπ που προσφέρουν. Κάθε βιβλιοπωλείο διατηρεί την δική του δομή, η οποία όμως δεν είναι εντελώς διαφορετική από τις υπόλοιπες δομές. Πηγές με μεταβαλλόμενο σχήμα Αναφέρεται σε περιπτώσεις όπου υπάρχει δυναμικός ορισμός των δομών. Τα δεδομένα στον παγκόσμιο ιστό εμφανίζουν τις παραπάνω ιδιότητες. Το μοντέλο δεδομένων των ημιδομημένων δεδομένων μορφολογικά είναι ένας γράφος δεδομένων για να αντιμετωπιστεί η μη κανονική δομή και ο βαθύς εμφωλιασμός. Δρ. Κεραμόπουλος Ευκλείδης 4

Τα ημιδομημένα δεδομένα μπορούν να πάρουν διάφορες μορφές: Παραλλαγές στην δομή Η δομή ίσως είναι μερική Οι τύποι είναι μόνο ενδεικτικοί Ενσωματωμένο σχήμα Το σχήμα είναι μεγάλο και αλλάζει ταχέως Εκ των υστέρων σχήμα Δρ. Κεραμόπουλος Ευκλείδης 6

Παραλλαγές στην δομή: Η ανομοιογένεια των δεδομένων μπορεί να εκδηλωθεί σαν πεδία που λείπουν (η διεύθυνση ενός ατόμου λείπει), επαναλαμβανόμενα πεδία (δύο νούμερα τηλεφώνου για το ίδιο άτομο), διαφοροποιήσεις στην αναπαράσταση (κάποιες τιμές σε ευρώ ενώ άλλες σε δολάρια). τα δεδομένα μπορούν να είναι εμφωλιασμένα σε οποιοδήποτε βάθος, Δρ. Κεραμόπουλος Ευκλείδης 7

Η δομή ίσως είναι μερική: τμήματα των δεδομένων μπορεί να μην έχουν καμία δομή (π.χ. εικόνες), ενώ άλλα τμήματα μπορεί να έχουν ελάχιστη δομή (π.χ. σκέτο κείμενο). Δρ. Κεραμόπουλος Ευκλείδης 8

Οι τύποι είναι μόνο ενδεικτικοί: Τα ημιδομημένα δεδομένα δεν υιοθετούν την αυστηρή πολιτική τύπων που συναντάμε στις παραδοσιακές βάσεις δεδομένων. Δρ. Κεραμόπουλος Ευκλείδης 9

Ενσωματωμένο σχήμα: Στα ημιδομημένα δεδομένα το σχήμα δεν υπάρχει ξεχωριστά από τα δεδομένα όπως συμβαίνει στις παραδοσιακές βάσεις δεδομένων. Για τον λόγο αυτό τα ημιδομημένα δεδομένα επειδή το σχήμα υπάρχει ενσωματωμένο στην ίδια την πληροφορία, λέγονται ά-σχημα και αυτοπεριγραφόμενα δεδομένα Δρ. Κεραμόπουλος Ευκλείδης 10

Το σχήμα είναι μεγάλο και ευέλικτο: Όσο περισσότερες οι παραλλαγές στην δομή, τόσο μεγαλύτερο γίνεται το σχήμα. Τα δεδομένα του Ιστού αλλάζουν συχνά και απρόβλεπτα, συνεπώς είναι πιθανό ότι και τα σχήματα εξελίσσονται με γρήγορο ρυθμό. Δρ. Κεραμόπουλος Ευκλείδης 11

Εκ των υστέρων σχήμα: Αντίθετα με τις παραδοσιακές βάσεις δεδομένων που γεμίζουν με βάση κάποιο προϋπάρχον σχήμα, το σχήμα στα ημιδομημένα δεδομένα εξάγεται εκ των υστέρων προκειμένου να διευκολυνθεί η προσπέλαση της πληροφορίας. Δρ. Κεραμόπουλος Ευκλείδης 12

H XML είναι το πρότυπο του W3C για τη δόμηση και ανταλλαγή δεδομένων στο Web. H XML χρησιμοποιείται για να παρέχει πληροφορίες για τη δομή των δεδομένων σε Web σελίδες παρά για να μορφοποιεί την εμφάνιση των Web σελίδων. Η XML δεν αντικαθιστά την HTML. H XML χρησιμοποιείται σαν μοντέλο για αποθήκευση και ανάκτηση βάσεων δεδομένων. Δρ. Κεραμόπουλος Ευκλείδης 14

Id Name Color 101 Interlake Blue 102 Interlake Red 103 Clipper Green 104 Marine Red Η εμφάνιση έγινε με τον Internet Explorer Δρ. Κεραμόπουλος Ευκλείδης 15

Στην πρώτη γραμμή ενός XML εγγράφου αναφέρεται η έκδοση της XML και το encoding. Είναι γλώσσα σήμανσης (markup language) η οποία βασίζεται στις ετικέτες. Δεν έχει ορισμένες προκαθορισμένες ετικέτες όπως η HTML Όλες οι ετικέτες είναι user-defined Είναι σχεδιασμένη να είναι αυτοπεριγραφόμενη. Αποθηκεύεται ως αρχείο κειμένου κάνοντας εύκολη την ανάγνωση του από διάφορες εφαρμογές/λειτουργικά κτλ. Δρ. Κεραμόπουλος Ευκλείδης 16

WSDL για περιγραφή διαθέσιμων web services WAP,WML γλώσσες σήμανσης για συσκευές χειρός RSS γλώσσες για news feeds RDF, OWL γλώσσες για το semantic web SMIL για περιγραφή πολυμέσων για το web Δρ. Κεραμόπουλος Ευκλείδης 17

Ένα XML έγγραφο έχει δομή δέντρου. Έχει υποχρεωτικά μόνο μία ρίζα και εμφωλευμένα κλαδιά Έχει τη δομή <root> <child> <subchild>. </subchild>. </child> </root> Δρ. Κεραμόπουλος Ευκλείδης 18

Η ρίζα είναι το boats boats boat id name color Δρ. Κεραμόπουλος Ευκλείδης 19

Για τη δόμηση της XML χρησιμοποιούνται δύο βασικές έννοιες: τα στοιχεία και τα γνωρίσματα Τα στοιχεία προσδιορίζονται από την ετικέτα αρχής και την ετικέτα τέλους. Τα ονόματα των ετικετών περικλείονται σε γωνιακές αγκύλες <...> Οι αγκύλες τέλους προσδιορίζονται από </ > Οι ετικέτες είναι case sensitive. Δρ. Κεραμόπουλος Ευκλείδης 20

Το όνομα ενός στοιχείου μπορεί να περιέχει Γράμματα, αριθμούς, σύμβολα Απαγορεύεται να ξεκινά με αριθμό ή σημείο στίξης Απαγορεύεται να περιέχει κενό Απαγορεύεται να ξεκινά από τη λέξη xml, XML, Xml Τα στοιχεία μπορεί να περιέχουν: Άλλα στοιχεία Κείμενο Γνωρίσματα Ένα συνδυασμό των παραπάνω Δρ. Κεραμόπουλος Ευκλείδης 21

Τα γνωρίσματα υποχρεωτικά γράφονται μέσα σε εισαγωγικά, μπορούν να χρησιμοποιηθούν είτε τα απλά ( ) είτε τα διπλά ( ). Ένα γνώρισμα προσθέτει πληροφορίες σε ένα στοιχείο, οι οποίες όμως δεν είναι τμήμα του δεδομένου αλλά είναι συνήθως επεξηγηματικές <image type="gif">leon.gif</image> <boat id ="101"> </boat> Τα γνωρίσματα δεν περιέχουν εμφωλευμένες τιμές Τα γνωρίσματα δεν έχουν δομή δέντρου Δρ. Κεραμόπουλος Ευκλείδης 22

Λύση 1 η Λύση 2 η Λύση 3 η Δρ. Κεραμόπουλος Ευκλείδης 23

Ειδικοί χαρακτήρες < αντιστοιχεί στον χαρακτήρα < > αντιστοιχεί στον χαρακτήρα > & αντιστοιχεί στον χαρακτήρα & " αντιστοιχεί στον χαρακτήρα " &apos; αντιστοιχεί στον χαρακτήρα Σχόλια <! Σχόλιο --> Κενό (δεν το «πειράζει» η XML) Δρ. Κεραμόπουλος Ευκλείδης 24

Τα πολύπλοκα στοιχεία κατασκευάζονται από άλλα στοιχεία ιεραρχικά. Τα απλά στοιχεία περιέχουν τιμές δεδομένων. Ο εμφωλιασμός των στοιχείων είναι αυστηρός. <root> <child1> <child2> </child1> </child2> </root> ΛΑΘΟΣ Δρ. Κεραμόπουλος Ευκλείδης 25

Ένα XML έγγραφο για να είναι καλά ορισμένο θα πρέπει να ακολουθεί μερικές συνθήκες: Να αναφέρει στην πρώτη γραμμή την έκδοση της XML που ακολουθεί Να ξεκαθαρίζει με το γνώρισμα standalone αν το έγγραφο ακολουθεί συγκεκριμένο σχήμα ή όχι. standalone = yes δεν ακολουθεί συγκεκριμένο σχήμα standalone = no ακολουθεί συγκεκριμένο σχήμα Θα πρέπει να ακολουθεί το συντακτικό του δενδρικού μοντέλου Να υπάρχει ένα στοιχείο ρίζα Κάθε στοιχείο να περιλαμβάνει ένα ζεύγος ετικετών αρχής και τέλους Κάθε στοιχείο να περικλείεται μέσα στις ετικέτες του κόμβου γονέα. Δεν υπάρχει προκαθορισμένο σύνολο στοιχείων Δρ. Κεραμόπουλος Ευκλείδης 26

Ένα XML έγγραφο είναι έγκυρο όταν Είναι καλά ορισμένο και Τα ονόματα των στοιχείων του ακολουθούν τη δομή ενός XML DTD (Document Type definition) ή ενός XML σχήματος. Δρ. Κεραμόπουλος Ευκλείδης 27

Ο σκοπός χρήσης ενός DTD είναι να καθορισθούν τα δομικά χαρακτηριστικά που μπορούν να χρησιμοποιηθούν σε ένα XML έγγραφο. Για τη συγγραφή του DTD χρησιμοποιείται ο συμβολισμός EBNF (Extended Backus-Naur Form), ο οποίος χρησιμοποιείται για τη δημιουργία γραμματικής Ειδικότερα, με την χρήση του DTD μπορεί να οριστούν: τα στοιχεία (το δομικό υλικό ενός DTD) που μπορεί να περιέχει ένα XML έγγραφο, οι ιδιότητες και τα χαρακτηριστικά που μπορεί να περιέχει ένα στοιχείο, η σειρά των στοιχείων μέσα στο XML έγγραφο και η ένθεση στοιχείων μέσα σε άλλα στοιχεία. Δρ. Κεραμόπουλος Ευκλείδης 29

Ένα DTD μπορεί να οριστεί εσωτερικά σε ένα XML έγγραφο ή εξωτερικά σε ένα DTD αρχείο. Η εξωτερική δήλωση έχει το πλεονέκτημα ότι μπορεί να χρησιμοποιηθεί από πολλά διαφορετικά XML έγγραφα. Δρ. Κεραμόπουλος Ευκλείδης 30

Για να δηλωθεί εσωτερικά σε ένα XML έγγραφο το DTD συντάσσεται μετά τον πρόλογο του XML εγγράφου και πριν το στοιχείο ρίζα του XML εγγράφου. ΔΗΛΩΣΗ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE στοιχείο_ρίζα [ δήλωση DTD]> <στοιχείο_ρίζα> </στοιχείο_ρίζα> ΠΑΡΑΔΕΙΓΜΑ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE employees [ <!ELEMENT employee (#PCDATA)> ]> <employees> <employee> George </employee> </employees> Δρ. Κεραμόπουλος Ευκλείδης 31

Για να δηλωθεί εξωτερικά το DTD αρχείο αποθηκεύεται σε ένα αρχείο με κατάληξη «.dtd». Εξωτερική δήλωση DTD σε συγκεκριμένο κατάλογο <?xml version="1.0"?> <!DOCTYPE documentelement SYSTEM "c:/temp/όνομα_αρχείου.dtd"> Εξωτερική δήλωση DTD το οποίο βρίσκεται σε μία διεύθυνση στο διαδίκτυο. <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE Customers SYSTEM "http://aetos.it.teithe.gr/~euclid/temp/όνομα_αρχείου.dtd"> Δρ. Κεραμόπουλος Ευκλείδης 32

Για τη δημιουργία ενός DTD μπορούν να χρησιμοποιηθούν οι παρακάτω τέσσερις τύποι δηλώσεων: στοιχείων (ELEMENT), λίστα ιδιοτήτων (ATTLIST), οντοτήτων (ENTITIES), σημειώσεων (NOTATION). Δρ. Κεραμόπουλος Ευκλείδης 33

Για να δηλώσουμε ένα στοιχείο χρησιμοποιούμε τη δήλωση <!ELEMENT> με την παρακάτω μορφή: <!ELEMENT όνομα_στοιχείου μοντέλο_περιεχομένου> Tο μοντέλο περιεχομένου ενός στοιχείου μπορεί να είναι: κάποιο άλλο στοιχείο, ένας τύπος, κάποιος κανόνας. Δρ. Κεραμόπουλος Ευκλείδης 34

Ειδικότερα, στο μοντέλο περιεχομένου ενός στοιχείου μπορούν να χρησιμοποιηθούν τα παρακάτω: Απλό κείμενο (#PCDATA), Η λέξη κλειδί EMPTY, Λίστα στοιχείων (στοιχεία παιδιά), Η λέξη κλειδί ΑΝΥ, Ειδικοί τελεστές Δρ. Κεραμόπουλος Ευκλείδης 35

Για να οριστεί σε ένα στοιχείο απλό κείμενο χρησιμοποιείται η λέξη κλειδί PCDATA. Παράδειγμα: Θα δηλωθεί στο DTD <!ELEMENT customer (#PCDATA)> και στο XML έγγραφο θα χρησιμοποιηθεί: <customer> Aristotelis Onassis </customer> Δρ. Κεραμόπουλος Ευκλείδης 36

Με τη χρήση της λέξης κλειδί EMPTY ορίζεται ένα κενό στοιχείο. Παράδειγμα: Θα δηλωθεί στο DTD <!ELEMENT customers EMPTY> και στο XML έγγραφο θα χρησιμοποιηθεί: <customers> </customers > <customers /> Δρ. Κεραμόπουλος Ευκλείδης 37

Όταν ένα στοιχείο περιέχει άλλα στοιχεία τότε δηλώνονται τα ονόματα των στοιχείων μέσα σε παρένθεση χωρισμένα με κόμμα. Παράδειγμα: Θα δηλωθεί στο DTD <!ELEMENT customers (name, surname)> <!ELEMENT name (#PCDATA)> <!ELEMENT surname (#PCDATA)> και στο XML έγγραφο θα χρησιμοποιηθεί: <customers> <name> Aristotelis </name> <surname> Onassis </surname> </customers> Δρ. Κεραμόπουλος Ευκλείδης 38

Με τη χρήση της λέξης κλειδί ANY ορίζεται ένα στοιχείο χωρίς να οριστεί ο τύπος του. Παράδειγμα: Θα δηλωθεί στο DTD <!ELEMENT customers ANY> και στο XML έγγραφο θα χρησιμοποιηθεί: οποιοδήποτε περιεχόμενο Δρ. Κεραμόπουλος Ευκλείδης 39

Για τη δημιουργία πολύπλοκων μορφών XML στοιχείων χρησιμοποιούνται ειδικοί τελεστές. Με τη χρήση των τελεστών είναι δυνατόν να ορισθούν επαναλήψεις ενός στιγμιότυπου, επιλογές ανάμεσα σε διάφορους τύπους και να δηλωθούν μεικτοί τύποι. Δρ. Κεραμόπουλος Ευκλείδης 40

Με τον ειδικό τελεστή * ορίζεται ότι ένα στοιχείο μπορεί να επαναληφθεί από μηδέν έως άπειρες φορές. παράδειγμα: <!ELEMENT customers (customer*)> Δρ. Κεραμόπουλος Ευκλείδης 41

Με τον ειδικό τελεστή + ορίζεται ότι ένα στοιχείο μπορεί να επαναληφθεί από μία έως άπειρες φορές. παράδειγμα: <!ELEMENT customers (customer+)> Δρ. Κεραμόπουλος Ευκλείδης 42

Με τον ειδικό τελεστή? ορίζεται ότι ένα στοιχείο μπορεί να επαναληφθεί από μηδέν έως μία φορές. παράδειγμα: <!ELEMENT customers (customer?)> Δρ. Κεραμόπουλος Ευκλείδης 43

Με τον ειδικό τελεστή ορίζεται η επιλογή. Έτσι, είναι δυνατόν στον ορισμό του τύπου να οριστούν περισσότερες από μία μορφές ενός στοιχείου. παράδειγμα: <!ELEMENT employee (full_time part_time)> <!ELEMENT full_time μοντέλο_περιεχομένου> <!ELEMENT part_time μοντέλο_περιεχομένου> Δρ. Κεραμόπουλος Ευκλείδης 44

Επίσης, ο ειδικός τελεστής μπορεί να χρησιμοποιηθεί για να δηλωθεί μεικτό περιεχόμενο. Δηλαδή, είναι δυνατόν ένα στοιχείο να περιέχει και απλό κείμενο και κάποιο άλλο στοιχείο, σε διαφορετικό του όμως στιγμιότυπο. παράδειγμα, <!ELEMENT employee ((#PCDATA) full_time part_time)*> <employee> Director <full_time> </full_time> </employee> Δρ. Κεραμόπουλος Ευκλείδης 45

Στα XML έγγραφα είναι πολύ σημαντική η σειρά που τοποθετούνται τα στοιχεία. Για να οριστεί η σειρά σε ένα DTD αρχείο ακολουθείται η σύνταξη που φαίνεται στο παρακάτω παράδειγμα: <!ELEMENT employee ((name)+, (surname)+,(age)?, (address)*)*> Στο συγκεκριμένο παράδειγμα το στοιχείο employee αποτελείται από τέσσερα στοιχεία, τα name, surname, age και address. Στο XML έγγραφο σε ένα στοιχείο employee θα πρέπει τα στοιχεία από τα οποία αποτελείται να εμφανιστούν υποχρεωτικά με την σειρά που δηλώθηκαν. Δρ. Κεραμόπουλος Ευκλείδης 46

Επιπλέον, σε ένα DTD μπορεί να δηλωθεί ένα στοιχείο ότι αποτελείται από σύνθετα υποστοιχεία. Παράδειγμα <!ELEMENT employee ((name)+, (surname)+,(age)?, (road, number, Postal_Code, City, Country)*)*> Δρ. Κεραμόπουλος Ευκλείδης 47

Για να δηλωθούν οι ιδιότητες ενός στοιχείου χρησιμοποιείται η δήλωση <!ATTLIST>. Η δομή της δήλωσης των ιδιοτήτων ενός στοιχείου είναι: <!ATTLIST όνομα_στοιχείου Όνομα_ιδιότητας 1 Τύπος Αρχική_τιμή Όνομα_ιδιότητας 2 Τύπος Αρχική_τιμή Όνομα_ιδιότητας 3 Τύπος Αρχική_τιμή > Δρ. Κεραμόπουλος Ευκλείδης 48

Η Αρχική_τιμή έχει τέσσερις τύπους : Μία τιμή δηλωμένη μέσα σε διπλές αποστρόφους ( ). <!ATTLIST employee Gender CDATA "Female"> Η τιμή #REQUIRED. Αυτή η τιμή δηλώνει ότι απαιτείται μία τιμή για τη συγκεκριμένη ιδιότητα του στοιχείου χωρίς να δοθεί συγκεκριμένη αρχική τιμή <!ATTLIST employee Gender CDATA #REQUIRED> Η τιμή #IMPLIED. Αυτή η τιμή δηλώνει ότι η ιδιότητα είναι προαιρετική (δεν απαιτείται εισαγωγή τιμής για την ιδιότητα) και δεν της έχει δοθεί αρχική τιμή. <!ATTLIST employee Gender CDATA #IMPLIED> Η τιμή #FIXED. Αυτή η τιμή δηλώνει ότι η ιδιότητα είναι υποχρεωτικό να πάρει αρχική τιμή, η οποία δεν μπορεί να αλλάξει. <!ATTLIST employee Gender CDATA #FIXED "Female"> Δρ. Κεραμόπουλος Ευκλείδης 49

Είναι τύπος αλφαριθμητικού το οποίο δεν περιέχει δηλώσεις markup. Παράδειγμα: <!ATTLIST employee Gender CDATA "Female"> Συνήθως χρησιμοποιείται για πολύ μεγάλο κείμενο και έτσι είναι σύνηθες σε CDATA να περιλαμβάνεται κώδικας,όπως για παράδειγμα κώδικας javascript. Δρ. Κεραμόπουλος Ευκλείδης 50

Σε ένα DTD μπορεί να δηλωθεί μία οντότητα η οποία αντιστοιχεί σε ένα αντικείμενο το οποίο έχει δηλωθεί εσωτερικά ή εξωτερικά στο DTD. Η δήλωση της οντότητας στο DTD γίνεται ως εξής <!ENTITY όνομα ορισμός> και χρησιμοποιείται στο XML έγγραφο ως ακολούθως &όνομα; Δρ. Κεραμόπουλος Ευκλείδης 51

Παράδειγμα 1: Με εσωτερική δήλωση της οντότητας στο DTD. <?xml version="1.0" standalone="yes"?> <!DOCTYPE employees [ <!ELEMENT employees (employee*)> <!ELEMENT employee (#PCDATA)> <!ATTLIST employee photo ENTITY #IMPLIED> <!ENTITY emp1 "George Blue"> <!ENTITY emp2 "Maria Red"> ]> <employees> <employee> &emp1; </employee> <employee> &emp2;</employee> </employees> Δρ. Κεραμόπουλος Ευκλείδης 52

Παράδειγμα 2: Με εξωτερική δήλωση της οντότητας στο DTD. <?xml version="1.0" standalone="yes"?> <!DOCTYPE employees [ <!ELEMENT employees (employee*)> <!ELEMENT employee (#PCDATA)> <!ATTLIST employee photo ENTITY #IMPLIED> <!ENTITY geo_photo SYSTEM "george.jpg"> <!ENTITY mar_photo SYSTEM "maria.jpg"> ]> <employees> <employee photo=&geo_photo;> </employee> <employee photo=&maria_photo;> </employee> </employees> Δρ. Κεραμόπουλος Ευκλείδης 53

Enumerated. Με χρήση του συγκεκριμένου τύπου δηλώνονται μία σειρά από προκαθορισμένες τιμές που μπορεί να πάρει η ιδιότητα. Η δήλωση δίνεται ως εξής: <!ATTLIST όνομα_στοιχείου Όνομα_ιδιότητας (τιμή1 τιμή2 τιμή3) αρχική_τιμή> Παράδειγμα: <!ATTLIST Department location (center east west north) east> Δρ. Κεραμόπουλος Ευκλείδης 54

Μία ιδιότητα, η οποία έχει δηλωθεί με τύπο ID δεν επιτρέπεται να έχει την ίδια τιμή παραπάνω από μία φορά μέσα στο XML έγγραφο για το συγκεκριμένο στοιχείο που δηλώθηκε. Η δήλωση λοιπόν δίνεται ως εξής: <!ATTLIST όνομα_στοιχείου Όνομα_ιδιότητας ID αρχική_τιμή> Δρ. Κεραμόπουλος Ευκλείδης 55

Παράδειγμα: Η δήλωση στο DTD <!ATTLIST employee Employee_id ID #REQUIRED> Η χρήση του στο XML έγγραφο. <employees> <employee employee_id = A001 > <name> George Blue </name> </employee> <employee employee_id = A002 > <name> Maria Red </name> </employee> </employees> Δρ. Κεραμόπουλος Ευκλείδης 56

Μία ιδιότητα, η οποία έχει δηλωθεί με τύπο IDREF αναφέρεται σε ένα άλλο στοιχείο του οποίου η ιδιότητα με τύπο ID έχει την ίδια τιμή. Ουσιαστικά μία ιδιότητα με τύπο IDREF θα μπορούσε να παραλληλισθεί με το ξένο κλειδί ενός πίνακα στο σχεσιακό μοντέλο. Έτσι, ένα XML έγγραφο το οποίο περιέχει μία ιδιότητα με τύπο IDREF, για να είναι valid θα πρέπει να υπάρχει ιδιότητα σε στιγμιότυπο του ίδιου στοιχείου με τύπο ID, το οποίο έχει την ίδια τιμή. Η δήλωση λοιπόν δίνεται ως εξής: <!ATTLIST όνομα_στοιχείου Όνομα_ιδιότητας IDREF αρχική_τιμή> Δρ. Κεραμόπουλος Ευκλείδης 57

Παράδειγμα: Η δήλωση στο DTD <!ATTLIST employee employee_id ID #REQUIRED> <!ATTLIST employee manager_id IDREF #IMPLIED> Η χρήση του στο XML έγγραφο. <employees> <employee employee_id = A001 > <name> George Blue </name> </employee> <employee employee_id = A002 manager_id = A001 > <name> Maria Red </name> </employee> </employees> Δρ. Κεραμόπουλος Ευκλείδης 58

Μία ιδιότητα με τύπο NOTATION χρησιμοποιείται για να επιτρέψει την εισαγωγή μη XML δεδομένων σε ένα XML έγγραφο. Δηλαδή, ο τύπος NOTATION περιγράφει τον τύπο εξωτερικών δεδομένων (όπως εικόνα, βίντεο κτλ) σε ένα XML έγγραφο. Συνήθως, η μορφή που έχουν τα δεδομένα τύπου NOTATION ακολουθούν τους MIME (Multipurpose Internet Mail Extensions) τύπους όπως image/gif, image/jpeg κτλ. Πλήρης λίστα με MIME τύπους δίνεται από το W3 στην ιστοσελίδα http://www.w3schools.com/tags/att_link_type.asp. Η δήλωση λοιπόν δίνεται ως εξής: <!ATTLIST όνομα_στοιχείου Όνομα_ιδιότητας NOTATION SYSTEM MIME τύπος> Δρ. Κεραμόπουλος Ευκλείδης 59

Η δήλωση στο DTD <!NOTATION GIF SYSTEM "image/gif"> <!NOTATION JPG SYSTEM "image/jpeg"> <!NOTATION PNG SYSTEM "image/png"> <!ATTLIST employee photo ENTITY #IMPLIED photo_type NOTATION (GIF JPG PNG) #IMPLIED> <!ENTITY geo_photo SYSTEM "george.gif"> <!ENTITY mar_photo SYSTEM "maria.jpg"> Η χρήση του στο XML έγγραφο. <employees> <employee photo=&geo_photo; photo_type = "GIF" /> <employee> photo=&maria_photo; photo_type = "JPG" /> </employees> Δρ. Κεραμόπουλος Ευκλείδης 60

1. <!DOCTYPE εργα [ 2. <!ELEMENT εργα (εργο+)> 3. <!ELEMENT εργο (Εονομα, Αριθμος, Τοποθεσια, ΚωδΤμημ?, Εργαζομενοι)> 4. <!ELEMENT Εονομα (#PCDATA)> 5. <!ELEMENT Αριθμος (#PCDATA)> 6. <!ELEMENT Τοποθεσια (#PCDATA)> 7. <!ELEMENT ΚωδΤμημ (#PCDATA)> 8. <!ELEMENT Εργαζομενοι(Εργαζομενος*)> 9. <!ELEMENT Εργαζομενος(ΑρΤαυτ, Επιθετο?, Ονομα?, ωρες)> 10. <!ELEMENT ΑρΤαυτ (#PCDATA)> 11. <!ELEMENT Επιθετο (#PCDATA)> 12. <!ELEMENT Ονομα (#PCDATA)> 13. <!ELEMENT ωρες (#PCDATA)> 14. ]> Δρ. Κεραμόπουλος Ευκλείδης 61

Στην γραμμή 1: Δίνεται ένα όνομα στην ετικέτα της ρίζας «εργα» Στις γραμμές 2-13: Προσδιορίζονται τα στοιχεία και η εμφωλευμένη δομή τους. Στην γραμμή 2: Το σύμβολο «+» που ακολουθεί το όνομα ενός στοιχείου σημαίνει ότι το στοιχείο μπορεί να επαναληφθεί 1 ή περισσότερες φορές στο έγγραφο. Στην γραμμή 3: Το σύμβολο «?» που ακολουθεί το όνομα ενός στοιχείου σημαίνει ότι το στοιχείο μπορεί να επαναληφθεί 0 ή μία φορά στο έγγραφο. Στην γραμμή 8: Το σύμβολο «*» που ακολουθεί το όνομα ενός στοιχείου σημαίνει ότι το στοιχείο μπορεί να επαναληφθεί 0 ή περισσότερες φορές στο έγγραφο. Δρ. Κεραμόπουλος Ευκλείδης 62

Όταν δεν χρησιμοποιείται κάποιο από τα παραπάνω σύμβολα τότε το στοιχείο πρέπει να εμφανιστεί μία φορά Ο τύπος του στοιχείου ορίζεται με παρενθέσεις που ακολουθούν το στοιχείο. Αν οι παρενθέσεις περιλαμβάνουν: Ονόματα άλλων στοιχείων, αυτά είναι παιδιά του στοιχείου Τη λέξη-κλειδί #PCDATA (ή κάποιον άλλον από τους διαθέσιμους τύπους της XML) το στοιχείο είναι κόμβος φύλο. Το #PCDATA χρησιμοποιείται για να αποθηκευτούν όλοι οι απλοί συνηθισμένοι τύποι, όπως αλφαριθμητικά, αριθμοί κτλ. Όταν χρησιμοποιείται το σύμβολο, π.χ. ε1 ε2 τότε μπορεί να εμφανιστεί είτε το ε1 είτε το ε2. Δρ. Κεραμόπουλος Ευκλείδης 63