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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Κατηγορηματικός Λογισμός
Advertisements

Τεχνολογίες Web Απαραίτητες γνώσεις για την υλοποίηση της άσκησης.
Επιμέλεια: Τίκβα Χριστίνα
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Η Γλώσσα Προγραμματισμού LOGO
ΚΕΙΜΕΝΟ  Ο πρώτος τρόπος απεικόνισης πληροφορίας (και βασικός ως σήμερα).  Αδυναμία πρώτων υπολογιστών να χειριστούν άλλη μορφή πληροφορίας.  Πρόβλημα.
ΙΕΛΕναρκτήρια συνάντηση για το πρόγραμμα "ΚΛΕΙΩ" 7η Νοεμβρίου Οντολογίες & εργαλείο συγγραφής για το "ΚΛΕΙΩ" Ινστιτούτο Επεξεργασίας του Λόγου (ΙΕΛ)
Να περιγράψετε τους 2 τρόπους οργάνωσης Ιστοσελίδων
Δ.Π.Θ. xml - 1 ΝΕΕΣ ΓΛΩΣΣΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ XML Η HTML αποτέλεσε την πρώτη και κύρια γλώσσα δημιουργίας ιστοσελίδων από την έναρξη λειτουργίας.
Η γλώσσα μορφοποίησης υπερκειμένου HTML
Semantic Web Technologies
 Παρουσιάζοντας πολιτισμικό υλικό στα σχολεία
7.5.2 Αντικειμενοστραφής προγραμματισμός
HTML.
Τι είναι ο υπολογιστής; Τι είναι ο προγραμματισμός
Η γλώσσα XHTML Επιμέλεια: Νικάκη Θεοδώρα Μάθημα: Εισαγωγικά θέματα WWW 2007.
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
ΗΥ-566 Διαχείρηση Γνώσης στο Διαδίκτυο1 SWRC Ontology Κτιστάκης Γιώργος Μπούτσικα Κατερίνα Παπαδάκης Μύρων.
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
Ακαδημαϊκό έτος Εργαστήριο Προγραμματισμού και Επεξεργασίας Πληροφοριών Εισαγωγή στη γλώσσα MathML Αλεξ Καράκος.
 Αυδίκου Χριστίνα  Γιουμούκης Παναγιώτης  Κιντσάκης Θάνος  Πάπιστας Γιάννης.
ΠΡΟΤΥΠΑ ΜΑΘΗΣΙΑΚΩΝ ΤΕΧΝΟΛΟΓΙΩΝ ΠΑΡΟΥΣΙΑΣΗ ΚΑΙ ΔΙΔΑΚΤΙΚΑ ΟΦΕΛΗ Ενότητα 3.7 – Β’ Μέρος.
Εισαγωγή στην XML Από την Καραδημητρίου Κρυσταλλένια Καθηγήτρια Πληροφορικής στο Γυμνάσιο και Ενιαίο Λύκειο Φιλώτα Φλώρινας Οκτώβριος 2004.
ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΑΡΧΕΙΟΝΟΜΙΑΣ-ΒΙΒΛΙΟΘΗΚΟΝΟΜΙΑΣ
Web Services Υπηρεσίες διαδικτύου
Κείμενο – ASCII – Unicode - HTML Κωδικοποίηση ASCII / Unicode HTML
Resource Description Framework
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΝΝΟΙΑ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΑΡΤΙΟΣ 2012 Π. Σοφράς.
Αναπληρωτής Καθηγητής Ανδρέας Βέγλης Διευθυντής Εργαστηρίου Εφαρμογών Πληροφορικής στα ΜΜΕ Τμήμα Δημοσιογραφίας & ΜΜΕ Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
1 Εισαγωγή στις Βάσεις Δεδομένων  Ανάγκη Αποθήκευσης και Διαχείρισης Δεδομένων  Συστήματα Αρχείων  Συστήματα Βάσεων Δεδομένων  Παραδοσιακές και Σύγχρονες.
ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
Ολυμπιάδα Πληροφορικής
ΑΡΧΙΤΕΚΤΟΝΙΚΗ & ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 1 Εισαγωγή
Κεφ.1 Εισαγωγη στην εννοια του Αλγοριθμου και στον Προγραμματισμο
Τεχνολογία ΛογισμικούSlide 1 Αλγεβρική Εξειδίκευση u Καθορισμός τύπων αφαίρεσης σε όρους σχέσεων μεταξύ τύπων λειτουργιών.
ΗΥ302 Διδακτική της Πληροφορικής Η γλώσσα προγραμματισμού LOGO Writer Ομάδα Εργασία: Αλεβίζου Βασιλική (Α.Μ.:1029) Κοφφινά Ιωάννα (Α.Μ.:1035) Τριανταφυλλίδου.
1 Υπηρεσίες Πληροφόρησης σε Ψηφιακό Περιβάλλον Ιόνιο Πανεπιστήμιο Τμήμα Αρχειονομίας & Βιβλιοθηκονομίας, Κέρκυρα Ηλεκτρονική Δημοσίευση Θέμα: Τεχνολογίες.
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
ΤΗΣ ΦΟΙΤΗΤΡΙΑΣ : ΤΣΑΛΤΑ ΑΝΑΣΤΑΣΙΑ Α.Μ. : 30920
E X a M p L e Αξιοποιώντας την τεχνολογία XML στη διαχείριση της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο Πανελλήνιο Συνέδριο Ακαδημαϊκών.
Ενότητα Α.4. Δομημένος Προγραμματισμός
31 Μαρτίου 2015 ΔΙΑΦΑΝΕΙΑ 1 ΤΥΠΙΚΕΣ ΜΕΘΟΔΟΙ ΑΝΑΛΥΣΗΣ ΣΥΣΤΗΜΑΤΩΝ ΤΜ. ΠΛΗΡΟΦΟΡΙΚΗΣ Α.Π.Θ. – ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ ΚΑΤΗΓΟΡΗΜΑΤΙΚΟΣ ΛΟΓΙΣΜΟΣ Ι Για τον προτασιακό.
1 ΧΡΗΣΗ Η/Υ, ΑΛΕΞΗΣ ΜΠΡΑΪΛΑΣ, 1998 Εφαρμογές Υπολογιστών.
ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ Information Extraction.
Τεχνολογίες δημοσίευσης στον παγκόσμιο ιστό Κωνσταντίνος Αλεξίου Κέρκυρα, Ιούνιος 2004 Ιόνιο Πανεπιστήμιο Τμήμα Αρχειονομίας – Βιβλιοθηκονομίας Π.Μ.Σ.
1.5 Γλώσσες Προγραμματισμού
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
ΠΜΣ ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ The Digital Library and Computational Philology: The BAMBI Project Γόντικα Ειρήνη.
RSS FEEDS Εισαγωγικά θέματα WWW ΠΑΝΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΠΜΣ:ΔΥΝΗΤΙΚΕΣ ΚΟΙΝΟΤΗΤΕΣ, ΚΟΙΝΩΝΙΟΨΥΧΟΛΟΓΙΕΣ ΠΡΟΣΕΓΓΙΣΕΙΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΕΦΑΡΜΟΓΕΣ ΕΞΑΜΗΝΟ: Α΄
Text Encoding Initiative επισκόπηση, προβλήματα και εφαρμογές Λίνα Μπουντούρη 13ο Πανελλήνιο Συνέδριο Ακαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004.
ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΙΜΙΟ Τμήμα Αρχειονομίας-Βιβλιοθηκονομίας Εργασία στο μάθημα της Ηλεκτρονικής Δημοσίευσης ΘΕΜΑ:SGML και PDF-Γιατί χρειαζόμαστε και τα δύο;
Network Inference Μπαλάφα Κασιανή - Αδριανή Πλασταρά Κατερίνα.
Εισαγωγή στην XML Μ. ΓΑΒΑΛΑΣ.
Γραφικό Περιβάλλον Συγγραφής Κανόνων στο Σημασιολογικό Διαδίκτυο Διπλωματική Εργασία της Βασιλικής Ζερβάκη Επιβλέπων Καθηγητής: Νικόλαος Βασιλειάδης Θεσσαλονίκη.
EXtensible Markup Language (XML) και XML Schema Γιώργος Θάνος Παρασκευή 31 Οκτωβρίου 2008.
1Κεφάλαιο 4 Κανόνες Σύνταξης HTML Όλες οι ετικέτες εσωκλείονται μεταξύ των χαρακτήρων “ “. Κάθε τι που βρίσκεται μεταξύ των χαρακτήρων “ ”, αποτελεί σχόλιο.
XML Parsing Γιώργος Θάνος Παρασκευή 14 Νοεμβρίου 2008.
Βάσεις Δεδομένων ΙΙ Ευαγγελία Πιτουρά 1 Βάσεις Διαδικτύου.
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
ΠΡΙΝ ΞΕΚΙΝΗΣΟΥΜΕ Πράγματα που αξιολογείτε θετικά σε σχέση με το μάθημα του προηγούμενου τετραμήνου Πράγματα που θα μπορούσαν να βελτιωθούν.
Προγραμματισμός Εφαρμογών Διαδικτύου Ενότητα 8: Εισαγωγή στην XML Φώτης Κόκκορας, Καθηγητής Εφαρμογών, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας.
Προγραμματισμός Εφαρμογών Διαδικτύου
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝ
Wikis Ο Cunningham εμπνεύστηκε τον όρο wiki από τα "wiki wiki", δηλαδή τα "γρήγορα" λεωφορεία πυκνών δρομολογίων στον αερολιμένα της Χονολουλού.
Επεξεργασία Κειμένου Διδακτική προσέγγιση των λογισμικών γενικής χρήσης Ζωγραφική Λογιστικά φύλλα Βάσεις δεδομένων.
ΕΦΑΡΜΟΓΕΣ ιστου (Web Applications)
ΠΛΗΡΟΦΟΡΙΚΗ Γ΄ Γυμνασίου Α΄ Τρίμηνο
Μεταγράφημα παρουσίασης:

Εισαγωγή στην XML Μάρτιος 2005 Γ. Σ. Σακελλάρης Τ. Α. Κοντογιώργης 4/3/2017 Εισαγωγή στην XML Μάρτιος 2005 Γ. Σ. Σακελλάρης Τ. Α. Κοντογιώργης Ιατρική Πληροφορική Διδάσκων: Δ.Ι. Φωτιάδης

eXtensible Markup Language (XML) H XML είναι μια από τις τεχνολογίες που αναπτύχθηκαν με την εξέλιξη του Internet (infrastructure) Το ακρώνυμο “XML” χρησιμοποιείται για να περιγράψει μια αναπτυσσόμενη οικογένεια από standards και software tools Η XML αποτελεί πλέον το standard για την αναπαράσταση και αποθήκευση των δεδομένων που κινούνται μέσω του Internet

Περιεχόμενα Παρουσίασης Εισαγωγή Τι είναι η XML Κανόνες γλώσσας, βασική επεξεργασία XML Ορίζοντας γραμματικές της γλώσσας DTDs, schemas, and namespaces XML επεξεργασία Parsers and parser interfaces XML-based εργαλεία επεξεργασίας XML messaging Συμπεράσματα

4/3/2017 Γιατί XML ??? Internet: Αποτελείται από ένα σύνολο εφαρμογών που επικοινωνούν μεταξύ τους Οι εφαρμογές ανταλλάσσουν δεδομένα με αυθαίρετη δομή και μορφοποίηση τα οποία πρέπει να στη συνέχεια να επεξεργαστούν Πρόβλημα: Απαιτείται ένα κοινό πρότυπο στην αναπαράσταση των δεδομένων Πολλές φορές η εφαρμογή ενδιαφέρεται όχι για τα ίδια τα δεδομένα αλλά για τη σημασία τους και που αυτά αναφέρονται (metaknowledge) Πρόβλημα: Θέλουμε μια μέθοδο να δημιουργούμε μεταδεδομένα

Markup Languages Ο όρος Markup αναφέρεται σε ένα σύνολο από ενδείξεις/παρατηρήσεις που αναφέρονται και περιγράφουν τη δεδομένα ενός κειμένου Πρόκειται για οδηγούς στο τρόπο με τον οποίο πρέπει να ερμηνευτούν τα περιεχόμενα του κειμένου Μια συλλογή τέτοιων ενδείξεων, που ακολουθούν καθορισμένο συντακτικό και γραμματική, μπορεί να θεωρηθεί γλώσσα Μία Markup γλώσσα προσδίδει πληροφορία για τα περιεχόμενα ενός κειμένου Οι Markup Languages είναι μια μέθοδος για να δημιουργούμε μεταδεδομένα (metadata)

Ιστορία των Markup Languages 4/3/2017 Ιστορία των Markup Languages To 1969 η ΙΒΜ κατασκεύασε την GML, τη πρώτη «σύγχρονη» markup γλώσσα Από τη GML προήλθε η SGML η οποία το 1986 έγινε ISO standard για αποθήκευση και ανταλλαγή δεδομένων Το 1991 όταν αναπτύχθηκε η HTML αποτέλεσε μια εφαρμογή της SGML Η ταχύτατη ανάπτυξη του Web και οι περιορισμένες δυνατότητες της HTML γέννησαν την XML στα τέλη των ’90s.

HTML Έχει συγκεκριμένη δομή Περιορισμένο αριθμό από tags κατά συνέπεια μπορούμε να αναπαραστήσουμε συγκεκριμένη πληροφορία Υπάρχουν browsers (ΙΕ, Netscape,….) Απλή, εύκολη στην εκμάθηση Περιορισμένες δυνατότητες στην ανάπτυξη εφαρμογών Βασική διαφορά με την XML: Ένα XML αρχείο ορίζει αυστηρά που αρχίζει (start tag) και που τελειώνει (end tag) κάθε κομμάτι του κειμένου, δίνοντας έτσι ξεχωριστό νόημα στα περιεχόμενα των tags.

4/3/2017 Tι είναι η XML? Ένα συντακτικό για κωδικοποίηση δεδομένων κειμένου (words, phrases, numbers, ...) Είναι text-based. H XML γράφεται χρησιμοποιώντας printable χαρακτήρες (όχι binary data) Επεκτάσιμη (Extensible). Η XML σου επιτρέπει να ορίσεις τα δικά σου elements (essentially data types), με βάση ορισμένους συντακτικούς κανόνες Κοινό format. Τα δεδομένα που κωδικοποιούνται σε XML μετατρέπονται σε έναν standard τύπο εγγράφου τον οποίο μπορεί να διαβάσει και να επεξεργαστεί οποιαδήποτε εφαρμογή που υποστηρίζει XML τεχνολογία. XML is a markup language -- that is, a way of writing tags that mark the parts of a data file or document, and divide it into component parts (paragraphs, numbers. Etc.). This not much different from binary data formats, except that all the tags in XML are written (as must the data content) using printable characters. For example, <mytag> is an example of an XML tag, while <myTag> some data </myTag> is an example of an XML element (a basic unit in an XML. document). XML is extensible in that you can create any element “name” (e.g., myTag) that you want -- provided you obey the XML syntax rules (I.e., the rules defining how you write and position tags). These syntax rules ensure that all XML processing software will identically handle a given XML document -- which is what makes XML data universal. XML data is also called self-describing data, since the markup defining how the data is organized is part of the document (and not external to it). Εάν μπορείς να το διαβάσεις και να το επεξεργαστείς τότε μπορεί να το κάνει οποιοσδήποτε

Τι δεν είναι η XML Δεν είναι γλώσσα προγραμματισμού 4/3/2017 Τι δεν είναι η XML Δεν είναι γλώσσα προγραμματισμού Δεν είναι ένα λογισμικό Δεν είναι περιβάλλον ανάπτυξης λογισμικού Δεν είναι εργαλείο ανάπτυξης ιστιοσελίδων

Ένα απλό παράδειγμα XML Declaration (“this is XML”) 4/3/2017 Ένα απλό παράδειγμα XML Declaration (“this is XML”) Binary encoding used in file <?xml version="1.0" encoding="iso-8859-1"?> <partorders xmlns=“http://myco.org/Spec/partorders”> <order ref=“x23-2112-2342” date=“25aug1999-12:34:23h”> <desc> Gold sprockel grommets, with matching hamster </desc> <part number=“23-23221-a12” /> <quantity units=“gross”> 12 </quantity> <deliveryDate date=“27aug1999-12:00h” /> </order> . . . Order something else . . . </partorders> Here’s a simple example of an XML document -- in this case a made-up document describing information related to ordering parts (from a factory, for example). Note how the tags are written --surrounded by angle brackets. Tags of the form <Tag> always have a matching end tag of the form </Tag> -- this is one of the syntax rules. Tags that don’t have ends (and don’t have stuff inside them) can be written as <Tag /> -- with a special trailing slash. That’s another syntax rule. The start and end tag, plus the stuff in between, is called an “element” -- and is the basic component part of an XML document. These must be organized hierarchically -- again one of the syntax rules. Elements can be assigned properties, called attributes, by putting the attribute and its value in the start tag, as in <order ref=“xyxxy” >

Goals of XML 1. Απλή (όπως η HTML – αλλά όχι τόσο απλή) 4/3/2017 Goals of XML 1. Απλή (όπως η HTML – αλλά όχι τόσο απλή) Συγκεκριμένοι συντακτικοί κανόνες, για τον περιορισμό συντακτικών λαθών. η σύνταξη ορίζει την δομή (ιεραρχική), και ονοματίζει δομημένα κομμάτια (element names) – είναι αυτο-χαρακτηριζόμενα δεδομένα 2. Επεκτάσιμη (σε αντίθεση με την HTML) Μπορείς να δημιουργήσεις την δικιά σου γλώσσα από tags/elements Η αυστηρότητα του συντακτικού εξασφαλίζει την εγκυρότητα της επεξεργασίας 3. Σχεδιασμένη για ένα κατανεμημένο περιβάλλον (όπως η HTML) 4. Μπορεί να ‘αναμείξει’ διαφορετικούς τύπους δεδομένων (σε αντίθεση με την HTML) XML was built on the experiences of the Web and on the demands people were placing on it. First, XML needed to be simple, since that’s what made HTML so successful. But, it needed to be stricter, so that the errors that kept cropping up in HTML could be properly detected. Second, it needed to be extensible -- people need to be able to create their own tags/elements, so XML needed to support that. It also needed to support mixed vocabularies -- for example, if you have an XML document, and I have and XML document, we should be able to merge them together (and compensate for the fact that we both have tags named <data>, but that mean different things!) And it had to work well on the web, where data is distributed all over the place. Thus the language (and the processing model) can’t count on things all being on someone’s own PC!

Βασικά συνθετικά του συντακτικού της XML entity opening tag attributes <animal> <name language = “English”> Tiger </name> <name language = “Latin”> Panthera tigris </name> <weight> 500 pounds </weight> </animal> values closing tag elements content <picture filename = “tiger.jpg”/> empty element, just an attribute

Ιεραρχικό Μοντέλο Δεδομένων – XML δέντρο <partorders xmlns="..."> <order date="..." ref="..."> <desc> ..text.. </desc> <part /> <quantity /> <delivery-date /> </order> <order ref=".." .../> </partorders> text partorders order desc part quantity delivery-date date= ref= xmlns= text

XML Επεξεργασία xml-simple.xml <?xml version="1.0" encoding="utf-8" ?> <transfers> <fundsTransfer date="20010923T12:34:34Z"> <from type="intrabank"> <amount currency="USD"> 1332.32 </amount> <transitID> 3211 </transitID> <accountID> 4321332 </accountID> <acknowledgeReceipt> yes </acknowledgeReceipt> </from> <to account="132212412321" /> </fundsTransfer> <fundsTransfer date="20010923T12:35:12Z"> <from type="internal"> <amount currency="CDN" >1432.12 </amount> <accountID> 543211 </accountID> <to account="65123222" /> </transfers> xml-simple.xml

XML Parser O parser πρέπει να πιστοποιήσει ότι τα XML δεδομένα είναι ορισμένα συντακτικός σωστά. Όπως λέμε τα δεδομένα να είναι well-formed Η ελάχιστη απαίτηση για να ‘είναι’ XML Ένας parser πρέπει να σταματά την επεξεργασία αν τα δεδομένα δεν είναι well-formed (καλός ορισμένα) π.χ., σταμάτα την επεξεργασία και “throw an exception” στη XML-based εφαρμογή. XML data parser interface XML-based application

Document Type Definition (DTD) H XML δίνει τη δυνατότητα στο χρήστη να δηλώσει το ρόλο κάθε element στο κείμενο με formal τρόπο μέσω πρόσθετων συντακτικών εντολών Το σύνολο αυτών των εντολών συνθέτουν έναν DTD O DTD δεν είναι απαραίτητος Όταν χρησιμοποιείται, ο parser μπορεί αν ελέγξει την λογική ορθότητα στη δομή του κειμένου σύμφωνα με τον DTD O DTD επιβάλει επιπλέον κανόνες για την well-formed δομή του κειμένου

Μοντέλο Επεξεργασίας ενός XML Parser interface parser XML data XML-based application DTD

XML Parsers, DTDs, και Εσωτερικές Οντότητες Ο parser επεξεργάζεται το περιεχόμενο του DTD, αναγνωρίζει τις εσωτερικές οντότητες, και ελέγχει αν κάθε οντότητα είναι καλός ορισμένη (well-formed). Στο περιεχόμενο του DTD ορίζονται σαφής συντακτικοί κανόνες τους οποίους πρέπει να ακολουθεί το XML αρχείο. O parser τότε αντικαθιστά κάθε εμφάνιση αναφοράς ‘entity reference’ από το αναφερόμενο entity Το “αλλαγμένο” data object γίνεται διαθέσιμο στην εφαρμογή XML

XML: Εισαγωγή DTD Document Type Declaration (DTD) <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE transfers [ <!-- Here is an internal entity that encodes a bunch of markup that we'd otherwise use in a document --> <!ENTITY messageHeader "<header> <routeID> info generic to message route </routeID> <encoding>how message is encoded </encoding> </header> " > ]> <transfers> &messageHeader; <fundsTransfer date="20010923T12:34:34Z"> <from type="intrabank"> . . . Content omitted . . . </transfers> Internal Entity δήλωση Entity αναφορά &name; xml-simple-intEntity.xml

XML Parsers και Εξωτερικές Οντότητες O parser επεξεργάζεται τα περιεχόμενα του DTD και αναγνωρίζει τα εξωτερικά entities Αντικαθιστά κάθε εμφάνιση ενός entity reference από την αναφερόμενη οντότητα, και το επαναλαμβάνει για όλες τις οντότητες Τι συμβαίνει αν δεν μπορεί να βρει μια οντότητα? Εξαρτάται από τον τύπο της εφαρμογής ή του parser Υπάρχουν δύο τύποι XML parsers Ένας που πρέπει να ανακτά όλες τις οντότητες, και ένας που μπορεί να τις αγνοήσει (εάν δεν μπορεί να τις βρει)

Οι 2 τύποι XML parsers Validating parser (Επικύρωσης) Πρέπει να ανακτήσουν όλες τις οντότητες και να επεξεργαστούν τα περιεχόμενα όλων των DTDs. Τερματίζουν την επεξεργασία και επιστρέφουν επιτυχία ή αποτυχία. Οι parsers επίσης ελέγχουν για τη συμβατότητα του XML κειμένου με το DTD ως προς άλλες παραμέτρους, όπως για παράδειγμα συντακτικοί κανόνες Non-validating parser (Μη επικύρωσης parser) Ο parser πιστοποιεί απλά ότι τα δεδομένα είναι well-formed XML H συμπεριφορά της εφαρμογής εξαρτάται από τον τύπο του parser

XML Επεξεργασία: Εξωτερικά Entities Ιδέα: βάλε το entity σε άλλο αρχείο ώστε να είναι διαθέσιμο από πολλά αρχεία. ορισμός External Entity <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE transfers [ . . . <!ENTITY messageHeader SYSTEM "http://www.somewhere.org/dir/head.xml" > ]> <transfers> &messageHeader; <fundsTransfer date="20010923T12:34:34Z"> <from type="intrabank"> . . . Content omitted . . . </transfers> Location δοθείσα από ένα URL xml-simple-extEntity.xml

Μοντέλο λειτουργίας XML Parser interface parser XML δεδομένα XML-based εφαρμογή Η συμπεριφορά εξαρτάται από την φύση του parser DTD Πολλοί parsers μπορούν να λειτουργήσουν είτε με validating είτε με non-validating τρόπο

Περιεχόμενα Τι είναι η XML Ορίζοντας διαλέκτους XML επεξεργασία Κανόνες τις γλώσσας, βασικές έννοιες Ορίζοντας διαλέκτους DTDs, schemas, and namespaces XML επεξεργασία Parsers και parser interfaces XML-based εργαλεία επεξεργασίας XML messaging Συμπεράσματα

Πως ορίζουμε γραμματική μιας γλώσσας Δύο τρόποι: XML Document Type Declaration (DTD) – μέρος του XML specification. XML Schema – XML specification, επιτρέπει περισσότερο ‘δυνατούς’ ορισμούς (τύπους δεδομένων,....) Δύο κατηγορίες XML δεδομένων: Well-formed Όταν ένα ΧΜL document είναι συντακτικά σωστό Valid(Έγκυρο) Ένα ΧΜL document το οποίο είναι και well- formed και συνεπές με ένα συγκεκριμένο DTD (or Schema) Τι ορίζουν τα DTDs και τα schema: Ορίζουν elements και attributes ονόματα, ιεραρχικά φωλιασμένους κανόνες, περιεχόμενα των elements/περιορισμούς Τα XML Schemas είναι πιο ισχυρά από τα DTDs. Χρησιμοποιούνται συχνά για type validation ή για συσχέτιση ER σχημάτων με XML μοντέλα

DTD (σαν μέρος ενός document) <!DOCTYPE transfers [ <!ELEMENT transfers (fundsTransfer)+ > <!ELEMENT fundsTransfer (from, to) > <!ATTLIST fundsTransfer date CDATA #REQUIRED> <!ELEMENT from (amount, transitID?, accountID, acknowledgeReceipt ) > <!ATTLIST from type (intrabank|internal|other) #REQUIRED> <!ELEMENT amount (#PCDATA) > . . . Omitted DTD content . . . <!ELEMENT to EMPTY > <!ATTLIST to account CDATA #REQUIRED> ]> <transfers> <fundsTransfer date="20010923T12:34:34Z"> . . . As with previous example . . . xml-simple-valid.xml

“Εξωτερικό” DTD Αναφορά χρησιμοποιώντας μεταλλαγή του DOCTYPE: <!DOCTYPE transfers SYSTEM "http://www.foo.org/hereitis/simple.dtd” > <transfers> <fundsTransfer date="20010923T12:34:34Z"> . . . As with previous example . . . . . . </transfers> simple.dtd

XML Schemas Ένας ορισμός για τον καθορισμό κανόνων σε XML κείμενα (γραμματική) Specs: http://www.w3.org/XML/Schema Best-practice: http://www.xfront.com/BestPracticesHomepage.html Χρησιμοποιεί XML (όχι ειδική DTD σύνταξη) για τον ορισμό των κανόνων. Τα Schemas είναι πιο ‘δυνατα’ από τα DTDs – μπορούν να ορίσουν τύπους δεδομένων όπως ακέραιοι, ημερομηνίες, πραγματικοί αριθμοί, etc. Χρησιμοποιούνται συχνά για επικύρωση τύπων και ή για συσχέτιση ER σχημάτων με XΜL μοντέλα Το επόμενο slide δείχνει τα DTD σε Schema μορφή

XML Schema έκδοση του DTD (μέρος) <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="accountID" type="xs:string"/> <xs:element name="acknowledgeReceipt" type="xs:string"/> <xs:complexType name="amountType"> <xs:simpleContent> <xs:restriction base="xs:string"> <xs:attribute name="currency" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="USD"/> . . . (some stuff omitted) . . . </xs:restriction> </xs:simpleType> </xs:attribute> </xs:simpleContent> </xs:complexType> <xs:complexType name="fromType"> <xs:sequence> <xs:element name="amount" type="amountType"/> <xs:element ref="transitID" minOccurs="0"/> <xs:element ref="accountID"/> <xs:element ref="acknowledgeReceipt"/> </xs:sequence> . . . simple.xsd

XML Namespaces(1/2) http://www.domain.com/ns/rivers/1.1 Tα ονόματα των elements ενός αρχείου χαρακτηρίζονται από μια ετικέτα (super label) Το label αυτό ονομάζεται namespace και αποτελεί το όνομα της συλλογής των ονομάτων του αρχείου Το όνομα ενός namespace παίρνει τη μορφή ενός URL, το δεν έχει link πουθενά! Χρησιμοποιείται αυτή η αναπαράσταση γιατί είναι μοναδική http://www.domain.com/ns/rivers/1.1

XML Namespaces(2/2) Τα οποία είναι, ονόματα element ή attribute Είναι ένας τρόπος για να ορίσουμε διαφορετικές διαλέκτους γλώσσας, αποτελούμενο από ονόματα που έχουν συγκεκριμένη σημασιολογία και νόημα. Χρησιμοποιούμε ένα ειδικό xmlns attribute για να ορίσουμε το namespace. Το namespace δίνεται σαν ένα URL string

Ανάμειξη γλωσσών και διαλέκτων 4/3/2017 Ανάμειξη γλωσσών και διαλέκτων Τα namespaces επιτρέπουν να το κάνουμε απλά: <?xml version= "1.0" encoding= "utf-8" ?> <html xmlns="http://www.w3.org/1999/xhtml1" xmlns:mt="http://www.w3.org/1998/mathml” > <head> <title> Title of XHTML Document </title> </head><body> <div class="myDiv"> <h1> Heading of Page </h1> <mt:mathml> <mt:title> ... MathML markup . . . </mt:mathml> <p> more html stuff goes here </p> </div> </body> </html> Default ‘space’ is xhtml So how do you mix different types? There’s a special mechanism called XML namespaces that lets you do this. Basically you define (using an xmlns attribute) a special prefix for each language (or a default “empty” prefix for the default language for a document -- for example, in the above, the ‘default’ tags have no prefix and come from the ‘http://www.w3.org/1999/xhtml1’ namespace). Then you just plop the prefix in front of the element or attribute names from the language you want to refer to. And bingo -- you can mix and match 2 or more languages any way you want. mt: υποδεικνύει τον ‘χώρο’ mathml (κάποια γλώσσα)

Περιεχόμενα Τι είναι η XML XML επεξεργασία XML messaging Συμπεράσματα Κανόνες τις γλώσσας, βασικές έννοιες Ορίζοντας διαλέκτους DTDs, schemas, and namespaces XML επεξεργασία Parsers και parser interfaces XML-based εργαλεία επεξεργασίας XML messaging Συμπεράσματα

XML Software XML parser – Διαβάζουν ένα XML αρχείο, ψάχνουν για συντακτικούς (και πιθανόν DTD/Schema) περιορισμούς, και κάνουν τα δεδομένα διαθέσιμα σε μια εφαρμογή. Υπάρχουν 3 βασικά parser APIs SAX Simple API to XML (event-based) DOM Document Object Model (object/tree based) JDOM Java Document Object Model (object/tree based) XML parsers και software διαθέσιμα για όλα σχεδόν τα λειτουργικά (Unix, Windows, OS/390 or Z/OS, etc.) SAX-based parsers είναι γρήγοροι (τόσο γρήγορο όσο το streaming των δεδομένων) DOM πιο αργό, απαιτήσεις σε μνήμη (δημιουργεί in-memory το κείμενο)

XML Επεξεργασία: SAX A) SAX: Simple API for XML http://www.megginson.com/SAX/index.html Είναι event-based Ο Parser αναφέρει events κάθε φορά που ‘βλέπει’ ένα tag/attribute/text node/unresolved external entity/other Ο προγραμματιστής βάζει “event handlers” για να δεσμεύσει αυτό το event report Πλεονεκτήματα Εύκολο στην χρήση Πολύ γρήγορο (μικρό χρόνος επεξεργασίας πριν το parsing) Χαμηλές απαιτήσεις μνήμης (δεν φορτώνεται ολόκληρο το έγγραφο στην μνήμη) Μπορεί να φορτώσει μέχρι και αρχεία μεγέθους gigabyte Μειονεκτήματα Πρέπει να κάνεις πολλά μόνος σου Δεν είναι πολύ χρήσιμο αν χρειάζεται να μεταβάλεις δυναμικά το κείμενο, οπότε χρειάζεται να είναι φορτωμένο όλο στην μνήμη

XML Επεξεργασία: DOM B) DOM: Document Object Model http://www.w3.org/DOM/ O Parser δημιουργεί ένα in-memory δέντρο σύμφωνα με το κείμενο Το DOM interface ορίζει μεθόδους για πρόσβαση και τροποποίηση του δέντρου Πλεονεκτήματα Χρήσιμο για δυναμική τροποποίηση και πρόσβαση του ‘δέντρου’ (κειμένου) Χρήσιμο σε ερωτήσεις (i.e. looking for data) τα οποία εξαρτώνται από την δομή του κειμένου [π.χ. element.childNode("2").getAttributeValue("boobie")] Κοινό interface για πολλές γλώσσες προγραμματισμού (C++, Java, ...) Μειονεκτήματα Μπορεί να γίνει αργό (χρειάζεται να παράγει το δέντρο), και μπορεί να χρειάζεται πολύ μνήμη Το DOM interface στο προγραμματισμό είναι δύσχρηστο, δεν είναι ‘πολύ’ object oriented

DOM Parser Μοντέλο Επεξεργασίας 4/3/2017 DOM Parser Μοντέλο Επεξεργασίας text partorders order desc part quantity delivery-date Document “object” DOM XML δεδομένα parser interface εφαρμογή

Μερικοί XML Parsers (OS/390’s) Xerces (C++; Apache Open Source) http://xml.apache.org/xerces-c/index.html XML toolkit (Java and C+++; Commercial license) http://www-1.ibm.com/servers/eserver/zseries/software/xml/ I believe the Java version uses XML4j, IBM’s Java Parser. The latest version is always found at: http://www.alphaworks.ibm.com XML for C++ (IBM; based on Xerces; Commercial license) http://www.alphaworks.ibm.com/tech/xml4c XMLBooster (parsers for COBOL, C++ …; Commercial license; don’t know much about it; OS/390? [dunno]) http://www.xmlbooster.com/ Has free trial download,: can see if it is any good ;-) XML4Cobol (don’t know much about it, any COBOL85 is fine) http://www.xml4cobol.com www.xmlsoftware.com/parsers/ -- Good generic list of parsers

Μερικά benchmarks για parsers: http://www-106.ibm.com/developerworks/xml/library/x-injava/index.html

Γενικά SAX γρηγορότερος xDOM πιο αργός SAX stream επεξεργασία xDOM επεξεργασία αντικειμένου

XML Επεξεργασία: XSLT D) XSLT eXtensible Stylesheet Language -- Transformations http://www.w3.org/TR/xslt Μια XM Lγλώσσα για επεξεργασία XML κειμένου Κάνει μετασχηματισμούς δέντρων – είσοδος: XML και XSLT style sheet, και παράγει ένα νέο XML document με διαφορετική δομή Η επεξεργασία γίνεται με βάση προκαθορισμένους κανόνες (patterns => actions) Πλεονεκτήματα Χρήσιμο για μετασχηματισμούς δέντρων – ευκολότερο από το DOM ή SAX Μπορεί να χρησιμοποιηθεί για ερώτηση/εύρεση στο κείμενο (το XSLT ‘βγάζει’ το κομμάτι που θέλουμε) Μειονεκτήματα Μπορεί να είναι αργό για μεγάλα documents ή stylesheets Είναι δύσκολο να κάνεις debug σε stylesheets (δεν υπάρχει αναγνώριση λαθών)

XSLT μοντέλο επεξεργασίας D) XSLT μοντέλο επεξεργασίας schema XSLT processor XSLT style sheet in XML parser XML data in data out (XML) XML parser schema document “objects” for data and style sheet text partorders order desc part quantity delivery-date xza foo bee

Περιεχόμενα Τι είναι η XML XML επεξεργασία XML messaging Συμπεράσματα Κανόνες τις γλώσσας, βασικές έννοιες Ορίζοντας διαλέκτους DTDs, schemas, and namespaces XML επεξεργασία Parsers και parser interfaces XML-based εργαλεία επεξεργασίας XML messaging Συμπεράσματα

XML Messaging Χρησιμοποιούμε XML σαν format για αποστολή μηνυμάτων μεταξύ συστημάτων Τα πλεονεκτήματα είναι: Κοινό συντακτικό, self-describing Μπορούν να χρησιμοποιήσουν κοινό/υπάρχον μηχανισμό για να μεταφερθούν XML δεδομένα (HTTP, HTTPS, SMTP (email), MQ, IIOP/(CORBA), JMS, ….) Απαιτήσεις Κοινές πηγές συντακτικών (απαιτείται χρήση [namespace] ) για αναγνώριση διαλέκτων Κοινό πρωτόκολλο Μειονεκτήματα Ασύγχρονη μεταφορά Τα μηνύματα θα είναι πολύ πιο μεγάλα από τα binary δεδομένα (10x ή περισσότερο) [αλλά μπορεί να γίνει συμπίεση]

Standard για τη μεταφορά μηνυμάτων XML over HTTP Χρησιμοποιείται HTTP πρωτόκολλο για την μεταφορά XML messages POST /path/to/interface.pl HTTP/1.1 Referer: http://www.foo.org/myClient.html User-agent: db-server-olk Accept-encoding: gzip Accept-charset: iso-8859-1, utf-8, ucs Content-type: application/xml; charset=utf-8 Content-length: 13221 . . . <?xml version=“1.0” encoding=“utf-8” ?> <message> . . . Markup in message . . . </message>

Standards για message format XML-RPC http://www.xmlrpc.com Πολύ απλός τρόπος για κωδικοποίηση συναρτήσεων/μεθόδων, κλήση και πέρασμα παραμέτρων σε XML message. SOAP (Simple object access protocol) http://www.soapware.org Πιο σύνθετος wrapper, ο οποίος επιτρέπει να ορίσεις schemas για interfaces - πιο πολύπλοκοι κανόνες για handling/proxying των messages, etc. Υποστηρίζεται από το Microsoft .NET, και υπάρχει σε νέες εκδόσεις του Websphere και άλλων εμπορικών πακέτων.

XML Messaging + Processing 4/3/2017 XML Messaging + Processing XML as a universal format for data exchange Place order XML using SOAP over HTTP SOAP interface Application Supplier SOAP API Factory SOAP XML/ EDI Supplier Transport HTTP(S) SMTP other ... Supplier Here’s a simplified example of how these languages work in the a real-world application. A factory sends parts orders (as XML messages) to the suppliers. The suppliers return (in XML) messages that provide an appropriate response. This is really just EDI. The advantages to the business are cost and breadth. Costs are reduced because the software (XML + other) and networking (Internet) cost much less than proprietary EDI systems (proprietary software and networks). Breadth is accomplished because many more suppliers (and companies) can afford to go onto such a network, so the number of participants can grow enormously, leading to economies of scale. And, once you have lots of parties, you can add new business models (portal brokers, B-B brokers, group buying, etc.) Response XML using SOAP over HTTP

Περιεχόμενα Τι είναι η XML Ορίζοντας διαλέκτους Κανόνες τις γλώσσας, βασικές έννοιες Ορίζοντας διαλέκτους DTDs, schemas, and namespaces XML επεξεργασία Parsers και parser interfaces XML-based εργαλεία επεξεργασίας XML messaging Συμπεράσματα

4/3/2017 Συμπεράσματα Η XML είναι μια σχετικά νέα και ταχύτατα αναπτυσσόμενη τεχνολογία που έχει καθιερωθεί σαν πρότυπο για τη μοντελοποίηση και επεξεργασία των δεδομένων που διακινούνται στο Internet Περιλαμβάνει αρκετά πρότυπα και λογισμικό που επιτρέπουν τη χρήση της σε ευρεία κλίμακα Παίζει πρωταγωνιστικό ρόλο στη σύγχρονη μορφή του διαδικτύου - ενοποιώντας τις web-based εφαρμογές - συμβάλλοντας στη δημιουργία ενός επιπέδου μετά-γνώσης (semantic web)

4/3/2017 Συμπεράσματα Τα επιτεύγματα της XML μπορούν να συνοψιστούν στα παρακάτω: Καθιέρωσε ένα κοινό format στη μοντελοποίηση των web δεδομένων Εισήγαγε στη πράξη την έννοια της αυτοπεριγραφής σε ένα block δεδομένων (meta-data) Τα δεδομένα πλέον δεν είναι κατανοητά μόνο από υπολογιστές αλλά προορίζονται και για χρήστες Καθιέρωσε ένα κοινό πρότυπο στην επεξεργασία και ερμηνεία των δεδομένων από τις εφαρμογές του Internet

XML Editors XML Spy XML Notepad XML Pro 4/3/2017 XML Editors XML Spy XML editor http://www.xmlspy.com/download.html XML Notepad Microsoft XML Notepad http://msdn.microsoft.com/xml/notepad/download.asp XML Pro http://www.vervet.com/demo.html IE5.0 or above. Tutorials on XML/XSL/DTD/XML Schemas www.w3schools.com

XML: σύνολο ορισμένων προτύπων W3C rec industry std XML: σύνολο ορισμένων προτύπων W3C draft ‘Open’ std XML Core XML 1.0 XML names Xfragment RDF Canonical Xpath MathML APIs XSLT Xpointer XML base SMIL 1 & 2 JDOM SVG JAXP Xlink Infoset XSL …... DOM 1 XML signature XHTML 1.0 DOM 2 XHTML events XML query …. DOM 3 XML schema Xforms XHTML basic SAX 1 SAX 2 Modularized XHTML SOAP UDDI Biztalk FinXML XML-RPC CSS 1 IFX ebXML dirXML WSDL CSS 2 WDDX XMI FpML 100's more .... CSS 3 ... ... ... Style Protocols Web Services Application areas

4/3/2017 Ερωτήσεις ?