ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ XML (extended Markup Language) Ι. Χατζηλυγερούδης
ΕΙΣΑΓΩΓΗ SGML (Standard Generalized Markup Language) Διεθνές πρότυπο ορισμού μεθόδων αναπαράστασης πληροφοριών ανεξάρτητα από συσκευή/σύστημα και χρήση/ανάγνωση Εφαρμογές SGML: Γλώσσες που υπακούουν στο πρότυπο αυτό. Π.χ. HTML XML
XML vs HTML <H2> Nonmonotonic Reasoning: Context-Dependent Reasoning</H2> <i>by <b>v. Marek</b> and <b>m. Truszczynski</b></i> <br> Springer 1993<br> ISBN 0387976892 <book> <title> Nonmonotonic Reasoning: Context-Dependent Reasoning</title> <author>v. Marek</author> <author>m. Truszczynski</author> <publisher>springer</publisher> <year>1993</year> <ISBN>0387976892</ISBN> </book>
Ομοιότητες XML vs HTML Είναι γλώσσες σήμανσης (markup) Χρησιμοποιούν ετικέτες (tags) Εύκολα αναγνώσιμες από άνθρωπο Διαφορές Όλες οι ετικέτες στην XML πρέπει να κλείνουν (στην HTML όχι: π.χ. <br>) Η HTML είναι δύσκολα αναγνώσιμη από μηχανές Η HTML δεν περιέχει δομική πληροφορία (οντότητεςσχέσεις) Η XML επιτρέπει ορισμό περιορισμών σε τιμές (π.χ. έτος)
XML vs HTML Διαφορές (συν.) Οι ετικέτες στην HTML είναι προκαθορισμένες (αφορούν μορφοποίηση κειμένου) Η XML είναι μια μετα-γλώσσα για σήμανση-οι ετικέτες δεν είναι προκαθορισμένες, αλλά ορίζονται από τους χρήστες επεκτάσιμη (MathML, BSML, HRML, AML, NewsML, IRML κλπ)
Γλώσσα XML Πρόλογος Στοιχεία (XML elements) Χαρακτηριστικά (XML attributes) Σχόλια Οδηγίες επεξεργασίας
Γλώσσα XML Πρόλογος Στοιχεία (XML elements) Χαρακτηριστικά (XML attributes) Σχόλια Οδηγίες επεξεργασίας
Πρόλογος Δήλωση XML (XML declaration) <?xml version= 1.0 [encoding= UFT-16?]> <?xml version= 1.0 [encoding= UFT-16? standalone = no ]> Αναφορά σε εξωτερικά έγγραφα <!DOCTYPE book SYSTEM book.dtd > (οι δομικές πληροφορίες βρίσκονται στο τοπικό αρχείο book.dtd)
Γλώσσα XML Πρόλογος Στοιχεία (XML elements) Χαρακτηριστικά (XML attributes) Σχόλια Οδηγίες επεξεργασίας
Στοιχεία (1) Αναφέρονται στις κύριες έννοιες ενός εγγράφου XML Στοιχείο: <tag-name>content</tag-name> Π.χ. <lecturer>david Hamilton</lecturer> Τα ονόματα ετικετών (tag-names) ορίζονται από τον χρήστη Πρώτος χαρακτήρας γράμμα/underscore/ : Δεν μπορεί να αρχίζει με xml ή παραλλαγές του
Στοιχεία (2) Το περιεχόμενο (content) ενός στοιχείου μπορεί να είναι κείμενο ή άλλα στοιχεία ή τίποτα. Π.χ. <lecturer> <name>david Hamilton</name> <phone>+302610994555</phone> </lecturer> Αν δεν υπάρχει περιεχόμενο (content), τότε το στοιχείο αποκαλείται κενό (empty). Π.χ. <lecturer></lecturer> ή <lecturer/>
Γλώσσα XML Πρόλογος Στοιχεία (XML elements) Χαρακτηριστικά (XML attributes) Σχόλια Οδηγίες επεξεργασίας
Χαρακτηριστικά (1) Ένα κενό στοιχείο μπορεί να περιέχει ορισμένες ιδιότητες με τη μορφή «χαρακτηριστικών» Χαρακτηριστικό: <όνομα>=<τιμή> στην ετικέτα ανοίγματος ενός στοιχείου (κενού ή μη). Π.χ. name= David Hamilton, phone= +302610994555 Παραδείγματα: Κενό στοιχείο <lecturer name= David Hamilton, phone= +302610994555 /> <order orderno= 23456 customer= John Smith date= October 15, 2002 > <item itemno= a528 quantity= 1 /> <item itemno= c817 quantity= 3 /> </order> Μη κενό στοιχείο
Χαρακτηριστικά (2) Το προηγούμενο μπορεί να γραφεί και ως εξής (χωρίς χρήση χαρακτηριστικών): <order> <orderno>23456</orderno> <customer>john Smith</customer> <date>march 24, 2009</date> <item> <itemno>a528</itemno> <quantity>1</quantity> </item> <item> <itemno>c817</itemno> <quantity>3</quantity> </item> </order> Τα χαρακτηριστικά δεν μπορούν να είναι ένθετα.
Γλώσσα XML Πρόλογος Στοιχεία (XML elements) Χαρακτηριστικά (XML attributes) Σχόλια Οδηγίες επεξεργασίας
Σχόλια Είναι κομμάτι κειμένου που αγνοείται από τον συντακτικό αναλυτή. <! Αυτό είναι ένα σχόλιο -->
Γλώσσα XML Πρόλογος Στοιχεία (XML elements) Χαρακτηριστικά (XML attributes) Σχόλια Οδηγίες επεξεργασίας
Οδηγίες Επεξεργασίας Παρέχουν ένα μηχανισμό μεταβίβασης πληροφοριών σε μια εφαρμογή σχετικά με το χειρισμό στοιχείων από αυτή. Γενική μορφή: <?target instruction?> Π.χ. <?stylesheet type= text/css href= mystyle.css?>
Κανόνες Δόμησης Εγγράφου XML Μόνο ένα εξωτερικό στοιχείο (στοιχείο ρίζα) Κάθε στοιχείο περιέχει μια ετικέτα ανοίγματος και μια αντίστοιχη κλεισίματος Δεν υπάρχουν επικαλύψεις ετικετών: <author><name>lee Hong</author></name> Τα χαρακτηριστικά σ ένα στοιχείο έχουν μοναδικά ονόματα Τα ονόματα των στοιχείων και των ετικετών πρέπει να είναι επιτρεπτά
Δενδρικό Μοντέλο Δόμησης (1) Είναι εφικτό να αναπαριστούμε σωστά δομημένα έγγραφα XML σαν δένδρα Κανόνες: Υπάρχει ακριβώς μια ρίζα Δεν υπάρχουν κύκλοι Κάθε κόμβος έχει ακριβώς ένα γονέα (πλην της ρίζας) Κάθε κόμβος έχει μια ετικέτα Η σειρά των στοιχείων είναι σημαντική
Δενδρικό Μοντέλο Δόμησης (2) <?xml version= 1.0 encoding= UTF-16?> <!DOCTYPE email SYSTEM email.dtd > <email> <head> <from name= Michael Maher address=michaelmaher@cs.gu.edu.au /> <to name= Grigoris Antoniou address=grigoris@cs.unibremen.de /> <subject>where is the draft?</subject> </head> <body> Grigori, where is the draft paper you promised me? </body> </email>
Δενδρικό Μοντέλο Δόμησης (3) Root ρίζα (root) email Στοιχείο-ρίζα (root element) head body from to subject name address name address Michael Maher michaelmaher @cs.gu.edu.au Grigoris Antoniou grigoris@cs.uni bremen.de Where is your draft? Grigori, where the draft of the paper you promissed me?
Δενδρικό Μοντέλο Δόμησης (4) Κάποια προβλήματα Δεν αναπαρίσταται το γεγονός ότι η σειρά των στοιχείων είναι σημαντική ενώ των χαρακτηριστικών όχι. Π.χ. τα <person lastname= Woo firstname= Jason /> <person lastname= Woo firstname= Jason /> είναι ισοδύναμα. Δεν υπάρχει διάκριση τύπων κόμβων (στοιχείων, χαρακτηριστικών κλπ).
Ορισμός Δόμησης Ανάγκη για χρήση κοινού «λεξιλογίου» στοιχείων και χαρακτηριστικών για «επικοινωνία» διαφορετικών εφαρμογών. Που σημαίνει Ορισμός ονομάτων στοιχείων και χαρακτηριστικών που θα χρησιμοποιηθούν Ορισμός δομής των στοιχείων και χαρακτηριστικών (π.χ. ποιες οι επιτρεπόμενες τιμές των χαρακτηριστικών, ποια στοιχεία μπορούν να εμφανίζονται μέσα σε άλλα στοιχεία κλπ)
Τρόποι Ορισμού Δόμησης DTD (Document Type Definition) Παλαιότερος Πιο περιορισμένος XML Schema Νεώτερος Πλουσιότερος
DTD-Στοιχεία (1) <lecturer> <name>david Hamilton</name> <phone>+302610994555</phone> </lecturer> στοιχείο (του lecturer) τύπος στοιχείου (lecturer) Αντίστοιχο DTD <!ELEMENT lecturer (name, phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT phone (#PCDATA)>
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 με οποιαδήποτε σειρά)- προβληματικό για πολλά στοιχεία
DTD-Χαρακτηριστικά <order orderno= 23456 customer= John Smith date= October 15, 2002 > <item itemno= a528 quantity= 1 /> <item itemno= c817 quantity= 3 /> </order> τελεστής πληθικότητας (cardinality operators) <!ELEMENT order (item+)> <!ATTLIST order λίστα χαρακτηριστικών orderno ID #REQUIRED (attribute list) customer CDATA #REQUIRED date CDATA #REQUIRED> <!ELEMENT item EMPTY> ονόματα χαρακτηριστικών <!ATTLIST item τύποι χαρακτηριστικών τύποι τιμών itemno ID #REQUIRED quantity CDATA #REQUIRED comments CDATA #IMPLIED>
DTD-Χαρακτηριστικά Τελεστές πληθικότητας? : εμφάνιση καμία ή μία * : εμφάνιση καμία ή περισσότερες + : εμφάνιση μία ή περισσότερες Τύποι χαρακτηριστικών CDATA : αλφαριθμητικό ID : μοναδικό όνομα IDREF/IDREFS : αναφορά/ες σε άλλο/α στοιχείο/α (v1 vn) : απαρίθμηση τιμών
DTD-Χαρακτηριστικά Τύποι τιμών #REQUIRED : το χαρακτηριστικό αυτό πρέπει να υπάρχει σε κάθε του τύπου #IMPLIED : προαιρετική εμφάνιση χαρακτηριστικού (π.χ. σχόλια) #FIXED value : Κάθε στοιχείο πρέπει να έχει αυτό το χαρακτηριστικό, που έχει πάντα την τιμή value value : Προεπιλεγμένη τιμή χαρακτηριστικού (μπορεί να επικαλυφθεί από τιμή του χρήστη)
DTD-Χαρακτηριστικά Αναφορές <!ELEMENT family (person*)> <!ELEMENT person (name)> <!ELEMENT name (#PCDATA)> <!ATTLIST person id ID #REQUIRED mother IDREF #IMPLIED father IDREF #IMPLIED children IDREFS #IMPLIED>
DTD-Χαρακτηριστικά <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>
DTD-Χαρακτηριστικά Οντότητες XML Παίζουν διάφορους ρόλους Δεσμευτικό θέσης επαναλαμβανόμενων χαρακτήρων Τμήμα εξωτερικών δεδομένων Μέρος δήλωσης στοιχείων Τυπική χρήση: σαν σταθερές Σύνταξη <!ENTITY <entity-name> <entity-value>>
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>
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>
DTD-Χαρακτηριστικά Αναδρομικός ορισμός <!ELEMENT bintree ((bintree root bintree) emptytree)>