Αναπαράςταςθ Γνϊςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 2: XML Δομθμζνα Ζγγραφα Ιςτοφ, Μζροσ 2 ο - DTD Ιωάννθσ Χατηθλυγεροφδθσ Πολυτεχνικι Σχολι Τμιμα Μθχ/κϊν Η/Υπολογιςτϊν & Πλθροφορικισ
Περιεχόμενα ενότθτασ Μζροσ 2 ο XML DTD Οριςμόσ Δόμθςθσ XML Δόμθςθ με DTD 2/23
Οριςμόσ Δόμθςθσ Ανάγκθ για χριςθ κοινοφ «λεξιλογίου» ςτοιχείων και χαρακτθριςτικϊν για «επικοινωνία» διαφορετικϊν εφαρμογϊν. Που ςθμαίνει: o Οριςμόσ ονομάτων ςτοιχείων και χαρακτθριςτικϊν που κα χρθςιμοποιθκοφν o Οριςμόσ δομισ των ςτοιχείων και χαρακτθριςτικϊν (π.χ. ποιεσ οι επιτρεπόμενεσ τιμζσ των χαρακτθριςτικϊν, ποια ςτοιχεία μποροφν να εμφανίηονται μζςα ςε άλλα ςτοιχεία κλπ) 3/23
Ζγκυρο Ζγγραφο XML Ζνα ζγγραφο XML είναι ζγκυρο αν είναι ςωςτά δομθμζνο, χρθςιμοποιεί δομικζσ πλθροφορίεσ και τισ εφαρμόηει. 4/23
Τρόποι Οριςμοφ Δόμθςθσ DTD (Document Type Definition) o Παλαιότεροσ o Πιο περιοριςμζνοσ XML Schema o Νεϊτεροσ o Πλουςιότεροσ Τα ςυςτατικά ενόσ DTD μποροφν να οριςτοφν ςε ξεχωριςτό αρχείο (εξωτερικό DTD) ι μζςα ςτο ίδιο ζγγραφο XML (εσωτερικό DTD). Προτιμότερο το εξωτερικό. 5/23
DTD-Στοιχεία (1) ςτοιχείο (του lecturer) <lecturer> <name>ioannis Chatzis</name> <phone>+302610994555</phone> </lecturer> τφποσ ςτοιχείου (lecturer) Αντίςτοιχο DTD <!ELEMENT lecturer (name, phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT phone (#PCDATA)> 6/23
DTD-Στοιχεία (2) <!ELEMENT lecturer (name, phone)> (ο τφποσ ςτοιχείου lecturer περιζχει ζνα ςτοιχείο name και ζνα ςτοιχείο phone μ αυτι τθ ςειρά) <!ELEMENT lecturer (name phone)> (ο τφποσ ςτοιχείου lecturer περιζχει είτε ζνα ςτοιχείο name είτε ζνα ςτοιχείο phone) <!ELEMENT lecturer ((name, phone) (phone, name))> (ο τφποσ ςτοιχείου lecturer περιζχει ζνα ςτοιχείο name και ζνα ςτοιχείο phone με οποιαδιποτε ςειρά)- προβλθματικό για πολλά ςτοιχεία 7/23
DTD-Χαρακτθριςτικά <order orderno="23456" customer="john Doe" date="october 15, 2015"> <item itemno="a528" quantity="1"/> <item itemno="c817" quantity="3"/> </order> <!ELEMENT order (item+)> <!ATTLIST order orderno ID #REQUIRED customer CDATA #REQUIRED date CDATA #REQUIRED> quantity CDATA #REQUIRED comments CDATA #IMPLIED> τελεςτισ πλθκικότθτασ (cardinality operators) Τφποσ ςτοιχείων που μπορεί να χρθςιμοποιθκεί θ λίςτα λίςτα χαρακτθριςτικϊν (attribute list) <!ELEMENT item EMPTY> ονόματα χαρακτθριςτικϊν <!ATTLIST item τφποι χαρακτθριςτικϊν τφποι τιμϊν itemno ID #REQUIRED Ο οριςμόσ χαρακτθριςτικοφ γίνεται μζςω μιασ λίστας χαρακτηριστικών 8/23
DTD-Χαρακτθριςτικά Τελεςτζσ πλθκικότθτασ o? : εμφάνιςθ καμία ι μία o * : εμφάνιςθ καμία ι περιςςότερεσ o + : εμφάνιςθ μία ι περιςςότερεσ o : ζλλειψθ τελεςτι ςθμαίνει ακριβϊσ μια εμφάνιςθ Τφποι χαρακτθριςτικϊν o (P)CDATA : αλφαρικμθτικό ((με) χωρίσ parsing) o ID : μοναδικό όνομα o IDREF/IDREFS : αναφορά/εσ ςε άλλο/α ςτοιχείο/α με χαρακτθριςτικό ID o (v1 vn) : απαρίκμθςθ τιμϊν 9/23
DTD-Χαρακτθριςτικά Τφποι τιμϊν o #REQUIRED : το χαρακτθριςτικό αυτό πρζπει να υπάρχει ςε κάκε εμφάνιςθ του τφπου o #IMPLIED : προαιρετικι εμφάνιςθ χαρακτθριςτικοφ (π.χ. ςχόλια) o #FIXED value : Κάκε ςτοιχείο πρζπει να ζχει αυτό το χαρακτθριςτικό, που ζχει πάντα τθν τιμι value (προκακοριςμζνθ τιμι) o value : Προεπιλεγμζνθ τιμι χαρακτθριςτικοφ (μπορεί να επικαλυφκεί από τιμι του χριςτθ) 10/23
DTD-Χαρακτθριςτικά Αναφορζσ (αφοροφν τα IDREF, IDREFS) DTD αρχείο <!ELEMENT family (person*)> <!ELEMENT person (name)> <!ELEMENT name (#PCDATA)> <!ATTLIST person id ID #REQUIRED mother IDREF #IMPLIED father IDREF #IMPLIED children IDREFS #IMPLIED> 11/23
DTD-Χαρακτθριςτικά XML αρχείο <family> <person id="bob" mother="mary father="peter"> <name>bob Marley</name> </person> <person id="bridget" mother="mary"> <name>bridget Marley</name> </person> <person id="mary" children="bob bridget"> <name>mary Poppins</name> </person> <person id="peter" children="bob bridget"> <name>peter Marley</name> </person> </family> 12/23
DTD-Χαρακτθριςτικά Οντότθτεσ XML o Παίηουν διάφορουσ ρόλουσ Δεςμευτικό κζςθσ επαναλαμβανόμενων χαρακτιρων Τμιμα εξωτερικϊν δεδομζνων Μζροσ διλωςθσ ςτοιχείων Τυπικι χριςθ: ςαν ςτακερζσ o Σφνταξθ <!ENTITY <entity-name> <entity-value>> Παράδειγμα: <!ENTITY "thisyear 2015"> &thisyear; 13/23
DTD-Χαρακτθριςτικά Τελικό παράδειγμα <!ELEMENT email (head, body)> <!ELEMENT head (from, to+, cc*, subject)> <!ELEMENT from EMPTY> <!ATTLIST from name CDATA #IMPLIED address CDATA #REQUIRED> <!ELEMENT to EMPTY> <!ATTLIST to name CDATA #IMPLIED address CDATA #REQUIRED> 14/23
DTD-Χαρακτθριςτικά <!ELEMENT cc EMPTY> <!ATTLIST cc name CDATA #IMPLIED address CDATA #REQUIRED> <!ELEMENT subject (#PCDATA)> <!ELEMENT body (text, attachment*)> <!ELEMENT text (#PCDATA)> <!ELEMENT attachment EMPTY> <!ATTLIST attachment encoding (mime binhex) mime file CDATA #REQUIRED> 15/23
DTD-Χαρακτθριςτικά Root ρίηα (root) email Στοιχείο-ρίηα (root element) head body from to subject name address name address Ioannis Chatzis ioannis@aigrou p.gr Nikos Ioannou nick@upat.g Deadline Extension Hello Nick, the new deadline 16/23
DTD-Χαρακτθριςτικά Χριςθ ωσ ςθμειογραφία BNF <!ELEMENT email (head, body)> email ::= head body Δυνατότθτα αναδρομικϊν οριςμϊν <!ELEMENT bintree ((bintree root bintree) emptytree)> 17/23
Χρθματοδότθςθ Το παρόν εκπαιδευτικό υλικό ζχει αναπτυχκεί ςτo πλαίςιo του εκπαιδευτικοφ ζργου του διδάςκοντα. Το ζργο «Ανοικτά Ακαδθμαϊκά Μακιματα ςτο Πανεπιςτιμιο Ακθνών» ζχει χρθματοδοτιςει μόνο τθν αναδιαμόρφωςθ του εκπαιδευτικοφ υλικοφ. Το ζργο υλοποιείται ςτο πλαίςιο του Επιχειρθςιακοφ Προγράμματοσ «Εκπαίδευςθ και Δια Βίου Μάκθςθ» και ςυγχρθματοδοτείται από τθν Ευρωπαϊκι Ζνωςθ (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εκνικοφσ πόρουσ. 18/23
Σθμείωμα Ιςτορικοφ Εκδόςεων Ζργου Το παρόν ζργο αποτελεί τθν ζκδοςθ 1.0. 19/23
Σθμείωμα Αναφοράσ Copyright: Πανεπιςτιμιον Πατρϊν, Ιωάννθσ Χατηθλυγεροφδθσ, 2015. «Αναπαράςταςθ Γνϊςθσ ςτον Παγκόςμιο Ιςτό. XML». Ζκδοςθ: 1.0. Πάτρα 2015. Διακζςιμο από τθ δικτυακι διεφκυνςθ: https://eclass.upatras.gr/courses/ceid1098/ 20/23
Σθμείωμα Αδειοδότθςθσ Το παρόν υλικό διατίκεται με τουσ όρουσ τθσ άδειασ χριςθσ Creative Commons Αναφορά, Μθ Εμπορικι Χριςθ Παρόμοια Διανομι 4.0 *1+ ι μεταγενζςτερθ, Διεκνισ Ζκδοςθ. Εξαιροφνται τα αυτοτελι ζργα τρίτων π.χ. φωτογραφίεσ, διαγράμματα κ.λ.π., τα οποία εμπεριζχονται ςε αυτό και τα οποία αναφζρονται μαηί με τουσ όρουσ χριςθσ τουσ ςτο «Σθμείωμα Χριςθσ Ζργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ωσ Μθ Εμπορικι ορίηεται θ χριςθ: που δεν περιλαμβάνει άμεςο ι ζμμεςο οικονομικό όφελοσ από τθν χριςθ του ζργου, για το διανομζα του ζργου και αδειοδόχο που δεν περιλαμβάνει οικονομικι ςυναλλαγι ωσ προχπόκεςθ για τθ χριςθ ι πρόςβαςθ ςτο ζργο που δεν προςπορίηει ςτο διανομζα του ζργου και αδειοδόχο ζμμεςο οικονομικό όφελοσ (π.χ. διαφθμίςεισ) από τθν προβολι του ζργου ςε διαδικτυακό τόπο Ο δικαιοφχοσ μπορεί να παρζχει ςτον αδειοδόχο ξεχωριςτι άδεια να χρθςιμοποιεί το ζργο για εμπορικι χριςθ, εφόςον αυτό του ηθτθκεί.
Διατιρθςθ Σθμειωμάτων Οποιαδιποτε αναπαραγωγι ι διαςκευι του υλικοφ κα πρζπει να ςυμπεριλαμβάνει: το Σθμείωμα Αναφοράσ το Σθμείωμα Αδειοδότθςθσ τθ διλωςθ Διατιρθςθσ Σθμειωμάτων το Σθμείωμα Χριςθσ Ζργων Τρίτων (εφόςον υπάρχει) μαηί με τουσ ςυνοδευόμενουσ υπερςυνδζςμουσ. 22/23
Σθμείωμα Χριςθσ Ζργων Τρίτων Οι διαφάνειεσ είναι κατά μεγάλο μζροσ βαςιςμζνεσ ςτο βιβλίο "Ειςαγωγι ςτον Σθμαςιολογικό Ιςτό", των Grigoris Antoniou και Frank van Harmelen, Β' ΖΚδοςθ, 2009 (Ελλθνικι Ζκδοςθ). 23/23