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

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

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 3: Server Side Scripting II PHP & MySQL

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

Εισαγωγή στους Αλγορίθμους

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος)

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

Οντοκεντρικός Προγραμματισμός

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας Ενότητα 10 η : Ανάλυση Εικόνας. Καθ. Κωνσταντίνος Μπερμπερίδης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων περίπτωσης χρήσης (1ο Μέρος)

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Κβαντική Επεξεργασία Πληροφορίας

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Βέλτιστος Έλεγχος Συστημάτων

Διοικητική Λογιστική

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Εκπαιδευτική Διαδικασία και Μάθηση στο Νηπιαγωγείο Ενότητα 1: Εισαγωγή

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

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

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Βάσεις Περιβαλλοντικών Δεδομένων

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Πληροφορική ΙΙ Θεματική Ενότητα 5

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Κβαντική Επεξεργασία Πληροφορίας

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Ευφυής Προγραμματισμός

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 2: Εφαρμογές Δικτυωτής Ανάλυσης (1 ο Μέρος)

Ευφυής Προγραμματισμός

Προσχολική Παιδαγωγική Ενότητα 2: Οργάνωση χρόνου και χώρου στα νηπιαγωγεία

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

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Οντοκεντρικός Προγραμματισμός

Διδακτική των εικαστικών τεχνών Ενότητα 1

Διοικητική Λογιστική

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 6: Συμπίεση Έργου

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.3.2: Παραδοσιακή VS νέα προσέγγιση της ΔΟΠ

Οντοκεντρικός Προγραμματισμός

ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

ΘΕΡΜΟΔΥΝΑΜΙΚΗ Ι. Ενότητα 2: Θερμοδυναμικές συναρτήσεις. Σογομών Μπογοσιάν Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Οντοκεντρικός Προγραμματισμός

Ευφυής Προγραμματισμός

Διδακτική των εικαστικών τεχνών Ενότητα 3

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT

Κβαντική Φυσική Ι. Ενότητα 16: Αναπαράσταση τελεστών με μήτρες. Ανδρέας Τερζής Σχολή Θετικών Επιστημών Τμήμα Φυσικής

Κβαντική Φυσική Ι. Ενότητα 19: Εισαγωγή στα τετραγωνικά δυναμικά. Ανδρέας Τερζής Σχολή Θετικών Επιστημών Τμήμα Φυσικής

Δομές Δεδομένων Ενότητα 3

Αριθμητική Ανάλυση. Ενότητα 1: Εισαγωγή Βασικές Έννοιες. Φραγκίσκος Κουτελιέρης Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

Εισαγωγή στους Υπολογιστές

Μάρκετινγκ Αγροτικών Προϊόντων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Κβαντική Επεξεργασία Πληροφορίας

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.3.3: Μεθοδολογία εφαρμογής προγράμματος Ολικής Ποιότητας

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

Επιχειρησιακή Έρευνα

ΕΦΑΡΜΟΣΜΕΝΗ ΗΘΙΚΗ. Ενότητα 9: Σχέση Ηθικής και Δικαιοσύνης. Παρούσης Μιχαήλ. Τμήμα Φιλοσοφίας

Οντοκεντρικός Προγραμματισμός

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Θεωρία Λήψης Αποφάσεων

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Βάσεις Δεδομένων Ενότητα 1

Ενδεικτικές λύσεις ασκήσεων

2 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Κβαντική Φυσική Ι. Ενότητα 12: Ασκήσεις. Ανδρέας Τερζής Σχολή Θετικών Επιστημών Τμήμα Φυσικής

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Ευφυής Προγραμματισμός

Διδακτική Πληροφορικής

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

Transcript:

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

Σκοποί ενότητας Σκοπός της παρούσας ενότητας είναι να εξοικειωθούν οι φοιτητές με τα βασικά χαρακτηριστικά της ΧSL και πως μπορούν να χρησιμοποιήσουν αυτά για να μορφοποιήσουν ένα XML αρχείο. 2

Περιεχόμενα ενότητας Stylesheet αρχεία XSL - EΧtensible Stylesheet Language XSLT Xpath - XSL-FO - XSL Formatting Objects - XQuery Δήλωση ενός XSL αρχείου Μετατροπή XML αρχείου σε HTMLΤα στοιχεία ενός XSL αρχείου DOM Document Object Model DOM Node Interface Φόρτωση XML αρχείου στον parser DOM node object XML αρχείο για DOM 3

XML EXtensible Markup Language Η XML δεν έχει σκοπό να αντικαταστήσει την HTML, αλλά να την συμπληρώσει Η HTML σχεδιάστηκε για να παρουσιάζει δεδομένα δίνοντας έμφαση στο πώς αυτά φαίνονται Η XML σχεδιάστηκε για να περιγράφει δεδομένα δίνοντας έμφαση στο τι είδος δεδομένα είναι Η XML χρησιμοποιείται για την ανταλλαγή δεδομένων Επιτρέπει σαφή ορισμό των δεδομένων Όλοι οι συμμετέχοντες «μεταφράζουν» με τον ίδιο τρόπο τα δεδομένα Σχεδιάστηκε για τον ορισμό δεδομένων Οι δομές δεδομένων ανεξάρτητες από την πλατφόρμα Εύκολη η αυτόματη επεξεργασία των δεδομένων Ο χρήστης μπορεί να ορίσει τα δικά του tags Ένα DTD (Document Type Definition) ή ένα XML Schema ορίζει τη σύνταξη ενός XML αρχείου Δεν περιγράφει τον τρόπο εμφάνισης δεδομένων! Ένα XSL αρχείο ορίζει την εμφάνιση ενός XML αρχείου 4

Stylesheet αρχεία CSS Cascading Style Sheets Χρησιμοποιούνται στην HTML XSL - eχtensible Stylesheet Language Μετατρέπουν XML αρχεία σε HTML Είτε client side είτε server side Προτιμότερο server side 5

XSL - EΧtensible Stylesheet Language Δεν είναι μία απλή style sheet γλώσσα Ένα σύνολο γλωσσών XSLT- μετατροπή XML αρχείων XPath ορισμός τμημάτων ενός XML αρχείου XSL-FO μορφοποίηση XML αρχείων & δεδομένων XQuery υποβολή ερωτημάτων σε xml δεδομένα 6

XSLT Μετατρέπει XML αρχεία σε άλλα XML αρχεία αρχεία αναγνωρίσιμα από τους browsers, πχ HTML, XHTML Αντιστοιχώντας σε ένα XML element ένα (X)HTML element Προσθέτει ή αφαιρεί καινούρια elements στο παραγόμενο αρχείο Ταξινομεί elements Ορίζει τον τρόπο αναπαράστασης των δεδομένων Το XSLT μετατρέπει ένα XML source tree σε ένα XML result tree 7

XPath Ένας τρόπος για να: ορίζουμε τμήματα ενός xml αρχείου πλοηγούμαστε σε xml αρχεία Χρησιμοποιεί εκφράσεις για να επιλέξει κόμβους ή σύνολα κόμβων ενός xml αρχείου και μοιάζει με τον τρόπο διαχείρισης ενός παραδοσιακού συστήματος διαχείρισης αρχείων ενός υπολογιστή. Περιέχει ένα σύνολο συναρτήσεων για αλφαριθμητικές και αριθμητικές εκφράσεις, εκφράσεις σύγκρισης ημερομηνίας και χρόνου, διαχείρισης κόμβων, τιμές Boolean κα. Σε αυτό το πρότυπο βασίζονται τα πρότυπα XQuery και XPointer. Αποτελεί πρότυπο της w3c από το Νοέμβριο, 1999 8

XSL-FO - XSL Formatting Objects Γλώσσα μορφοποίησης XML δεδομένων Περιγράφει την μορφοποίηση για έξοδο σε οθόνη, χαρτί ή άλλου τύπου media Το XSLΤ (transforming) κάνει τροποποίηση ενώ το XSL-FO κάνει μορφοποίηση (formatting). Αποτελεί πρότυπο από τον Οκτώβριο του 2001. Τυπικά ονομάζεται XSL 9

XQuery Είναι γλώσσα υποβολής ερωτημάτων (queries) σε XML δεδομένα Είναι για την XML ότι η SQL για τις βάσεις δεδομένων. Υποστηρίζεται από όλες τις μεγάλες μηχανές διαχείρισης βάσεων (IBM, oracle, Microsoft, κα.) Χρησιμοποιεί XPath εκφράσεις Ορίζεται από τη W3C αλλά δεν αποτελεί ακόμη πρότυπο Είναι μια γλώσσα για εύρεση και εξαγωγή elements και attributes από xml documents Χρησιμοποιεί τις ίδιες συναρτήσεις και τους ίδιους τελεστές με το XPath Εξάγει πληροφορία που μπορεί να χρησιμοποιηθεί σε web services Μπορεί να χρησιμοποιηθεί για αναζήτηση σε web documents για σχετική πληροφορία 10

Internet Explorer 6 XSLT - συμβατότητα Διαθέτει τον MSXML Parser 3.0 Chrome 1 Firefox 3 (από 1.0.2 και μετά) Opera 9, o Οpera 8 έχει μόνο xml, css Apple Safari 3 11

Δήλωση ενός XSL αρχείου Root element <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform" > <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform" > 12

Ένα απλό XSL αρχείο <?xml version = "1.0"?> <!-- Simple XSLT document for intro.xml --> <xsl:stylesheet version = "1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match = "mymessage"> <html> <body><xsl:value-of select = "message"/></body> </html> </xsl:template> </xsl:stylesheet> 13

Μετατροπή XML αρχείου σε HTML Δήλωση μέσα στο XML αρχείο για τη σύνδεση με το XSL αρχείο <?xml-stylesheet type = "text/xsl" href = "intro.xsl"?> XSL αρχείο XML αρχείο 14

Τα στοιχεία ενός XSL αρχείου (1) <xsl:template match= tag-name > </xsl:template> Ορίζει τον HTML κώδικα για ένα συγκεκριμένο XML tag <xsl:value-of select= tag-name > </xsl:value-of> Επιστρέφει την τιμή ενός attribute ενός tag ή το κείμενο που σχετίζεται με έναν κόμβο του XML κειμένου <xsl:for-each select= tag-name > <xsl:for-each> Επαναλαμβάνει ότι ακολουθεί για κάθε tag που ταιριάζει με το συγκεκριμένο tag name. <xsl:sort select= tag-name /> Ορίζει με βάση ποιο tag να γίνει η ταξινόμηση 15

Τα στοιχεία ενός XSL αρχείου (2) <xsl:if test="price > 10">...</xsl:if> Εάν η συνθήκη παίρνει την τιμή true τότε εμφανίζεται το αποτέλεσμα στον browser <xsl:choose> <xsl:when test="price > 10">...</xsl:when> <xsl:otherwise>...</xsl:otherwise> </xsl:choose> <xsl:apply-templates match= name /> Εφαρμόζει όλα τα δυνατά templates στα tags που ταιριάζουν στην περιγραφή <xsl:element name = Name >...</xsl:element> Ορίζει ένα element δυναμικά <xsl:attribute name = Name >Value</xsl:attribute> Ορίζει ένα attribute για ένα element 16

<xsl:template> Ένα XSL αποτελείται από ένα σύνολο κανόνων, τα templates <xsl:template match= tag-name > </xsl:template> Κάθε στοιχείο <xsl:template> περιέχει κανόνες που θα εφαρμοστούν όταν βρεθεί ένα συγκεκριμένο XML element Το πεδίο match συνδέει το template με ένα XML element Ορισμός ενός template για ένα ολόκληρο XML αρχείο match="/ XSL αρχείο XML αρχείο 17

<xsl:value-of> <xsl:value-of select= tag-name > </xsl:value-of> Επιστρέφει την τιμή ενός attribute ενός element ή ενός κόμβου του XML αρχείου Το πεδίο select είναι απαραίτητο και περιέχει μία XPath expression Χρησιμοποιεί το forward slash (/) για να επιλέγει υποκαταλόγους <title>isbn <xsl:value-of select = "@isbn"/> - <xsl:value-of select = "title"/></title> XSL αρχείο XML αρχείο 18

<xsl:for-each> (1) <xsl:for-each select= tag-name > <xsl:for-each> Επιτρέπει τον ορισμό looping στο XSLT Ότι περιέχεται μεταξύ του start και end tag επαναλαμβάνεται για όσα XML elements ταιριάζουν με το tag name που έχει επιλεχθεί Το πεδίο select είναι απαραίτητο και περιέχει μία XPath expression <xsl:for-each select="catalog/cd"> <tr><td><xsl:value-of select="title" /></td> <td><xsl:value-of select="artist" /></td></tr> </xsl:for-each> XSL αρχείο XML αρχείο 19

<xsl:for-each> (2) Στο πεδίο select μπορούμε να προσθέσουμε ένα κριτήριο για να φιλτράρουμε τα δεδομένα από ένα XML αρχείο <xsl:for-each select="catalog/cd[artist='bob Dylan']"> Τελεστές φιλτραρίσματος = (ίσο)!= (διάφορο) < (< μικρότερο) > (> μεγαλύτερο) XSL αρχείο XML αρχείο 20

<xsl:sort> Ταξινόμηση αποτελέσματος <xsl:sort select= tag-name /> Το element sort πρέπει να μπει μέσα στο for-each element στο XSL αρχείο <xsl:for-each select="catalog/cd"> <xsl:sort select="artist"/> <tr><td><xsl:value-of select="title" /></td> <td><xsl:value-of select="artist" /></td></tr> </xsl:for-each> Το πεδίο select δηλώνει με βάση ποιο XML element θα γίνει η ταξινόμηση XSL αρχείο XML αρχείο 21

<xsl:if> <xsl:if test="price > 10">...</xsl:if> Το περιεχόμενο του if element εμφανίζεται εάν η συνθήκη είναι αληθής (true) Το if element μπορεί να τοποθετηθεί οπουδήποτε μέσα σε ένα XSL αρχείο <xsl:if test="price > 10"> some output... </xsl:if> Το πεδίο test είναι απαραίτητο και περιέχει τη συνθήκη που θα ελεγχθεί XSL αρχείο XML αρχείο 22

<xsl:choose> Για πολλαπλούς ελέγχους συνθήκης <xsl:choose> <xsl:when test="price > 10">...</xsl:when> <xsl:otherwise>...</xsl:otherwise> </xsl:choose> Το choose element μπορεί να τοποθετηθεί οπουδήποτε μέσα σε ένα XSL αρχείο XSL αρχείο XML αρχείο Το element when μπορεί να εμφανίζεται πάνω από μία φορές μέσα σε ένα choose XSL αρχείο XML αρχείο 23

<xsl:apply-templates> <xsl:apply-templates> Εφαρμόζει ένα template στο τρέχων element ή στο παιδί του τρέχων element Είναι δυνατό να επιλεγεί σε ποιο element θα εφαρμοστούν τα templates <xsl:apply-templates select="title"/> Το πεδίο select μπορεί να χρησιμοποιηθεί για να καθοριστεί η σειρά επεξεργασίας των παιδιών ενός element <xsl:template match="cd"><p> <xsl:apply-templates select="title"/> <xsl:apply-templates select="artist"/></p> </xsl:template> XSL αρχείο XML αρχείο 24

Παραδείγματα XSL αρχείων Απλό παράδειγμα XSL αρχείο Αρχικό ΧML αρχείο Τελικό ΧML αρχείο XSL iteration & sorting XSL αρχείο Αρχικό ΧML αρχείο Τελικό ΧML αρχείο XSL conditions XSL αρχείο Αρχικό ΧML αρχείο Τελικό ΧML αρχείο 25

XSLT on the Client (1) Ένα XSLT αρχείο μπορεί να χρησιμοποιηθεί για να μετατρέψει ένα XML αρχείο σε XHTML στον browser σας Σύνδεση του XML αρχείου με ένα XSLT Χρησιμοποιώντας JavaScript, VBScript Με τη JavaScript μπορούμε να ελέγξουμε ποιο browser χρησιμοποιεί ο χρήστης να χρησιμοποιήσουμε διαφορετικά style sheets με βάση το browser και τις απαιτήσεις του χρήστη Εξαγωγή των XML δεδομένων σε κατάλληλη μορφή και για εξειδικευμένους φυλλομετρητές όπως Braille, φυλλομετρητές φωνής, για handheld devices etc. 26

XSLT on the Client (2) <html> <body> <script type="text/javascript"> // Load XML var xml = new ActiveXObject("Microsoft.XMLDOM") xml.async = false xml.load("cdcatalog.xml") // Load XSL var xsl = new ActiveXObject("Microsoft.XMLDOM") xsl.async = false xsl.load("cdcatalog.xsl") // Transform document.write(xml.transformnode(xsl))</script> </body> </html> html αρχείο 27

XSLT on the Client (3) Load XML Δημιουργία αντίγραφου του Microsoft XML parser var xml = new ActiveXObject("Microsoft.XMLDOM") Απενεργοποιεί τη ασύγχρονη φόρτωση ώστε ο parser να μην αρχίσει την εκτέλεσή του πριν φορτωθεί ολόκληρο το αρχείο xml.async = false Φόρτωση του XML αρχείου xml.load("cdcatalog.xml") XML αρχείο html αρχείο 28

XSLT on the Server (1) Υπάρχουν browsers που δεν υποστηρίζουν το XSLT Η μετατροπή γίνεται στο server και ο browser παίρνει καθαρό XHTML Σε μία σελίδα PHP 5 <?php?> $xsldoc = new DOMDocument(); $xsldoc->load("collection.xsl"); $xmldoc = new DOMDocument(); $xmldoc->load("collection.xml"); $proc = new XSLTProcessor(); $proc->importstylesheet($xsldoc); echo $proc->transformtoxml($xmldoc); 29

XSLT on the Server (2) PHP 5< xslt_create ( ) Δημιουργεί έναν XSLT processor για τη διαχείριση συναρτήσεων XSLT xslt_process( ) Διαμόρφωση XSLT xslt_free ( ) Απελευθέρωση του XSLT handler 30

XML data islands (1) Είναι δυνατή η ενσωμάτωση XML δεδομένων σε HTML σελίδες με χρήση των Data Islands Απ ευθείας ενσωμάτωση στο HTML αρχείο <xml id="note"> <note> <to>tove</to> <from>jani</from> <heading>reminder</heading> </note> </xml> Ενσωμάτωση XML αρχείου <xml id="note" src="note.xml"></xml> Data island: τα έγγραφα της XML που είναι ενσωματωμένα μέσα σ' ένα αρχείο HTML 31

XML data islands (2) Τα Data Islands μπορούν να συνδεθούν με HTML elements Η σύνδεση γίνεται με χρήση του απαραίτητου πεδίου id Προσοχή: το tag <xml> είναι της HTML! <html> <body> <xml id="cdcat" src="cd_catalog.xml"></xml> <table border="1" datasrc="#cdcat"> <tr> <td><span datafld="artist"></span></td> <td><span datafld="title"></span></td> </tr> </table> </body> </html> html αρχείο 32

DOM Document Object Model Ένα standard programming interface για να προσπελάσουμε και να επεξεργαστούμε τη δομή και τα δεδομένα που περιέχονται σε ένα αρχείο XML Βασίζεται στην δενδρική αναπαράσταση ενός XML αρχείου Δημιουργία ενός XML αρχείου Προσπέλαση της δενδρικής δομής ενός XML αρχείου Εισασωγή / επεξεργασία / διαγραφή XML elements 33

DOM Node Interface Το DOM αναπαριστά τη δενδρική μορφή ενός XML αρχείου Η ρίζα του δένδρου είναι το documentelement Το element αυτό αποτελείται από ένα ή περισσότερα childnodes Το Node Interface Model χρησιμοποιείται για να προσπελαύνονται μεμονωμένα elements του δένδρου Ο Microsoft XML parser υποστηρίζει όλες τις απαραίτητες συναρτήσεις 34

Φόρτωση XML αρχείου στον parser <html> <body> <script type="text/javascript"> // Load XML var xml = new ActiveXObject("Microsoft.XMLDOM") xml.async = false xml.load("cdcatalog.xml") //... process </script> </body> </html> html αρχείο 35

Φόρτωση XML κειμένου στον parser <script type="text/javascript"> var text="<note>" text=text+"<to>tove</to><from>jani</from>" text=text+"<heading>reminder</heading>" text=text+"<body>don't forget me this weekend!</body>" text=text+"</note>" var xmldoc = new ActiveXObject("Microsoft.XMLDOM") xmldoc.async="false" xmldoc.loadxml(text) //... processing the document goes here </script> 36

DOM node object Εύρεση του root element xmldocument.documentelement; Node object attributes childnodes firstchild / lastchild nextsibling / previoussibling nodename / nodetype nodevalue parentnode ΧML αρχείο DOM παράδειγμα 37

XML αρχείο για DOM <?xml version = "1.0"?> <!-- Article formatted with XML --> <article> <title>simple XML</title> <date>december 6, 2000</date> <author> <fname>tem</fname> <lname>nieto</lname> </author> <summary>xml is pretty easy.</summary> <content>once you have mastered HTML, XML is easily learned. You must remember that XML is not for displaying information but for managing information. </content> </article> 38

DOM Example Το δέντρο του παραδείγματος:dom Example 39

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

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

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0. 42

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Πατρών, Ιωάννης Γαροφαλάκης, 2015. «Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό». Έκδοση: 1.0. Πάτρα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/ceid1093/. 43

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 44