Εισαγωγή στην XML Από την Καραδημητρίου Κρυσταλλένια Οκτώβριος 2004 Από την Καραδημητρίου Κρυσταλλένια Οκτώβριος 2004 Η παρουσίαση σχεδιάστηκε με βάση την παρουσίαση στη σελίδα: http://lange.himolde.no/in-kurs/in135/lysark/chapt17.ppt
Βασικά προβλήματα στη διαχείριση πληροφοριών Συγκέντρωση Αποθήκευση Ανάκτηση Ανταλλαγή Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
SGML (πρόγονος της XML) Η διαχείριση εγγράφων καταναλώνει το: 15% του εισοδήματος της εταιρίας 25% των εργατικών εξόδων 10 - 60% της δουλειάς ενός υπαλλήλου γραφείου Η Standard generalized markup language (SGML) σχεδιάστηκε να μειώσει το κόστος της διαχείρισης εγγράφων Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Markup language Ενσωματωμένη πληροφορία μέσα στο κείμενο σχετικά με την ερμηνεία και το νόημα του κειμένου <cdliner>This uniquely creative collaboration between Miles Davis and Gil Evans has already resulted in two extraordinary albums—<cdtitle>Miles Ahead</cdtitle><cdid>CL 1041></cdid> and <cdtitle>Porgy and Bess</cdtitle> <cdid>CL 1274</cdid>.</cdliner> Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια SGML Ένα ανεξάρτητο πρότυπο για έκδοση σε όλα τα μέσα Σε διαφορετικά συστήματα Καθορίζει τη δομή ενός εγγράφου Η γλώσσα από την οποία προήλθαν οι HTML και XML Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια SGML: Πλεονεκτήματα Ίδια πλεονεκτήματα με την επεξεργασία κειμένου Ευελιξία Παράγει αποτέλεσμα για πολλαπλά μέσα Βελτιωμένες εκδόσεις Έλεγχος εκδόσεων των εγγράφων Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια SGML: Μειονεκτήματα Είναι αρκετή πολύπλοκη και δύσχρηστη γλώσσα. Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια SGML κώδικας <chapter> <no>16</no> <title>XML: Managing Data Exchange</title> <section> <quote><emph type = "2">Words can have no single fixed meaning. Like wayward electrons, they can spin away from their initial orbit and enter a wider magnetic field. No one owns them or has a proprietary right to dictate how they will be used.</emph></quote> … </section> </chapter> Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια HTML κώδικας <html> <body> <h1><b>16</b></h1> <h1><b>XML: Managing Data Exchange</b></h1> <p> <i>Words can have no single fixed meaning. Like wayward electrons, they can spin away from their initial orbit and enter a wider magnetic field. No one owns them or has a proprietary right to dictate how they will be used.</i> </p> </body> </html> Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Προβλήματα με την HTML Η παρουσίαση δεν έχει κάποιο νόημα Ο αναγνώστης συμπεραίνει το νόημα Οι μηχαχές δεν είναι καλές στο να συμπεραίνουν το νόημα Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια XML Extensible markup language – Μία απλή έκδοση της sgml Σχεδιασμένη για να εισάγει την sgml στο διαδίκτυο Μια μετα-γλώσσα (meta-language) Μια γλώσσα που παράγει γλώσσες Θα αντικαταστήσει σταδιακά την HTML Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια XML ενάντια HTML Δομημένο κείμενο Δομή καθορισμένη από το χρήστη Αποδοτικότερη διασύνδεση υπερκειμένου Ευέλικτο και προσαρμόσιμο κείμενο Μορφοποιημένο κείμενο Προκαθορισμένη μορφή Περιορισμένη διασύνδεση υπερκειμένου Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Κανόνες στην XML Τα στοιχεία (elements) πρέπει να έχουν μια ετικέτα ανοίγματος και μία ετικέτα (tag) κλεισίματος Τα στοιχεία ακολουθούν μια αυστηρή ιεραρχία με ένα μόνο στοιχείο ρίζα (root element) και τα υπόλοιπα στοιχεία μέσα σε αυτό Τα στοιχεία δε μπορούν να υπερκαλύπτουν (μοιράζονται) άλλα στοιχεία Τα ονόματα των στοιχείων πρέπει να υπακούουν τις συμβάσεις ονομάτων της XML Η XML διαχωρίζει μικρά – κεφαλαία (case sensitive) Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Η HTML ενάντια στην XML HTML XML <p><b>MIST7600</b> Data Management<br> 3 credit hours</p> <course> <code>MIST7600</code> <title>Data Management</title> <credit>3</credit> </course> Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Αναζήτηση Οι μηχανές αναζήτησης αναζητούν συγκεκριμένες ετικέτες (tags) στον κώδικα XML Ταχύτερα Με μεγαλύτερη ακρίβεια Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Αναμενόμενα κέρδη Αποθήκευση μια φορά και μορφοποίηση πολλές φορές Ανεξαρτησία υλικού - λογισμικού Συγκέντρωση δεδομένων μια φορά και ανταλλαγή πολλές φορές Ταχύτερη εστιασμένη αναζήτηση Μικρότερη συμφόρηση του δικτύου Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια XML Προδιαγραφές XML 1.0 Καθορίζει το συντακτικό της XML XPointer, XLink Καθορίζει ένα συγκεκριμένο τρόπο να αναπαριστά τους συνδέσμους μεταξύ των διαφόρων πηγών (resources) XSL Καθορίζει μία γλώσσα για το στυλ – μορφή της XML Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
XML – σχεδιασμός γλώσσας Οι σχεδιαστές λογισμικού πρέπει να καθορίσουν: Επιτρεπόμενες ετικέτες Κανόνες για εμφωλευμένες ετικέτες Ποια στοιχεία μπορούν να έχουν περεταίρω επεξεργασία Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Τα Στοιχεία και το περιεχόμενο τους Στοιχείο (element) Τύπος στοιχείου (element type) <bibliography> <paper ID="object-fusion"> <authors> <author>Y.Papakonstantinou</author> <author>S. Abiteboul</author> <author>H. Garcia-Molina</author> </authors> <fullPaper source="fusion"/> <title>Object Fusion in Mediator Systems</title> <booktitle>VLDB 96</booktitle> </paper> </bibliography> Περιεχόμενο στοιχείου Άδειο στοιχείο Περιεχόμενο χαρακτήρα Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Ιδιότητες στοιχείων Όνομα ιδιότητας <bibliography> <paper pid="object-fusion"> <authors> <author>Y.Papakonstantinou</author> <author>S. Abiteboul</author> <author>H. Garcia-Molina</author> </authors> <fullPaper source="fusion"/> <title>Object Fusion in Mediator Systems</title> <booktitle>VLDB 96</booktitle> </paper> </bibliography> Τιμή ιδιότητας Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια DOM Document object model Tο μοντέλο δεδομένων για ένα XML έγγραφο Ένα δένδρο (1:m) Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Μοντέλο για τη δομή του DOM και API Ιεραρχία των αντικειμένων των κόμβων: έγγραφο, στοιχείο, ιδιότητα, κείμενο, σχόλιο, ... Προγραμματισμός ανεξάρτητος γλώσσας DOM API: get... first/last child, prev/next sibling, childNodes insertBefore, replace getElementsByTagName ... Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια XML Σχήμα (Schema) Το σχήμα καθορίζει Τα ονόματα και το περιεχόμενο όλων των στοιχείων που είναι επιτρεπτά σε ένα συγκεκριμένο έγγραφο Τη δομή ενός εγγράφου Πόσο συχνά ένα στοιχείο μπορεί να εμφανίζεται Τη σειρά με την οποία τα στοιχεία πρέπει να εμφανίζονται Ο τύπος των δεδομένων που το στοιχείο περιλαμβάνει Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Schema (cdlib.xsd) Δήλωση XML και ρίζα (root) όλων των εγγράφων σχήματος (schema documents) <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'> Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Schema (cdlib.xsd) CD library definition <xsd:element name="cdlibrary"> <xsd:complexType> <xsd:sequence> <xsd:element name="cd" type="cdType" minOccurs="1” maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Schema (cdlib.xsd) CD definition <xsd:complexType name="cdType"> <xsd:sequence> <xsd:element name="cdid" type="xsd:string"/> <xsd:element name="cdlabel" type="xsd:string"/> <xsd:element name="cdtitle" type="xsd:string"/> <xsd:element name="cdyear" type="xsd:integer"/> <xsd:element name="track" type="trackType" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Schema (cdlib.xsd) Track definition <xsd:complexType name="trackType"> <xsd:sequence> <xsd:element name="trknum" type="xsd:integer"/> <xsd:element name="trktitle" type="xsd:string"/> <xsd:element name="trklen" type="xsd:time"/> </xsd:sequence> </xsd:complexType> Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Κοινοί τύποι δεδομένων χαρακτήρας Λογική τιμή uriReference δεκαδικός πραγματικός ακέραιος χρόνος ημερομηνία Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια XML (cd.xml) <?xml version = "1.0” encoding=“UTF-8”?> <cdlibrary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cdlib.xsd"> <cd> <cdid>A2 1325</cdid> <cdlabel>Atlantic</cdlabel> <cdtitle>Pyramid</cdtitle> <cdyear>1960</cdyear> <track> <trknum>1</trknum> <trktitle>Vendome</trktitle> <trklen>2:30</trklen> </track> … </cd> </cdlibrary> Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια XSLT μοντέλο επεξεργασίας XML δέντρο προέλευσης XSLT stylesheet Μεταμόρφωση XML,HTML,csv, text… τελικό δέντρο Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια XSL Extensible stylesheet language Καθορίζει πως ένα XML έγγραφο μετατρέπεται από μια μορφή σε άλλη Διαφορετικές XSL μορφοποιήσεις μπορούν να χρησιμοποιηθούν για να παρουσιάσουν το ίδιο xml έγγραφο με διαφορετικούς τρόπους Είναι ένα XML αρχείο Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια XSL Αποτελέσματα εφαρμογής του cd.xsl Pyramid, Atlantic, 1960 [A2 1325] 1 Vendome 00:02:30 2 Pyramid 00:10:46 Ella Fitzgerald, Verve, 2000 [D136705] 1 A tisket, a tasket 00:02:37 2 Vote for Mr. Rhythm 00:02:25 3 Betcha nickel 00:02:52 Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
cd.xsl <?xml version="1.0" encoding="UTF-8”?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head> <title>Complete List of Songs</title> </head> <body> <h2>Complete List of Songs</h2> <xsl:apply-templates select= "cdlibrary/cd" /> <xsl:for-each select="//cd"> <font color="maroon"> <xsl:value-of select="cdtitle" /> , <xsl:value-of select="cdlabel" /> , <xsl:value-of select="cdyear" /> [ <xsl:value-of select="cdid" />] </font> <br />
cd.xsl (συνέχεια) <xsl:for-each select= "track"> <tr> <table> <xsl:for-each select= "track"> <tr> <td align="left"> <xsl:value-of select= "trknum" /> </td> <td> <xsl:value-of select= "trktitle" /> <td align= "center" > <xsl:value-of select= "trklen" /> </tr> </xsl:for-each> </table> <br /> </body> </html> </xsl:template> </xsl:stylesheet>
Καραδημητρίου Κρυσταλλένια XSLT Παράδειγμα συνέχεια ... Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
XML και Βάσεις δεδομένων Χρειάζεται ένα DBMS Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Απαιτήσεις της DBMS Να αποθηκεύει ένα μεγάλο αριθμό εγγράφων Να αποθηκεύει μεγάλα έγγραφα Να Υποστηρίζει πρόσβαση σε τμήματα του εγγράφου(π.χ., τα δεδομένα για ένα απλό CD σε μια βιλιοθήκη 20,000 CDs) Ταυτόχρονη πρόσβαση Έλεγχος εκδόσεων Να συγκεντρώνει δεδομένα από άλλες πηγές Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια RDBMS Εστιασμένο σε έγγραφα Αποθηκεύεται ως CLOB Εστιασμένο σε δεδομένα Αντικειμενο – σχεσιακές επεκτάσεις που υποστηρίζουν ανάκτηση στοιχείων και ανανέωση Αναμένεται οι φορείς RDBMS να προσφέρουν επεκτάσεις που υποστηρίζουν XML Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Βάσεις δεδομένων σε XML Μια σημαντική αναλογία από σελίδες του δικτύου παράγονται από βάσεις δεδομένων Αντί να μετατρέπονται σε HTML θα έπρεπε να μετατρέπονται σε XML Μετατροπή με το XSLσε HTML Χρειάζονται εργαλεία για να μετατραπούν σχεσιακά δεδομένα σε XML Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Παράδειγμα: Σχεσιακά δεδομένα με XML R tuple A a1 /A B b1 /B C c1 /C /tuple A a2 /A B b2 /B C c2 /C … /R c2 b2 a2 c3 b3 a3 c1 b1 a1 C B A R tuple A B C a1 b1 c1 a2 b2 c2 a3 b3 c3 Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Απλά εργαλεία Συγγραφής MS Notepad (Απλός Επεξεργαστής κειμένου) Textpad MS XML Notepad Beta 1.5 Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια
Καραδημητρίου Κρυσταλλένια Συμπεράσματα Η XML αποτελεί μια σημαντική τεχνολογική ανάπτυξη Ο βασικός της στόχος είναι να υποστηρίζει την ανταλλαγή δεδομένων Περιορίζει το κόστος των επαγγελματικών συναλλαγών Εισαγωγή στην XML Καραδημητρίου Κρυσταλλένια