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



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

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

BibConvert μετατροπές LOM

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

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

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

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

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

Μια εισαγωγή στην XSL

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

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I

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

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

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

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος

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

Αυτοματοποιημένη χαρτογραφία

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

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

<a href=" στο κείμενο</a>.

Κείμενο ASCII Unicode - HTML. Κωδικοποίηση ASCII / Unicode HTML

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

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

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

Η γλώσσα HTML. Επιμέλεια: Δέγγλερη Σοφία

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

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

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

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

Γραπτή εξέταση. Γαβαλάς Δαμιανός Δικτυακά Πολυμέσα ΙΙ Διάλεξη #12 η : Επανάληψη, προετοιμασία για τις γραπτές εξετάσεις

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

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές

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

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

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

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

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

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

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

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

Διαδίκτυο και Εφαρμογές 2η Άσκηση Μετασχηματισμοί XML και XSL. Γιαννέλος Γιάννης ΑΜ: Μαρινέλλης Γιώργος ΑΜ:

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

Τι διαφορά έχει μια ιστοσελίδα του Διαδραστικού Ιστού web 2.0 από εκείνη του Στατικού Ιστού web 1.0;

Εργαστήριο #10 (Ε10) 1

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

Βασίλειος Κοντογιάννης ΠΕ19

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

Άσκηση 6 Επαναληπτική Άσκηση HTML

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

ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΣΧΕΔΙΑΣΜΟΥ ΕΦΑΡΜΟΓΩΝ

Η εκπόνηση της εργασίας θα γίνει σε ομάδες των 2-3 ατόμων

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

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

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

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός

Διαχείριση Δεδομένων

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ

4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

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

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

Σχεδίαση και Ανάπτυξη Ιστότοπων

Ref.: SLWS 1 5Copyright 2005 The European Computer Driving Licence Foundation Ltd Σελίδα 1 από 7

Σύστημα Παροχής Πληροφοριών κατ Απαίτηση από Ετερογενείς Πηγές Πληροφορίας στο Διαδίκτυο

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

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

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

Ανάκτηση Πληροφορίας

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

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

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

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας

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

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

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

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

Διασύνδεση και Άνοιγμα Δεδομένων του Α.Π.Θ. Καραογλάνογλου Κωνσταντίνος Μονάδα Σημασιολογικού Ιστού Α.Π.Θ 18/3/2014

ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ - ΕΝΟΤΗΤΑ 1 7/4/2013 ΕΝΟΤΗΤΕΣ ΜΑΘΗΜΑΤΟΣ. Ορισμός

Επεξεργασία Ερωτήσεων

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services

Βασίλειος Κοντογιάννης ΠΕ19

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας.

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

Γαβαλάς Δαμιανός Δικτυακά Πολυμέσα ΙΙ Εργαστήριο #3 0 : Εισαγωγή στacascading Style Sheets (CSS)

CSS Εργαστήριο 1. Εισαγωγή - Σύνταξη - Εφαρμογή στην HTML

Oracle Map Viewer. Θεματολογία. Χαρτογραφική απεικόνιση από β.δ.

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

Επεξεργασία Ερωτήσεων

ΕΙΣΑΓΩΓΗ ΣΤΗΝ HTML ΣΧΟΛΙΚΟ ΒΙΒΛΙΟ ΚΕΦΑΛΑΙΟ 11 Ευάγγελος Χ. Ζιούλας (Καθηγητής Πληροφορικής)

Μητρώο [.gr] Οδηγός ιασύνδεσης. Αξιοποίησης του Εξυπηρετητή EPP. Έκδοση 2.0. [ EPP Server Connection and Use Guide ]

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Transcript:

... το μαγικό βοτάνι. κεφάλαιο 3 Η ΓΛΩΣΣΑ XML Εισαγωγή Η γλώσσα XML (extensible Markup Language) αποτελεί σήμερα ένα ευρέως διαδεδομένο πρότυπο για την περιγραφή και ανταλλαγή δεδομένων. Η XML έχει αναπτυχθεί και συντηρείται από το W3C (World Wide Web Consortium), και αποτελεί υποσύνολο ενός προτύπου κατά ISO, της γλώσσας SGML (Standard Generalized Markup Language). H επιτυχία της XML οφείλεται στα ακόλουθα χαρακτηριστικά: (α) είναι ανεξάρτητη από υλικό και λογισμικό, (β) διατίθεται δωρεάν, (γ) είναι αναγνώσιμη από τους χρήστες, (δ) είναι διαρκώς αναπτυσσόμενη, (ε) είναι επεκτάσιμη, και (ζ) υποστηρίζεται από πληθώρα εφαρμογών και εργαλείων. Αν και σχεδιάστηκε αρχικά για να υποστηρίξει αλφαριθμητικές εφαρμογές (βιβλιοθηκών, τραπεζών, κ.ά.), σήμερα το πρότυπο αυτό έχει υιοθετηθεί ευρέως και σε εφαρμογές που εμπλέκουν μη-παραδοσιακά δεδομένα (π.χ., χωρικά, πολυμέσων, κά.). Η γλώσσα XML διαδραματίζει ένα σημαντικό ρόλο στις χαρτογραφικές και γεωγραφικές εφαρμογές στον Παγκόσμιο Ιστό και κερδίζει συνεχώς έδαφος έναντι των άλλων προτύπων ανταλλαγής γεωγραφικών δεδομένων. Πολλά ευρέως διαδεδομένα πρότυπα, όπως οι γλώσσες GML (Geography Markup Language), SVG (Scalar Vector Graphics), KML (Keyhole Markup Language), RSS (Rich Site Summary), CML (Chemical Markup Language), SAOP (Simple Object Access Protocol), XHTML (extensible HTML), X3D/VRML (Virtual Reality Markup Language) κά., βασίζονται στο πρότυπο της XML.

34 ΚΕΦΑΛΑΙΟ 3 Στις Ενότητες που ακολουθούν παρουσιάζονται τα βασικά χαρακτηριστικά της γλώσσας XML και οι εφαρμογές που έχει αυτή στην περιγραφή και ανταλλαγή γεωγραφικών δεδομένων. Τα επόμενα τρία Κεφάλαια επικεντρώνουν στις γλώσσες GML, SVG και KML, που βασίζονται στην XML και αποτελούν σήμερα τα πλέον διαδεδομένα πρότυπα δημοσιοποίησης χαρτογραφικού περιεχομένου στον Παγκόσμιο Ιστό. Η Γλώσσα XML Η γλώσσα XML σχεδιάστηκε για να υποστηρίξει την ανταλλαγή δεδομένων μέσω του Παγκόσμιου Ιστού. Οι σελίδες στον Παγκόσμιο Ιστό είναι συνήθως γραμμένες σε γλώσσα HTML (βλ., Κεφάλαιο 2). Η γλώσσα αυτή δίνει έμφαση στη μορφοποίηση (παρουσίαση) των δεδομένων σε μια ιστοσελίδα (δηλ., το μέγεθος και το χρώμα των γραμμάτων, τη γραμματοσειρά, τη θέση παραγράφων, κά.). Η γλώσσα XML δεν αντικαθιστά, αλλά συμπληρώνει τη γλώσσα HTML, δίνοντας έμφαση στο περιεχόμενο των δεδομένων μιας ιστοσελίδας, αγνοώντας τη μορφοποίησή τους. Η γλώσσα XML βασίζεται στην αναπαράσταση των δεδομένων μέσω αμιγούς κειμένου. Η βασική μονάδα του συντακτικού της XML είναι το στοιχείο (element). Το στοιχείο είναι ένα τμήμα κειμένου που περιβάλλεται από ταιριαστές ετικέτες (tags). Ένα παράδειγμα ενός στοιχείου είναι το ακόλουθο: <συγγραφέας>στεφανάκης</συγγραφέας> Το στοιχείο αυτό φιλοξενεί το επίθετο ενός φυσικού προσώπου. Η ετικέτα του στοιχείου είναι το <συγγραφέας> (η οποία ταιριάζει και κλείνει με το </συγγραφέας>). Μέσω του ονόματος της ετικέτας, μεταφέρεται η πληροφορία (σημασιολογία) ότι το φυσικό πρόσωπο είναι ο συγγραφέας ενός βιβλίου. Τα στοιχεία σε ένα κείμενο XML μπορούν να είναι φωλιασμένα. Επίσης, επιτρέπεται να είναι κενά, οπότε μπορούν και να συμπτυχθούν, π.χ., ένα κενό στοιχείο είναι το ακόλουθο: και σε συμπτυγμένη μορφή: <συγγραφέας></συγγραφέας> <συγγραφέας></> ή <συγγραφέας/>

Η ΓΛΩΣΣΑ XML 35 Κάθε κείμενο XML έχει ένα στοιχείο, μέσα στο οποίο φωλιάζονται όλα τα υπόλοιπα. Το στοιχείο αυτό είναι μοναδικό και καλείται ρίζα του κειμένου. Ένα παράδειγμα κειμένου XML, που περιγράφει μια συλλογή βιβλίων (π.χ., τις βιβλιογραφικές αναφορές ενός τεχνικού άρθρου) είναι το ακόλουθο (απόσπασμα): <βιβλιογραφία> <βιβλίο> <τίτλος>βάσεις Γεωγραφικών Δεδομένων</τίτλος> <συγγραφέας>στεφανάκης</συγγραφέας> <εκδότης>παπασωτηρίου</εκδότης> <έτος>2003</έτος> </βιβλίο> <βιβλίο> <τίτλος>data on the Web</τίτλος> <συγγραφέας>abiteboul</συγγραφέας> <συγγραφέας>buneman</συγγραφέας> <συγγραφέας>suciu</συγγραφέας> <εκδότης>morgan Kaufmann</εκδότης> <έτος>2000</έτος> </βιβλίο> </βιβλιογραφία> Ένα κείμενο XML μπορεί να αναπαρασταθεί και σε μορφή διαγράμματος. Το διάγραμμα αυτό έχει στην απλή του μορφή μια ιεραρχική δομή (δομή δένδρου) και καλείται διάγραμμα XML. To Σχήμα 3.1 παρουσιάζει ένα απόσπασμα του διαγράμματος XML, για την παραπάνω βιβλιογραφία. βιβλιογραφία Data on the Web βιβλίο βιβλίο βιβλίο έτος τίτλος εκδότης συγγραφέας συγγραφέας συγγραφέας Abiteboul Suciu Buneman 2000 Morgan Kaufmann Σχήμα 3.1 Παράδειγμα διαγράμματος XML. Ιεραρχική δομή.

36 ΚΕΦΑΛΑΙΟ 3 Η γλώσσα XML επιτρέπει την ανάθεση γνωρισμάτων (attributes) στα στοιχεία. Ένα παράδειγμα είναι το ακόλουθο: <βιβλίο κόστος= 40 νόμισμα= Ευρώ > <τίτλος>data on the Web</τίτλος> <συγγραφέας>abiteboul</συγγραφέας> </βιβλίο> Σύμφωνα με αυτό, το στοιχείο βιβλίο ανατίθεται δύο γνωρίσματα. Το γνώρισμα κόστος με τιμή «40» και το γνώρισμα νόμισμα με τιμή «Ευρώ». Οι τιμές των γνωρισμάτων (σε αντίθεση με τα στοιχεία) αναγράφονται πάντα εντός διπλών εισαγωγικών. Τα γνωρίσματα αποτελούν ένα εναλλακτικό τρόπο αναπαράστασης δεδομένων σε ένα κείμενο XML. Επιπλέον, η γλώσσα XML επιτρέπει την ανάθεση μοναδικών ταυτοτήτων στα στοιχεία ενός κειμένου. Η ανάθεση αυτή γίνεται σε ένα συγκεκριμένο γνώρισμα του στοιχείου, το οποίο καλείται id. Το γνώρισμα αυτό αξιοποιείται σαν αναφορά του στοιχείου από άλλα στοιχεία του κειμένου. Η αναφορά επιτυγχάνεται μέσω του γνωρίσματος idref. Ένα παράδειγμα είναι το ακόλουθο: <οικογένεια> <πρόσωπο id= ο55 > <όνομα>ιωάννα</όνομα> </πρόσωπο> <πρόσωπο id= o44 > <όνομα>παντελής</όνομα> <παιδί_της idref= o55 /> </πρόσωπο> </οικογένεια> Το παράδειγμα αυτό παρουσιάζει δύο πρόσωπα μιας οικογένειας, την Ιωάννα και τον Παντελή, με ταυτότητες (id) ο55 και ο44 αντίστοιχα. Το γνώρισμα idref στο στοιχείο παιδί_της συσχετίζει τα δύο πρόσωπα. Η σημασιολογία, που μεταφέρει η ετικέτα του στοιχείου αυτού, δείχνει ότι «ο Παντελής είναι παιδί της Ιωάννας». Η χρήση των ταυτοτήτων και αναφορών αποτελούν το μηχανισμό της γλώσσας XML για την επέκταση των δένδρων (ιεραρχικών δομών Σχήμα 3.1) σε γράφους (δικτυακές δομές), στα αντίστοιχα διαγράμματα. Το Σχήμα 3.2 παρουσιάζει το διάγραμμα XML για το προηγούμενο παράδειγμα. Η γλώσσα XML συνοδεύεται από μια μεγάλη και διαρκώς αναπτυσσόμενη οικογένεια εργαλείων (π.χ., XML Schemas, XSL, XSLT, XLink, RDF, DOM,

Η ΓΛΩΣΣΑ XML 37 XPath, XQuery, κ.ά.), που διευκολύνουν μια σειρά λειτουργιών, όπως τη μοντελοποίηση δεδομένων στη γλώσσα XML βάσει δομημένων σχημάτων, τη διαχείριση κειμένων XML (εισαγωγή, διαγραφή και ενημέρωση των στοιχείων, ετικετών και γνωρισμάτων ενός κειμένου), την υποβολή ερωτήσεων (σε εκφραστικές γλώσσες) και ανάκτηση δεδομένων από μεγάλα κείμενα XML, την ευρετηριοποίηση κειμένων XML, τη μορφοποίηση και οπτικοποίησή τους, τον εμπλουτισμό της σημασιολογίας τους, κά. Η οικογένεια αυτών των εργαλείων έχει συμβάλει αποφασιστικά στην ευρεία διάδοση και επιτυχία του προτύπου. οικογένεια πρόσωπο o55 όνομα o44 πρόσωπο πρόσωπο Ιωάννα όνομα Παντελής παιδί_της Σχήμα 3.2 Παράδειγμα διαγράμματος XML με αναφορές. Δικτυακή δομή. Βάσεις Δεδομένων και XML Η γλώσσα XML, αν και αναπτύχθηκε αρχικά για να υποστηρίξει εφαρμογές διαδικτύου, έχει συνδεθεί στενά με την τεχνολογία των συστημάτων βάσεων δεδομένων. Η παρούσα Ενότητα επιχειρεί να παρουσιάσει τη σύνδεση αυτή. Ένα κείμενο XML αποτελεί μια συλλογή συσχετιζόμενων δεδομένων και συχνά αντιμετωπίζεται σαν μια Βάση Δεδομένων. Ένα κείμενο XML, σαν βάση δεδομένων, συγκεντρώνει ορισμένα πλεονεκτήματα και μειονεκτήματα έναντι των αρχείων των κλασσικών βάσεων δεδομένων. Αρχίζοντας από τα πλεονεκτήματα, ένα κείμενο XML έχει την ιδιότητα της αυτοπεριγραφής. Μέσω των ετικετών και των γνωρισμάτων, η γλώσσα XML περιγράφει τα δεδομένα του κειμένου. Βέβαια, η σημασιολογία αυτής της περιγραφής είναι περιορισμένη. Ένα δεύτερο πλεονέκτημα αφορά στην μεταφερσιμότητα του κειμένου XML. Η γλώσσα XML είναι αναγνώσιμη από ανθρώπους και μηχανές και είναι ανεξάρτητη του υλικού ή του λογισμικού του υπολογιστικού συστήματος. Τα κείμενα XML υιοθετούν την κωδικοποίηση κατά Unicode. Ένα επίσης σημαντικό χαρακτηριστικό των

38 ΚΕΦΑΛΑΙΟ 3 κειμένων XML είναι ότι μπορούν να περιγράψουν τόσο ιεραρχικές όσο δικτυακές δομές με απλό τρόπο (π.χ., Σχήμα 3.1 και Σχήμα 3.2). Από την άλλη πλευρά, ένα κείμενο XML, σαν βάση δεδομένων, παρουσιάζει αρκετά μειονεκτήματα. Καταρχήν, τα στοιχεία ενός κειμένου XML είναι διατεταγμένα, σε αντίθεση με τα λογικά μοντέλα βάσεων δεδομένων (π.χ., το σχεσιακό), όπου η έννοια της διάταξης των δεδομένων (π.χ., των πλειάδων) δεν υφίσταται. Για παράδειγμα, τα ακόλουθα δύο κείμενα XML δεν είναι ισοδύναμα: Κείμενο 1 ο : Κείμενο 2 ο : <πρόσωπο> <όνομα>μανόλης</όνομα> <επώνυμο>στεφανάκης</επώνυμο> </πρόσωπο> <πρόσωπο> <επώνυμο>στεφανάκης</επώνυμο> <όνομα>μανόλης</όνομα> </πρόσωπο> Ένα δεύτερο μειονέκτημα των κειμένων XML πηγάζει στις συντακτικές ιδιαιτερότητες της γλώσσας τους. Συγκεκριμένα, στην XML, σε αντίθεση με τις βάσεις δεδομένων, επιτρέπεται η ανάμειξη σχολίων και στοιχείων σε ένα κείμενο. Για παράδειγμα, το ακόλουθο κείμενο συμβαδίζει με τους κανόνες της γλώσσας: <διάλεξη>βάσεις Δεδομένων και XML <ομιλητής>μανόλης Στεφανάκης</ομιλητής> </διάλεξη> Επιπλέον, η γλώσσα XML επιτρέπει την υιοθέτηση διαφορετικών δομικών μονάδων για την έκφραση της αυτής κατάστασης. Συγκεκριμένα, η καταγραφή δεδομένων σε ένα κείμενο XML μπορεί να γίνει με εναλλακτική χρήση γνωρισμάτων ή στοιχείων. Για παράδειγμα, τα ακόλουθα τρία κείμενα μεταφέρουν την ίδια πληροφορία: Κείμενο 1 ο : <πρόσωπο> <όνομα>διονύσης</όνομα> <ηλικία>5</ηλικία> </πρόσωπο>

Η ΓΛΩΣΣΑ XML 39 Κείμενο 2 ο : Κείμενο 3 ο : <πρόσωπο όνομα= Διονύσης ηλικία= 5 /> <πρόσωπο ηλικία= 5 > <όνομα>διονύσης</όνομα> </πρόσωπο> Όπως αναφέρθηκε στην προηγούμενη Ενότητα, η γλώσσα XML περιβάλλεται από μια συλλογή εργαλείων. Ορισμένα από τα εργαλεία αυτά έχουν σαν στόχο τη διαχείριση των δεδομένων, που φιλοξενούνται σε κείμενα XML. Επομένως, καθώς ένα κείμενο XML αντιμετωπίζεται σαν μια βάση δεδομένων, τα παραπάνω εργαλεία μπορεί να θεωρηθεί ότι συνθέτουν το αντίστοιχο Σύστημα Διαχείρισης Βάσης Δεδομένων (ΣΔΒΔ). Στη συνέχεια, περιγράφονται συνοπτικά οι διαθέσιμοι μηχανισμοί για την οργάνωση (δόμηση) των δεδομένων σε ένα κείμενο XML, και την διαχείρισή τους (γλώσσες ερωτήσεων). Οργάνωση Δεδομένων σε Κείμενο XML Για τη σωστή δόμηση των δεδομένων μιας εφαρμογής σε ένα κείμενο XML, πρέπει να τηρηθούν οι περιορισμοί που αφορούν στα δεδομένα. Αυτό επιτυγχάνεται με τη χρήση ενός βοηθητικού κειμένου, το οποίο καθορίζει τις έγκυρες ετικέτες, το φώλιασμα των στοιχείων και τα γνωρίσματα αυτών, τους τύπους των δεδομένων, κά. Το βοηθητικό αυτό κείμενο δομείται σύμφωνα με τις προδιαγραφές που ορίζουν δύο πρότυπα: (α) το Document Type Definition ή DTD, και (β) το XML Schema Definition ή XSD. Έστω το ακόλουθο απόσπασμα ενός κειμένου XML μιας κτηματολογικής εφαρμογής, που περιγράφει ένα γεωτεμάχιο (με κωδικό «Γ123κ», δικαιούχο την Μαρία Παράσχου και εμβαδόν 1200 m 2 ): Κείμενο XML: <γεωτεμάχιο id= Γ123κ > <δικαιούχος>μαρία Παράσχου</δικαιούχος> <εμβαδόν>1200</εμβαδόν> </γεωτεμάχιο> Ακολουθώντας τις προδιαγραφές του DTD, το βοηθητικό κείμενο θα έχει το εξής περιεχόμενο:

40 ΚΕΦΑΛΑΙΟ 3 Κείμενο DTD: <!ELEMENT γεωτεμάχιο (δικαιούχος, εμβαδόν)> <!ATTLIST γεωτεμάχιο id CDATA> <!ELEMENT δικαιούχος (#PCDATA)> <!ELEMENT εμβαδόν (#PCDATA)> Ο ρόλος του βοηθητικού κειμένου DTD είναι να προδιαγράψει τη δομή του κειμένου XML, καθορίζοντας τα έγκυρα στοιχεία, γνωρίσματα, κά., καθώς και το φώλιασμά τους. Στο παραπάνω κείμενο DTD, ορίζεται στην πρώτη γραμμή ότι ένα έγκυρο στοιχείο του κειμένου XML είναι το γεωτεμάχιο (ετικέτα στοιχείου), το οποίο φωλιάζει τα στοιχεία δικαιούχος και εμβαδόν. Η δεύτερη γραμμή ορίζει ότι το γεωτεμάχιο έχει ένα γνώρισμα ταυτότητας (id). Το γνώρισμα αυτό παίρνει τιμές από ένα σχήμα κωδικοποίησης (CDATA επιβάλλεται έλεγχος μοναδικότητας). Οι γραμμές 3 και 4 ορίζουν ότι τα φωλιασμένα στοιχεία φιλοξενούν τιμές από ένα σχήμα ανάθεσης τιμών (#PCDATA τύπος και τιμή ορισμένα από το χρήστη). Τα κείμενα DTD παρουσιάζουν αρκετές αδυναμίες στην προδιαγραφή κειμένων XML, για το λόγο αυτό έχουν αντικατασταθεί από τα κείμενα XSD, που περιγράφονται στη συνέχεια. Οι βασικές αδυναμίες των πρώτων έγκεινται στο ότι: (α) δεν είναι γραμμένα σε γλώσσα XML, και (β) δεν υποστηρίζουν τύπους δεδομένων (δηλαδή, δεν προδιαγράφουν τους τύπους των τιμών που φιλοξενεί κάθε στοιχείο ή γνώρισμα). Τα κείμενα XSD προδιαγράφουν πληρέστερα τα κείμενα XML. Συγκεκριμένα, υποστηρίζουν τύπους δεδομένων, επιτρέπουν τη δημιουργία νέων τύπων δεδομένων από τους χρήστες, και υιοθετούν αντικειμενοστρεφείς έννοιες, όπως την κληρονομικότητα και τον πολυμορφισμό. Το βοηθητικό κείμενο XSD για το παραπάνω παράδειγμα του γεωτεμαχίου είναι το ακόλουθο: Κείμενο XSD: <schema xmlns="http://www.w3.org/2001/xmlschema"> <element name= γεωτεμάχιο"> <complextype> <sequence> <element name= δικαιούχος" type="string"/> <element name= εμβαδόν" type="unsignedint"/> </sequence> <attribute name= id"> <simpletype> <restriction base="string">

Η ΓΛΩΣΣΑ XML 41 <pattern value= Γ\d{3}[A-Za-z]{1}"/> </restriction> </simpletype> </attribute> </complextype> </element> </schema> Η πρώτη γραμμή του κειμένου παραπέμπει στις προδιαγραφές του XSD. Στις επόμενες γραμμές ορίζονται τα στοιχεία, η δομή του φωλιάσματός τους, και τα γνωρίσματά τους. Επίσης προδιαγράφονται οι τύποι των δεδομένων. Παρατηρείστε ότι υπάρχει η δυνατότητα ορισμού νέων τύπων, που ακολουθούν συγκεκριμένα πρότυπα (π.χ., στη γραμμή <pattern value= Γ\d{3}[A-Za-z]{1}"/>). Παρατηρείστε ότι το κείμενο XSD σε αντίθεση με το DTD είναι κείμενο XML. Ανάλογα με το λογικό μοντέλο δεδομένων ενός ΣΔΒΔ (π.χ., σχεσιακό, αντικειμενοστρεφές, κ.ά.), έχουν αναπτυχθεί μηχανισμοί απεικόνισης σχημάτων XML σε σχήματα βάσεων δεδομένων και αντίστροφα. Το Σχήμα 3.3 παρουσιάζει την απλή περίπτωση (μια εναλλακτική) της απεικόνισης μιας σχέσης (στο σχεσιακό μοντέλο) σε ένα κείμενο XML. Διαχείριση Κειμένων XML Η διαχείριση των δεδομένων ενός κειμένου XML επιτυγχάνεται με τη χρήση μιας γλώσσας ερωτήσεων. Στο παρελθόν έχουν προταθεί πολλές γλώσσες διαχείρισης κειμένων XML. Ορισμένες από αυτές είναι οι εξής: XPath, XQuery, Lorel, UnQL, XML-QL, XQL, κά. Κάθε μια γλώσσα έχει τις ιδιαιτερότητές της και υποστηρίζει καλύτερα ή χειρότερα ορισμένες από τις διαδικασίες διαχείρισης (δηλ., συντήρηση κειμένων XML και ανάκτηση πληροφοριών από αυτά). Στη συνέχεια, περιγράφονται συνοπτικά τρεις από αυτές, η XPath, η XSL και η Lorel. Η Γλώσσα XPath Η γλώσσα XPath (XML Path Language) εφαρμόζει μια σύνταξη που προσομοιώνει ιεραρχικά μονοπάτια. Η γλώσσα αυτή αξιοποιεί μια βιβλιοθήκη συναρτήσεων, με τις οποίες επιτυγχάνει την ανάκτηση δεδομένων από κείμενα XML και την περαιτέρω επεξεργασία τους. Να σημειωθεί, ότι η βιβλιοθήκη των συναρτήσεων είναι επεκτάσιμη.

42 <βάση_δεδομένων> <πίνακας> <γραμμή11> <στήλη1> </στήλη1> <στήλη2> </στήλη2> </γραμμή1> <γραμμή2> </γραμμή2> </πίνακας> </βάση_δεδομένων> (α) ΚΕΦΑΛΑΙΟ 3 πίνακας γραμμή 1 γραμμή 2 γραμμή n στήλη 1 στήλη 2 στήλη j τιμή 1,1 τιμή 1,2 τιμή 1,j (β) P ID X Y 1 34 45 2 67 23 3 24 21 (γ) <πίνακας> <γραμμή> <PID>1</PID> <X>34</X> <Y>45</Y> </γραμμή> <γραμμή> <PID>2</PID> <X>67</X> <Y>23</Y> </γραμμή> <γραμμή> <PID>3</PID> <X>24</X> <Y>21</Y> </γραμμή> </πίνακας> Σχήμα 3.3 Απεικόνιση μιας σχέσης (πίνακα) σε κείμενο XML: Η δομή του κειμένου XML (α), το αντίστοιχο διάγραμμα XML (β), και ένα παράδειγμα απεικόνισης (γ). Η XPath διαχειρίζεται ένα μόνο κείμενο XML, το οποίο και αντιμετωπίζει σαν ένα δένδρο με κόμβους. Υπάρχουν διάφορα είδη κόμβων στο μοντέλο της γλώσσας, όπως οι κόμβοι κειμένου, στοιχείων, γνωρισμάτων, κά. Οι τιμές που επιστρέφονται μετά την εκτέλεση μιας ερώτησης αντιμετωπίζονται επίσης σαν κόμβοι. Ορισμένα παραδείγματα ερωτήσεων της XPath για το κείμενο του γεωτεμαχίου, που παρουσιάζεται στην προηγούμενη Ενότητα, είναι τα ακόλουθα: επέλεξε τα στοιχεία δικαιούχος που είναι φωλιασμένα στο στοιχείο-ρίζα γεωτεμάχιο

Η ΓΛΩΣΣΑ XML 43 /γεωτεμάχιο/δικαιούχος επέλεξε όλα τα στοιχεία δικαιούχος //δικαιούχος επέλεξε όλα τα στοιχεία που φωλιάζονται στο στοιχείο-ρίζα γεωτεμάχιο /γεωτεμάχιο/* επέλεξε τα γνωρίσματα ταυτότητας (id) όλων των στοιχείων γεωτεμάχιο του κειμένου /γεωτεμάχιο[@id] επέλεξε όλους τους προγόνους (στην ιεραρχία) των στοιχείων δικαιούχος, που είναι φωλιασμένα στο στοιχείο γεωτεμάχιο (επιλέγει το στοιχείο γεωτεμάχιο) /γεωτεμάχιο/δικαιούχος/ancestor::* Η Γλώσσα XSL Η γλώσσα XSL (XML Style Language) σχεδιάστηκε για τον μετασχηματισμό ενός κειμένου XML σε κείμενο HTML (βλ., επόμενη Ενότητα). Με άλλα λόγια, αποτελεί μια γλώσσα μορφοποίησης ενός κειμένου XML για την παρουσίασή του σε μια ιστοσελίδα του Παγκόσμιου Ιστού. Η XSL εφαρμόζεται επίσης για τη μετατροπή κειμένων XML σε άλλα κείμενα XML. Το μοντέλο της XSL είναι επίσης ιεραρχικό. Μια ερώτηση XSL συντίθεται από κανόνες προτύπων (template rules) και έχουν τη μορφή: κανόνας πρότυπο = συνθήκη + πρότυπο Η εκτέλεση της ερώτησης είναι αναδρομική. Συγκεκριμένα, ακολουθεί τα εξής βήματα: (α) ξενικά από το στοιχείο (κόμβο) ρίζα, (β) ελέγχει μια συνθήκη (pattern) στον κόμβο αυτό, (γ) αν αυτή ικανοποιηθεί, εκτελεί το αντίστοιχο πρότυπο (template), (δ) το πρότυπο δημιουργεί ένα κείμενο XML σαν αποτέλεσμα, και (ε) η διαδικασία επαναλαμβάνεται αναδρομικά στα (φωλιαμένα) παιδιά της ρίζας. Ένα παράδειγμα μιας ερώτησης XSL δίνεται στη συνέχεια. Έστω το ακόλουθο κείμενο XML:

44 ΚΕΦΑΛΑΙΟ 3 <κτηματολόγιο> <γεωτεμάχιο> <δικαιούχος>δημήτρης</δικαιούχος> <χρήση>οικιστική</χρήση> </γεωτεμάχιο> <γεωτεμάχιο> <δικαιούχος>μαρία</δικαιούχος> <χρήση>χώρος_σταθμευσης</χρήση> </γεωτεμάχιο> <γεωτεμάχιο> <δικαιούχος>ιωάννα</δικαιούχος> <χρήση>αγροτική</χρήση> </γεωτεμάχιο> </κτηματολόγιο> Μια ερώτηση XSL που επιστρέφει τους δικαιούχους είναι η ακόλουθη: <xsl:template> <xsl:apply-templates/> </xsl:template> <xsl:template match= /κτηματολόγιο/*/δικαιούχος > <result> <xsl:value-of/> </result> </xsl:template> Η Γλώσσα Lorel Η γλώσσα Lorel, αποτελεί μια συμβατή επέκταση της γλώσσας OQL. Η OQL (Object Query Language) είναι μια γλώσσα ερωτήσεων αντικειμένων, που προδιαγράφθηκε από την ομάδα εργασίας κατασκευαστών αντικειμενοστρεφών συστημάτων ODMG (Object Data Management Group). Η Lorel ενσωματώνει μια σειρά χαρακτηριστικών που υποστηρίζουν την αναζήτηση σε κείμενα XML, όπως εκφράσεις μονοπατιών, πολυμορφισμό, ειδικά σύμβολα συντομογραφίας, κά. Σε αντίθεση με την OQL, η γλώσσα Lorel δεν επιβάλει τον αυστηρό καθορισμό της θέσης των δεδομένων, αλλά επιτρέπει την αναζήτηση σε κείμενα, ακόμη και στην περίπτωση που είναι μερικώς γνωστή η δομή τους (π.χ., όταν δεν είναι γνωστή η ιεραρχία φωλιάσματος των στοιχείων στο σύνολό της). Αυτή η ιδιότητα πηγάζει από το γεγονός ότι η γλώσσα Lorel σχεδιάστηκε αρχικά για την αναζήτηση ημιδομημένων δεδομένων στο σύστημα LORE (Lightweight Object Repository).

Η ΓΛΩΣΣΑ XML 45 Η γλώσσα Lorel κάνει χρήση γράφων για τη μοντελοποίηση των δεδομένων, καθώς και κατάλληλων εκφράσεων μονοπατιών, ώστε να επιτευχθεί πλοήγηση στο γράφο αυτό. Κάθε ερώτηση Lorel (σε αντιστοιχία με τις ερωτήσεις SQL και OQL) συντίθεται από τρία τμήματα: το SELECT, το FROM, και το WHERE. Στο τμήμα SELECT ο χρήστης ορίζει τι θέλει να αναφερθεί στο αποτέλεσμα. Στο τμήμα FROM καθορίζονται τα μονοπάτια πλοήγησης στο γράφο. Στο τμήμα WHERE αναγράφονται οι συνθήκες της ερώτησης. Ένα παράδειγμα μιας ερώτησης Lorel στο προηγούμενο κείμενο XML για την εφαρμογή του κτηματολογίου είναι το εξής: SELECT Χ.δικαιούχος FROM κτηματολόγιο.#{χ}.χρήση Υ WHERE Υ = αγροτική Στην ερώτηση αυτή εφαρμόζεται μια συντόμευση (#), καθώς πιθανά το μονοπάτι από τη ρίζα του κειμένου στο στοιχείο χρήση του γεωτεμαχίου δεν είναι γνωστό, και δύο ψευδώνυμα μονοπατιών (Χ = κτηματολόγιο.γεωτεμάχιο, και Υ = κτηματολόγιο.γεωτεμάχιο.χρήση), για τη συντομογραφία των επιμέρους τμημάτων της ερώτησης. Το αποτέλεσμα της ερώτησης είναι: <δικαιούχος>ιωάννα</δικαιούχος> Μετασχηματισμός Κειμένου XML σε Κείμενο HTML Όπως αναφέρθηκε παραπάνω, η γλώσσα XML δεν αντικαθιστά, αλλά συμπληρώνει τη γλώσσα HTML. Η πρώτη δίνει έμφαση στο περιεχόμενο των δεδομένων μιας ιστοσελίδας αγνοώντας τη μορφοποίησή τους. Η δεύτερη, εστιάζει στη μορφοποίηση (παρουσίαση) των δεδομένων σε μια ιστοσελίδα (δηλαδή, το μέγεθος και το χρώμα των γραμμάτων, τη γραμματοσειρά, τη θέση παραγράφων, κά.). Στην πράξη, πολλές φορές υπάρχει η ανάγκη μετασχηματισμού ενός κειμένου XML σε κείμενο HTML, για να μορφοποιηθεί το περιεχόμενο του πρώτου και να είναι ευπαρουσίαστο κι ευανάγνωστο. Το κείμενο XML μπορεί, για παράδειγμα (Σχήμα 3.4), να αποτελεί την έξοδο ενός ερωτήματος σε μια Βάση Δεδομένων (ενός εξυπηρετητή, π.χ., στο TAXIS του Υπουργείου Οικονομικών). Τα δεδομένα που φιλοξενεί το κείμενο XML θα πρέπει να μορφοποιηθούν (βάσει κάποιων styles) σε ένα κείμενο HTML, ώστε να παρουσιαστούν στο χρήστη (πελάτη, π.χ., το φορολογούμενο).

46 ΚΕΦΑΛΑΙΟ 3 GET Πελάτης (client) HTTP Εξυπηρετητής (server) PUT { html } Εφαρμογή κείμενο HTML Εργαλείο Μετατροπής styles Βάση Δεδομένων κείμενο XML Σχήμα 3.4 Παράδειγμα αιτήματος πελάτη σε εξυπηρετητή, που εμπλέκει το μετασχηματισμό κειμένου XML σε κείμενο HTML. Ο μετασχηματισμός ενός κειμένου XML σε ένα κείμενο HTML περιλαμβάνει την υιοθέτηση κατάλληλων ετικετών της γλώσσας HTML, που θα φωλιάσουν τα δεδομένα του κειμένου XML και θα το μορφοποιήσουν ανάλογα με τις απαιτήσεις της εφαρμογής (με τη χρήση των styles). Το προϊόν της επεξεργασίας είναι ένα κείμενο HTML, που ενσωματώνει μέρος ή το σύνολο των δεδομένων του κειμένου XML και μπορεί να οπτικοποιηθεί σε έναν φυλλομετρητή. Ο μετασχηματισμός ενός κειμένου XML σε ένα κείμενο HTML μπορεί να υποστηριχθεί από αυτόνομα προγράμματα ή κι από εργαλεία που περιγράφθηκαν στην προηγούμενη Ενότητα. Στη συνέχεια παρουσιάζεται ένα παράδειγμα μετασχηματισμού χρησιμοποιώντας τη γλώσσα XSL (XML Style Language). Στον Κώδικα 3.1 παρουσιάζεται ένα κείμενο XML, το οποίο φιλοξενεί τέσσερα γεγονότα (που περιγράφονται με το στοιχείο <event>, 4-12, 13-21, 22-30, 31-39) από την ζωή του Ηρακλή (Πηγή: «Ιστορία Από τη Μυθολογία στην Ιστορία», Σχολικό Εγχειρίδιο Γ Δημοτικού του Παιδαγωγικού Ινστιτούτου). Τα γεγονότα συνθέτουν μια ενότητα (<section>, 2-40) με τίτλο «Η γέννηση του Ηρακλή» (<title>, 3). Κάθε γεγονός (<event>) φωλιάζει τέσσερα στοιχεία. Το <seq> (5) περιγράφει τη σειρά διαδοχής του γεγονότος στην ενότητα, το <description> (6-7) φιλοξενεί μια σύντομη περιγραφή του γεγονότος, το <image> (8-9) δίνει το όνομα του αρχείου μιας σχετικής εικόνας και το <img_descr> (10-11) καταγράφει έναν τίτλο για την εικόνα.

Η ΓΛΩΣΣΑ XML 47 Κώδικας 3.1 Περιγραφή τεσσάρων γεγονότων της ζωής του Ηρακλή σε κείμενο XML (αρχείο iraklis.xml). (1) <?xml version="1.0" encoding="utf-8"?> (2) <section> (3) <title>η γέννηση του Ηρακλή.</title> (4) <event> (5) <seq>1</seq> (6) <description> Ο Αμφιτρύωνας και η Αλκμήνη, κόρη του βασιλιά των Μυκηνών, βρήκαν καταφύγιο στη Θήβα. Η Αλκμήνη γέννησε τον Ηρακλή, που ήταν γιος του Δία, και τον Ιφικλή. (7) </description> (8) <image>./images/math_1_50_img_64.jpg (9) </image> (10) <img_descr> Ο Ηρακλής - γιός του Δία. (11) </img_descr> (12) </event> (13) <event> (14) <seq>2</seq> (15) <description> Ο Δίας έστειλε τον Ερμή να φέρει τον Ηρακλή στον Όλυμπο και να πιει το γάλα της Ήρας ώστε να γίνει αθάνατος. (16) </description> (17) <image>./images/math_1_50_img_59.jpg (18) </image> (19) <img_descr> Η δημιουργία του Γαλαξία (20) </img_descr> (21) </event> (22) <event> (23) <seq>3</seq> (24) <description> Ο Ηρακλής παντρεύτηκε τη Μεγάρα, κόρη του βασιλιά της Θήβας, και έγινε ο ίδιος βασιλιάς. Η Ήρα θα τον τρελάνει και θα κάνει κακό στη γυναίκα και τα παιδιά του. (25) </description> (26) <image>./images/math_1_50_img_61.jpg (27) </image> (28) <img_descr> Ο Ηρακλής σε νεαρή ηλικία (29) </img_descr>

48 ΚΕΦΑΛΑΙΟ 3 (30) </event> (31) <event> (32) <seq>4</seq> (33) <description> Ο Ηρακλής πήγε στο Μαντείο των Δελφών να ρωτήσει τον Απόλλωνα τι έπρεπε να κάνει για να τον συγχωρέσουν οι θεοί. Ο χρησμός ήταν να υπηρετήσει τον ξάδελφό του Ευρυσθέα, βασιλιά των Μυκηνών, για δώδεκα χρόνια. (34) </description> (35) <image>./images/math_1_50_img_104.jpg (36) </image> (37) <img_descr> Ο Ηρακλής (αρχαίο νόμισμα) (38) </img_descr> (39) </event> (40) </section> Ο Κώδικας 3.2 παρουσιάζει το κείμενο XSL που περιγράφει τη μορφοποίηση που θα επιβληθεί στο κείμενο XML του Κώδικα 3.1, ώστε να παραχθεί το κείμενο HTML (Κώδικας 3.3). Μετά τις κεφαλίδες (1-5) ακολουθούν οι ετικέτες και οι τιμές των αντίστοιχων παραμέτρων, που θα αναγραφούν στο κείμενο HTML, π.χ., γραμμές 6-9. Οι γραμμές 10, 18, 23, 28, 30 και 31 αντιστοιχούν στις εντολές της XSL, οι οποίες έχουν τη σύνταξη <xsl:value-of select=... και ανακτούν το περιεχόμενο των αντίστοιχων στοιχείων του κειμένου XML για να το μορφοποιήσουν εντός του κειμένου HTML. Οι εντολές 18, 23, 28, 30 και 31 φωλιάζονται εντός της εντολής επανάληψης (14, 36): <xsl:for-each... και εκτελούνται για κάθε γεγονός (<event>) που περιλαμβάνεται στο κείμενο XML, δηλ., τέσσερις φορές για τα ισάριθμα γεγονότα. Κώδικας 3.2 Το κείμενο XSL για το μετασχηματισμό του κειμένου XML (Κώδικας 3.1) στο κείμενο HTML (Κώδικας 3.3) (αρχείο xml2html.xsl). (1) <?xml version="1.0" encoding="utf-8"?> (2) <xsl:stylesheet version="1.0" (3) xmlns:xsl="http://www.w3.org/1999/xsl/transform"> (4) <xsl:output method='html' version='1.0' encoding='iso-8859-7' indent='yes'/>

Η ΓΛΩΣΣΑ XML 49 (5) <xsl:template match="/"> (6) <html> (7) <body> <!Αναγραφή του τίτλου της Ενότητας> (8) <center> (9) <font color="#ff0000" face="comic Sans MS" size="2"> <!Ανάκτηση τίτλου από το κείμενο XML> (10) <xsl:value-of select="section/title"/> (11) </font> (12) </center> <!Δημιουργία του πίνακα> (13) <table width="400" id="table1"> <!Επαναληπτική διαδικασία Διάβασμα γεγονότων> (14) <xsl:for-each select="section/event"> (15) <tr> <!Η 1η στήλη Αναγραφή διαδοχής> (16) <td width="15" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff" align="center"> (17) <font color="#008000" face="comic Sans MS" size="2"> <!Ανάκτηση της σειράς διαδοχής από το XML> (18) <xsl:value-of select="seq"/> (19) </font> (20) </td> <!Η 2η στήλη Αναγραφή περιγραφής> (21) <td width="200"style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff"> (22) <font color="#0000ff" face="comic Sans MS" size="2"> <!Ανάκτηση περιγραφής γεγονότος από XML> (23) <xsl:value-of select="description"/> (24) </font> (25) </td> <!Η 3η στήλη Οπτικοποίηση Εικόνας> (26) <td align="center" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff"> <!Δημιουργία υπερσυνδέσμου στην εικόνα> (27) <a> <xsl:attribute name="target">"_blank" </xsl:attribute> <xsl:attribute name="href"> <!Ανάκτηση διεύθυνσης αρχείου εικόνας από XML για τον υπερσύνδεσμο> (28) <xsl:value-of select="image" /> </xsl:attribute> (29) <img> <xsl:attribute name="src">

50 ΚΕΦΑΛΑΙΟ 3 <!Ανάκτηση αρχείου εικόνας από XML για Οπτικοποίηση στην 3 η στήλη του πίνακα> (30) <xsl:value-of select="image" /> </xsl:attribute> <xsl:attribute name="width">95 </xsl:attribute> <xsl:attribute name="alt"> <!Ανάκτηση περιγραφής της εικόνας από XML> (31) <xsl:value-of select="img_descr" /> </xsl:attribute> (32) </img> (33) </a> (34) </td> (35) </tr> (36) </xsl:for-each> (37) </table> (38) </body> (39) </html> (40) </xsl:template> (41) </xsl:stylesheet> Ο Κώδικας 3.3 παρουσιάζει το κείμενο HTML. Οι τονισμένες γραμμές αντιστοιχούν στα δεδομένα που ανακτήθηκαν από το κείμενο XML (Κώδικας 3.1). Το Σχήμα 3.5 εικονίζει τη μορφοποίηση του κειμένου HTML (Κώδικας 3.3) στο φυλλομετρητή. Κώδικας 3.3 Το κείμενο HTML που μορφοποιεί το κείμενο XML (Κώδικας 3.1) εφαρμόζοντας το μετασχηματισμό XSL (Κώδικας 3.2) (αρχείο iraklis.htm). (1) <html> (2) <body> <!Τίτλος Ενότητας> (3) <center> (4) <font color="#ff0000" face="comic Sans MS" size="2"> (5) Η γέννηση του Ηρακλή. (6) </font> (7) </center> <!Δημιουργία Πίνακα> (8) <table width="400" id="table1"> <!Η 1η γραμμή του Πίνακα> (9) <tr> <!Η 1η στήλη της 1ης γραμμής> (10) <td width="15" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff" align="center"> (11) <font color="#008000" face="comic Sans MS" size="2"> (12) 1

Η ΓΛΩΣΣΑ XML 51 (13) </font> (14) </td> <!Η 2η στήλη της 1ης γραμμής> (15) <td width="200" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff"> (16) <font color="#0000ff" face="comic Sans MS" size="2"> (17) Ο Αμφιτρύωνας και η Αλκμήνη, κόρη του βασιλιά των Μυκηνών, βρήκαν καταφύγιο στη Θήβα. Η Αλκμήνη γέννησε τον Ηρακλή, που ήταν γιος του Δία, και τον Ιφικλή. (18) </font> (19) </td> <!Η 3η στήλη της 1ης γραμμής> (20) <td align="center" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff"> (21) <a target=""_blank"" href= (22) "../images/math_1_50_img_64.jpg"> (23) <img src= (24) "./images/math_1_50_img_64.jpg" width="95" alt= (25) "Ο Ηρακλής - γιός του Δία"> (26) </a> (27) </td> (28) </tr> <!Η 2η γραμμή του Πίνακα> (29) <tr> <!Η 1η στήλη της 2ης γραμμής> (30) <td width="15" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff" align="center"> (31) <font color="#008000" face="comic Sans MS" size="2"> (32) 2 (33) </font> (34) </td> <!Η 2η στήλη της 2ης γραμμής> (35) <td width="200" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff"> (36) <font color="#0000ff" face="comic Sans MS" size="2">

52 ΚΕΦΑΛΑΙΟ 3 (37) Ο Δίας έστειλε τον Ερμή να φέρει τον Ηρακλή στον Όλυμπο και να πιει το γάλα της Ήρας ώστε να γίνει αθάνατος. (38) </font> (39) </td> <!Η 3η στήλη της 2ης γραμμής> (40) <td align="center" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff"> (41) <a target=""_blank"" href= (42) "../images/math_1_50_img_59.jpg"> (43) <img src= (44) "./images/math_1_50_img_59.jpg" width="95" alt= (45) " Η δημιουργία του Γαλαξία "> (46) </a> (47) </td> (48) </tr> <!Η 3η γραμμή του Πίνακα> (49) <tr> <!Η 1η στήλη της 3ης γραμμής> (50) <td width="15" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff" align="center"> (51) <font color="#008000" face="comic Sans MS" size="2"> (52) 3 (53) </font> (54) </td> <!Η 2η στήλη της 3ης γραμμής> (55) <td width="200" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff"> (56) <font color="#0000ff" face="comic Sans MS" size="2"> (57) Ο Ηρακλής παντρεύτηκε τη Μεγάρα, κόρη του βασιλιά της Θήβας, και έγινε ο ίδιος βασιλιάς. Η Ήρα θα τον τρελάνει και θα κάνει κακό στη γυναίκα και τα παιδιά του. (58) </font> (59) </td> <!Η 3η στήλη της 3ης γραμμής> (60) <td align="center" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff"> (61) <a

Η ΓΛΩΣΣΑ XML 53 target=""_blank"" href= (62) "../images/math_1_50_img_61.jpg"> (63) <img src= (64) "./images/math_1_50_img_61.jpg" width="95" alt= (65) " Ο Ηρακλής σε νεαρή ηλικία "> (66) </a> (67) </td> (68) </tr> <!Η 4η γραμμή του Πίνακα> (69) <tr> <!Η 1η στήλη της 4ης γραμμής> (70) <td width="15" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff" align="center"> (71) <font color="#008000" face="comic Sans MS" size="2"> (72) 4 (73) </font> (74) </td> <!Η 2η στήλη της 4ης γραμμής> (75) <td width="200" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff"> (76) <font color="#0000ff" face="comic Sans MS" size="2"> (77) Ο Ηρακλής πήγε στο Μαντείο των Δελφών να ρωτήσει τον Απόλλωνα τι έπρεπε να κάνει για να τον συγχωρέσουν οι θεοί. Ο χρησμός ήταν να υπηρετήσει τον ξάδελφό του Ευρυσθέα, βασιλιά των Μυκηνών, για δώδεκα χρόνια. (78) </font> (79) </td> <!Η 3η στήλη της 4ης γραμμής> (80) <td align="center" style="border-style: solid; border-width: 1px; padding-left:4px; padding-right:4px" bordercolor="#0000ff"> (81) <a target=""_blank"" href= (82) "../images/math_1_50_img_104.jpg"> (83) <img src= (84) "./images/math_1_50_img_104.jpg" width="95" alt= (85) " Ο Ηρακλής (αρχαίο νόμισμα)"> (86) </a> (87) </td> (88) </tr> (89) </table>

54 ΚΕΦΑΛΑΙΟ 3 (90) </body> (91) </html> Σχήμα 3.5 Μορφοποίηση του κειμένου HTML του Κώδικα 3.3 στο φυλλομετρητή. Βιβλιογραφικές Αναφορές Sall, K.B., 2002. XML Family of Specifications. A Practical Guide. Addison Wesley. XML Language Specification. http://www.w3.org/xml/ XML tutorial, http://www.w3schools.com/xml/default.asp W3C World Wide Web Consortium, http://www.w3.org/