Προγραμματισμός Εφαρμογών Διαδικτύου Ενότητα 8: Εισαγωγή στην XML Φώτης Κόκκορας, Καθηγητής Εφαρμογών, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Εισαγωγή στην XML Μάρτιος 2005 Γ. Σ. Σακελλάρης Τ. Α. Κοντογιώργης
Advertisements

Δ.Π.Θ. xml - 1 ΝΕΕΣ ΓΛΩΣΣΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ XML Η HTML αποτέλεσε την πρώτη και κύρια γλώσσα δημιουργίας ιστοσελίδων από την έναρξη λειτουργίας.
ΚΕΝΤΡΟ ΠΟΛΙΤΙΣΜΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΝΣΤΙΤΟΥΤΟ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΤΕ 21,23/2/2005Πληροφοριακή σχεδίαση για πολιτισμική τεκμηρίωση και διαλειτουργικότητα1 Τεκμηρίωση.
Resource Description Framework
Στο λειτουργικό σύστημα Windows, υπάρχουν εικονίδια (icons) τα οποία αναπαριστούν τις διάφορες οντότητες (φυλαγμένες πληροφορίες, προγράμματα που κάνουν.
E X a M p L e Αξιοποιώντας την τεχνολογία XML στη διαχείριση της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο Πανελλήνιο Συνέδριο Ακαδημαϊκών.
Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Οδηγίες δημιουργίας προσβάσιμων εγγράφων με χρήση LaTex
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 8: Πίνακας Συμβόλων Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας.
Εισαγωγή στην XML Μ. ΓΑΒΑΛΑΣ.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 4: Συμβολοσειρές και Δομές Ελέγχου. Διδάσκων: Νικόλαος Θ Λιόλιος,
Βάσεις Δεδομένων ΙΙ Ευαγγελία Πιτουρά 1 Βάσεις Διαδικτύου.
Διδακτική Πληροφορικής Ενότητα 3: Η Πληροφορική στην Εκπαίδευση. Διδάσκων: Γεώργιος Σούλτης, Επίκουρος Καθηγητής. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 6: Πίνακες και Παράμετροι στην main. Διδάσκων: Νικόλαος Θ Λιόλιος,
Εφαρμογές Πολυμέσων: Εισαγωγή στην HTML (1)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 2: Μεταβλητές και Τύποι Δεδομένων. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 8: Κατασκευαστές. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 10: Αφηρημένες τάξεις. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής.
ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ενότητα 12 : Η χρήση της MySQL στο Ηλεκτρονικό εμπόριο (ΙΙI) Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Ενότητα 7 : Χρήση Πινάκων στο Ηλεκτρονικό εμπόριο (I) Ιωάννης Τσούλος
Αρχές Πληροφορικής Ενότητα # 13: Επεξεργασία κειμένου – LibreOffice #3
Αντικειμενοστραφής Προγραμματισμός Ι
Συστήματα Τηλεκπαίδευσης
Προγραμματισμός κινητών συσκευών
Προγραμματισμός κινητών συσκευών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι
Χρονικός Προγραμματισμός Έργων (Εργαστήριο)
ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα # 10: Εισαγωγή στο Ms Powerpoint Τμήμα Ιστορίας
Προγραμματισμός Διαδικτύου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Εργαστήριο 9 : Scratch (Μέρος 9_Β) Δημήτριος Νικολός ΤΕΕΑΠΗ
Χρονικός Προγραμματισμός Έργων (Εργαστήριο)
ΕνΟτητα # 6: Ms Word IΙΙ CLAUDIA BOETTCHER ΤμΗμα ΙστορΙαΣ
Αρχές Πληροφορικής Ενότητα # 11: Επεξεργασία κειμένου - LibreOffice
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Δίκτυα Υπολογιστών ΙΙ (Ε)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Διαχείριση Κινδύνου Ενότητα 3: Σχέδιο Διαχείρισης Κινδύνου.
Στατιστική Επιχειρήσεων
Ενότητα 4 : Τελεστές της γλώσσας PHP Ιωάννης Τσούλος
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Αρχές Πληροφορικής Ενότητα # 10: Ιστολόγια. Η υπηρεσία Blogger
Ενότητα 2 : Το σύστημα βάσεων δεδομένων MySQL (II) Ιωάννης Τσούλος
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Κανονικοποίηση ΤΙ ΕΙΝΑΙ ; Τεχνική Διαδικασία
Προγραμματισμός κινητών συσκευών
Επικοινωνιακός Προγραμματισμός Ι
Προγραμματισμός κινητών συσκευών
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Επικοινωνιακός Προγραμματισμός Ι
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Επιχειρησιακές Επικοινωνίες
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Ειδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων -E
Ενότητα 3 : Παραδείγματα προγραμματισμού Ιωάννης Έλληνας Τμήμα Η/ΥΣ
Συστήματα Θεματικής Πρόσβασης (Θ)
ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Προγραμματισμός κινητών συσκευών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Επικοινωνιακός Προγραμματισμός Ι
Μεταγράφημα παρουσίασης:

Προγραμματισμός Εφαρμογών Διαδικτύου Ενότητα 8: Εισαγωγή στην XML Φώτης Κόκκορας, Καθηγητής Εφαρμογών, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Σκοποί ενότητας Να περιγράφει τα βασικά στοιχεία της γλώσσας XML. Να δίδει τη δομή ενός εγγράφου XML. Να ορίζει τις ιδιότητες ενός στοιχείου XML. Να αναφέρει τους κανόνες ονοματολογίας ενός στοιχείου XML. Να ορίζει τμήματα CDATA σε στοιχεία XML. Να ορίζει τους κανόνες ορθότητας και εγκυρότητας σύνταξης ενός στοιχείου XML. Προγραμματισμός Εφαρμογών Διαδικτύου 4

Περιεχόμενα ενότητας  Εισαγωγή στην XML. Εισαγωγή στην XML.  Δομή εγγράφου XML. Δομή εγγράφου XML.  Μικτό περιεχόμενο. Μικτό περιεχόμενο.  Ιδιότητες. Ιδιότητες.  Κανόνες ονοματολογίας. Κανόνες ονοματολογίας.  Αναφορά οντότητας. Αναφορά οντότητας.  Τμήματα CDATA. Τμήματα CDATA.  Ορθότητα. Ορθότητα.  ……Απαραίτητο Λογισμικό. ……Απαραίτητο Λογισμικό.  Εγκυρότητα. Εγκυρότητα.  Namespaces. Namespaces.  Ιδιότητα xmlns. Ιδιότητα xmlns.  Εργασίες με έγγραφα XML. Εργασίες με έγγραφα XML.  Εφαρμογές XML στο WEB. Εφαρμογές XML στο WEB. Προγραμματισμός Εφαρμογών Διαδικτύου 5

XML (eXtensible Markup Language)  Γλώσσα σήμανσης (markup language)  Γλώσσα σχολιασμού κειμένου με πρόσθετη πληροφορία (σήμανση) σχετικά με τη δομή, σημασιολογία ή παρουσίαση του κειμένου  Π.χ. κείμενο "Θεσσαλονίκη", σήμανση "πόλη"  Ένας ορισμός της XML  Μια γενικού σκοπού γλώσσα σήμανσης δομημένων (π.χ. εγγραφές Β%) ή αδόμητων (π.χ. νομικό έγγραφο) δεδομένων  Επιτρέπει τον καθορισμό γλωσσών σήμανσης ειδικού σκοπού, ονόματι εφαρμογές XML  Ιστοσελίδες (XHTML), μαθηματικά (MathML), μαγειρική, κ.α. Προγραμματισμός Εφαρμογών Διαδικτύου 6

Τι δεν είναι XML  Γλώσσα προγραμματισμού  Δεν εκτελεί υπολογισμούς  Βάση δεδομένων  Δεν έχει στόχο τη μόνιμη αποδοτική αποθήκευση και ανάκτηση δεδομένων, αλλά την ανταλλαγή τους μεταξύ ετερογενών συστημάτων  Πρωτόκολλο δικτύου  Δεν καθορίζει τον τρόπο μεταφοράς Προγραμματισμός Εφαρμογών Διαδικτύου 7

Κίνητρα ανάπτυξης  Διαλειτουργικότητα (interoperability)  Η ικανότητα δύο η παραπάνω συστημάτων να ανταλλάσσουν πληροφορίες, τις οποίες στη συνέχεια να μπορούν να χρησιμοποιήσουν Διαφορετικές εκδόσεις του ίδιου λογισμικού Διαφορετικά λογισμικά στην ίδια πλατφόρμα  Παγκόσμιος ιστός και διαλειτουργικότητα  Ο παγκόσμιος ιστός, αυξάνει την ανάγκη για διαλειτουργικότητα, επειδή αφορά στην αλληλεπίδραση πολλών ετερογενών συστημάτων Λογισμικά που τρέχουν σε διαφορετικές πλατφόρμες Προγραμματισμός Εφαρμογών Διαδικτύου 8

Λόγοι εδραίωσης  Βασίζεται σε κείμενο  Προσφιλής μορφή σε κάθε είδους λογισμικό  Ανεξάρτητη πλατφόρμας Αποθήκευση αριθμών, χαρακτήρες αλλαγής γραμμής  Έχει αυστηρούς κανόνες σύνταξης  Επιτρέπει σε ένα πρόγραμμα να ελέγξει αν το κείμενο ακολουθεί τους κανόνες  Απλό και καλά τεκμηριωμένο πρότυπο  Αναπτύχθηκε και υποστηρίζεται από το W3C Προγραμματισμός Εφαρμογών Διαδικτύου 9

Ιστορικό εξέλιξης  SGML  Η γλώσσα SGML (Standard Generalized Markup Language) αποτέλεσε τον πρόγονο της XML  Αναπτύχθηκε από το 1970 ως το 1986  Η μεγαλύτερη επιτυχία της ήταν η γλώσσα HTML  Μειονέκτημα της η μεγάλη πολυπλοκότητα  XML  Η έκδοση 1.0 αναπτύχθηκε από το 1996 ως το 1998, ενώ το 2004 βγήκε η έκδοση 1.1 Προγραμματισμός Εφαρμογών Διαδικτύου 10

Δομή εγγράφου XML  Στοιχεία (elements)  Βασικά δομικά συστατικά εγγράφων XML  Μπορεί να είναι είτε κενά, είτε να περιλαμβάνουν άλλα στοιχεία, κείμενο ή και τα δύο ανάμικτα  Συντάσσονται ως εξής  περιεχόμενο  ή αλλιώς  Παραδείγματα  grigoris tsoumakas  ή αλλιώς Προγραμματισμός Εφαρμογών Διαδικτύου 11

Παράδειγμα εγγράφου XML Verbatim DataLife MF 2HD " black floppy disk Στοιχείο ρίζα (root) Προγραμματισμός Εφαρμογών Διαδικτύου 12

Κανόνες σύνταξης στοιχείων  Αλληλοεπικάλυψη  Η αλληλοεπικάλυψη στοιχείων απαγορεύεται  Παράδειγμα άκυρου εγγράφου XML turing  Διάκριση μικρών - κεφαλαίων  Η ετικέτα είναι διαφορετική από την και την  Αν ανοίξετε ένα στοιχείο με την ετικέτα δεν μπορείτε να το κλείσετε με την Προγραμματισμός Εφαρμογών Διαδικτύου 13

Η δενδρική δομή της XML  Ένα έγγραφο XML αντιστοιχεί σε ένα δέντρο  Κάθε στοιχείο αντιστοιχεί σε έναν κόμβο  Η ρίζα του εγγράφου είναι και ρίζα του δέντρου  Σχέσεις στοιχείων  Ένα στοιχείο XML μπορεί ως περιεχόμενο να περιλαμβάνει ένα ή περισσότερα στοιχεία παιδιά  Κάθε στοιχείο σε ένα XML έγγραφο, με εξαίρεση τη ρίζα, έχει ένα και μόνο στοιχείο γονέα  Τα στοιχεία που έχουν κοινό στοιχείο γονέα, συχνά ονομάζονται αδέρφια Προγραμματισμός Εφαρμογών Διαδικτύου 14

Παράδειγμα εγγράφου XML Alan Turing computer scientist mathematician cryptographer Προγραμματισμός Εφαρμογών Διαδικτύου 15

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

Μικτό περιεχόμενο  Ένα στοιχείο μπορεί να περιέχει ταυτόχρονα και κείμενο και άλλα στοιχεία  Αυτό συμβαίνει όταν Το έγγραφο αφορά μη δομημένη πληροφορία όπως τεκμηρίωση, εργασία, ιστοσελίδα κ.α. Συνήθως παράγονται από τον άνθρωπο  Αυτό δεν συμβαίνει όταν Το έγγραφο αφορά δομημένη πληροφορία όπως αυτή που περιέχεται στις εγγραφές μιας ΒΔ ή στο αντικείμενο μιας τάξης (υπολογιστής) Συνήθως παράγονται από τον υπολογιστή Προγραμματισμός Εφαρμογών Διαδικτύου 17

Παράδειγμα μικτού περιεχομένου Alan Turing was one of the first people to truly deserve the name computer scientist. Although his contributions to the field are too numerous to list,his best-known are the eponymous Turing Test and Turing Machine. άλλα στοιχεία κείμενο Προγραμματισμός Εφαρμογών Διαδικτύου 18

Ιδιότητες (Properties) Ένα στοιχείο XML μπορεί να έχει ιδιότητες  Ζεύγος ονόματος-τιμής στην ετικέτα αρχής  Ανάμεσα στο όνομα και την τιμή μπαίνει ένα ίσον (=) και προαιρετικά ένα ή παραπάνω κενά  Οι τιμές περικλείονται μέσα σε μονά ή διπλά εισαγωγικά Παράδειγμα  Alan Turing Προγραμματισμός Εφαρμογών Διαδικτύου 19

Ιδιότητες ή στοιχεία παιδιά; (Ι) Alan Turing computer scientist mathematician ? Προγραμματισμός Εφαρμογών Διαδικτύου 20

Ιδιότητες ή στοιχεία παιδιά; (ΙΙ) Απόψεις Στις ιδιότητες βάζουμε μεταδεδομένα σχετικά με τα στοιχεία, ενώ στα παιδιά βάζουμε δεδομένα Δεν είναι πάντα σίγουρο τι είναι μεταδεδομένο… Διαφορές Κάθε στοιχείο δεν μπορεί να έχει πάνω από μια ιδιότητα με το ίδιο όνομα σε αντίθεση με πολλά στοιχεία παιδιά Οι τιμές των ιδιοτήτων μπορεί να είναι μόνο κείμενο, ενώ τα στοιχεία παιδιά μπορούν να δομηθούν περαιτέρω με νέα στοιχεία παιδιά Προγραμματισμός Εφαρμογών Διαδικτύου 21

Κανόνες ονοματολογίας (XML names)  Αφορούν  Στοιχεία και ιδιότητες  Επιτρέπονται  Αγγλικά γράμματα Α..Ζ και a..z, ψηφία 0..9  Γράμματα, αριθμοί και ιδεογράμματα από άλλες χώρες (unicode)  Τα σημεία στίξης κάτω παύλα, παύλα και τελεία  Απαγορεύονται  Άλλα σημεία στίξης (π.χ. ", ', /, $, ^, κ.α.)  Τα λευκά κενά (space, return, tab, κ.α.)  Ονόματα που ξεκινάνε από Αριθμό, παύλα ή τελεία Προγραμματισμός Εφαρμογών Διαδικτύου 22

Παραδείγματα 98 NY 32 7/23/2001 Alan I NY 32 7/23/2001 Alan I-610 Προγραμματισμός Εφαρμογών Διαδικτύου 23

Αναφορά οντότητας (entity reference)  Απαγορεύεται ο χαρακτήρας < στο περιεχόμενο  Σημαίνει έναρξη στοιχείου παιδιού  Χρήση αναφοράς οντότητας <  Απαγορεύεται ο χαρακτήρας &  Σημαίνει έναρξη αναφοράς οντότητας  Χρήση αναφοράς οντότητας &  Άλλες αναφορές οντότητας  > αντί του >  " αντί του " μέσα στην τιμή ιδιότητας  &apos; αντί του ' μέσα στην τιμή ιδιότητας Προγραμματισμός Εφαρμογών Διαδικτύου 24

Παραδείγματα Η μεγαλύτερη εταιρία τηλεπικοινωνιών στην Αμερική είναι η AT & Τ Η ετικέτα <paragraph> ανοίγει μια νέα παράγραφο Προγραμματισμός Εφαρμογών Διαδικτύου 25

Τμήματα CDATA  Το πρόβλημα  Σε μεγάλα τμήματα περιεχομένου (π.χ. κώδικας XML ή κάποιας εφαρμογής) που περιέχουν μη επιτρεπτούς χαρακτήρες, η συνεχής χρήση αναφορών οντοτήτων είναι κουραστική  Η λύση  Χρήση τμήματος CDATA  Ότι βρίσκεται εντός CDATA ΔΕΝ περνάει από τον parser της XML. Γίνεται αποδεκτό όπως είναι! Προγραμματισμός Εφαρμογών Διαδικτύου 26

Παράδειγμα Here is an example of XML code <![CDATA[ Alan Turing ]]> Προγραμματισμός Εφαρμογών Διαδικτύου 27

Σχόλια και εντολές επεξεργασίας  Σχόλια  Σημειώσεις που απευθύνονται σε ανθρώπους  Σύνταξη  Εντολές  Απευθύνονται σε προγράμματα που διαβάζουν και επεξεργάζονται το έγγραφο  Σύνταξη  Παράδειγμα Προγραμματισμός Εφαρμογών Διαδικτύου 28

H δήλωση XML  Προαιρετικά στην αρχή ενός εγγράφου XML  Την ιδιότητα version θέτουμε πάντα στην τιμή 1.0 Ελάχιστα σημαντικές οι προσθήκες στην έκδοση 1.1 Λίγοι XML parsers υποστηρίζουν την 1.1  Η ιδιότητα encoding (προαιρετική) Εξ' ορισμού UTF-8 του Unicode character set  Η ιδιότητα standalone (προαιρετική) Εξ' ορισμού είναι no, αφορά τα DTD (Document Type Definition), δηλαδή το επιτρεπτό λεξιλόγιο standalone="no": Ο XML parser θα δεχθεί εξωτερική δήλωση DTD, αν υπάρχει standalone="yes": Ο XML parser θα βγάλει error αν γίνεται αναφορά σε εξωτερικό DTD Προγραμματισμός Εφαρμογών Διαδικτύου 29

Ορθότητα  Ένα έγγραφο είναι ορθό (well-formed) όταν ακολουθούνται οι κανόνες σύνταξης της XML  Κάθε ετικέτα αρχής πρέπει να έχει μια ετικέτα τέλους  Τα στοιχεία δεν πρέπει να αλληλεπικαλύπτονται  Πρέπει να υπάρχει μόνο ένα στοιχείο ρίζα  Οι τιμές των ιδιοτήτων πρέπει να είναι σε εισαγωγικά  Ένα στοιχείο δεν μπορεί να έχει δύο ιδιότητες με το ίδιο όνομα  … Προγραμματισμός Εφαρμογών Διαδικτύου 30

Καθορισμός λεξιλογίου και δομής  Λεξιλόγιο και δομή  Ονόματα στοιχείων, επιτρεπτών ιδιοτήτων και επιτρεπτών τιμών αυτών των ιδιοτήτων  Ποια στοιχεία μπορούν ή πρέπει να περιέχονται σε άλλα elements, κτλ.  Δύο τρόποι  DTD (Document Type Definition) Αρχικός, πιο καθιερωμένος, αλλά και πιο περιοριστικός  XSD (XML Schema Definition) Προσφέρει εκτεταμένες δυνατότητες Προγραμματισμός Εφαρμογών Διαδικτύου 31

Εγκυρότητα  Ένα XML document είναι έγκυρο (valid) Αν είναι ορθό (well-formed) Αν ακολουθεί τους κανόνες δομής που έχουν καθοριστεί στο αντίστοιχο DTD ή XSD  Εργαλεία Δωρεάν φόρμες στο διαδίκτυο για online έλεγχο Πολλά προγράμματα (συνήθως εμπορικά) - Το κορυφαίο εμπορικό πρόγραμμα: XML-Spy της Altova ( - Απλός, δωρεάν XML editor της Microsoft: XML Notepad Λίστα: Προγραμματισμός Εφαρμογών Διαδικτύου 32

Namespaces  Αν συνενώσουμε δύο έγγραφα XML με διαφορετικά λεξιλόγια τότε μπορεί να προκύψει το εξής πρόβλημα.  Εφόσον δεν υπάρχει καθορισμένο λεξιλόγιο ενδέχεται δύο στοιχεία από τα διαφορετικά έγγραφα να έχουν το ίδιο όνομα.  Τα namespaces έρχονται να αντιμετωπίσουν αυτό το πρόβλημα ορίζοντας ένα πρόθεμα μπροστά από κάθε στοιχείο, το οποίο αντιστοιχεί σε κάποιο μοναδικό URI. Προγραμματισμός Εφαρμογών Διαδικτύου 33

Παράδειγμα Μήλα Αχλάδια Δερμάτινο τραπέζι σαλονιού Προγραμματισμός Εφαρμογών Διαδικτύου 34

Η ιδιότητα xmlns  Η ιδιότητα xmlns ορίζει ένα μοναδικό URI για κάποιο πρόθεμα. xmlns:πρόθεμα="URI για το πρόθεμα"  Η χρήση της ιδιότητας xmlns χωρίς πρόθεμα ορίζει ένα προκαθορισμένο (default) namespace για στοιχεία χωρίς πρόθεμα. xmlns="URI για στοιχεία χωρίς πρόθεμα"  Η ιδιότητα xmlns κληρονομείται στα στοιχεία παιδιά του στοιχείου, στο οποίο εμφανίζεται. Προγραμματισμός Εφαρμογών Διαδικτύου 35

Παράδειγμα (Ι) <document xmlns:h=" xmlns:f=" Μήλα Αχλάδια Δερμάτινο τραπέζι σαλονιού Προγραμματισμός Εφαρμογών Διαδικτύου 36

Παράδειγμα (ΙΙ) Μήλα Αχλάδια Δερμάτινο τραπέζι σαλονιού Προγραμματισμός Εφαρμογών Διαδικτύου 37

Εργασίες με έγγραφα XML (I)  Απλή ανάγνωση του αρχείου.  Με οποιονδήποτε επεξεργαστή κειμένου (editor).  Με εξειδικευμένο πρόγραμμα (XML editor).  Επεξεργασία του αρχείου (κατανόηση του).  Με κάποιον XML parser, ο οποίος. Απομονώνει τα επί μέρους τμήματα ενός XML εγγράφου (στοιχεία, ιδιότητες, δεδομένα, κτλ). Ελέγχει αν το έγγραφο είναι ορθό. Πολλές δωρεάν βιβλιοθήκες για XML parsing σε PHP, JAVA,...  XML validatιon parser. Ελέγχει επιπλέον αν το έγγραφο συμφωνεί με τους κανόνες που έχουν καθοριστεί σε κάποιο DTD ή XSD. Προγραμματισμός Εφαρμογών Διαδικτύου 38

Εργασίες με έγγραφα XML (II)  Λογισμικά που χρησιμοποιούν κάποιον XML parser για την επεξεργασία XML αρχείων:  Web browsers (IE, Firefox). Εμφάνιση XML εγγράφου.  Επεξεργαστής κειμένου (OpenOffice, StarOffice Writer Εισαγωγή/Εξαγωγή εγγράφου από/σε XML.  Βάση δεδομένων (SQL server). Εισαγωγή/εξαγωγή δεδομένων από/σε XML.  Διαχειριστής προσωπικών οικονομικών (Microsoft Money). Εισαγωγή μιας τραπεζικής συναλλαγής.  Ένα δικό σας πρόγραμμα σε οποιαδήποτε γλώσσα. Προγραμματισμός Εφαρμογών Διαδικτύου 39

Εφαρμογές XML στο web  XHTML  RSS  RDF  MathML  SVG  SMIL Προγραμματισμός Εφαρμογών Διαδικτύου 40

Altova XML Spy Προγραμματισμός Εφαρμογών Διαδικτύου 41

Microsoft XML Notepad 2007 (1/2)  Εφαρμογή: Παραγωγή HTML από XML δεδομένα, μέσω XSL μετασχηματισμού. ...με χρήση κατάλληλου XSL αρχείου (επόμενο slide) Προγραμματισμός Εφαρμογών Διαδικτύου 42

Microsoft XML Notepad 2007 (2/2) Προγραμματισμός Εφαρμογών Διαδικτύου 43

Τέλος Ενότητας