Σημαζιολογικός Παγκόζμιος Ιζηός Η γιώζζα XML
Ειζαγωγή (1/2) XML Γιώζζα Σήκαλζεο - Markup Language extensible Markup Language Γεκηνπξγία ηνπ W3C Μεγάιε απόδνρή θαη ελζσκάησζε κεηά ηελ εκθάληζή ηεο ζηα ηέιε ηεο δεθαεηίαο ηνπ 90 Βαζηθό πιενλέθηεκα Δπειημία ζηελ κεηαθνξά ησλ δεδνκέλσλ Χξεζηκνπνίεζε δεδνκέλσλ από έλα πξόγξακκα Μεηαηξνπή ζε XML Γηακνηξαζκόο πιεξνθνξίαο ζε XML Δπηθνηλσλία κεηαμύ δηαθνξεηηθώλ πξνγξακκάησλ θαη πιαηθόξκσλ
Ειζαγωγή (2/2) Η ηζρύο ηεο XML Καηάθεξε λα ζέζεη έλα ζηάληαξη format ησλ δεδνκέλσλ πνπ κεηαθξάδνληαη κεηαμύ δηαθνξεηηθώλ πιαηθόξκσλ (ή εθαξκνγώλ) Μεγάιν εύξνο απνδόρήο XML interfaces γηα βάζεηο δεδνκέλσλ, εθαξκνγώλ, πξνγξακκάησλ, θηλεηή ηειεθσλία θιπ. Παξαδείγκαηα εθαξκνγώλ File converters Voice XML RSS..
Τι είναι η XML; (1/2) extensible Markup Language Σρεδηάζηεθε γηα ηνλ νξηζκό/δόκεζε δεδνκέλσλ Οη δνκέο δεδνκέλσλ αλεμάξηεηεο από ηελ πιαηθόξκα Δύθνιε ε απηόκαηε επεμεξγαζία ησλ δεδνκέλσλ Ο ρξήζηεο κπνξεί λα νξίζεη ηα δηθά ηνπ tags (extensible) Γελ πεξηγξάθεη ηνλ ηξόπν εκθάληζεο δεδνκέλσλ! Έλα XSL αξρείν νξίδεη ηελ εκθάληζε ελόο XML αξρείνπ Έλα DTD (Document Type Definition) ή έλα XML Schema νξίδεη ηε ζύληαμε ελόο XML αξρείνπ
Τι είναι η XML; (2/2) Μία γιώζζα γηα ηε δόκεζε ησλ δεδνκέλσλ Σύλνιν θαλόλσλ γηα ην ζρεδηαζκό κνξθώλ θεηκέλνπ νη νπνίεο δηεπθνιύλνπλ ηε δόκεζε ησλ δεδνκέλσλ. Γνκεκέλε πιεξνθνξία Πεξηερόκελν θαη επηπιένλ έλδεημε πνπ αθνξά ην ξόιν πνπ έρεη απηό ην πεξηερόκελν (tags). Markup γιώζζα Μεραληζκόο αλαγλώξηζεο δνκεκέλεο πιεξνθνξίαο ζε έλα έγγξαθν XML Σηάληαξη πξνζζήθεο markup ζε έγγξαθα
Χαρακηηριζηικά Απιό θείκελν! Γηαρείξηζε από ινγηζκηθό πνπ δηαρεηξίδεηαη θείκελν Γηαθνξεηηθέο εθαξκνγέο γηα XML κπνξνύλ λα δηαρεηξηζηνύλ δηαθνξεηηθά ηελ ίδηα XML αλαιόγσο ηεο αλάγθεο θάζε εθαξκνγήο Μόλν δνκεκέλε πιεξνθνξία Απαξαίηεην ινγηζκηθό γηα ηε δηαρείξηζή ηεο δνκεκέλεο πιεξνθνξίαο Ο ρξήζηεο κπνξεί λα δεκηνπξγήζεη ηα δηθά ηνπ tags θαη ηε δηθή ηνπ δνκή
XML & HTML Η XML δελ έρεη ζθνπό λα αληηθαηαζηήζεη ηελ HTML, αιιά λα ηελ ζπκπιεξώζεη Η HTML ζρεδηάζηεθε γηα λα παξνπζηάδεη δεδνκέλα δίλνληαο έκθαζε ζην πώο απηά θαίλνληαη Η XML ζρεδηάζηεθε γηα λα πεξηγξάθεη δεδνκέλα δίλνληαο έκθαζε ζην ηη είδνο δεδνκέλα είλαη Τα δεδνκέλα βξίζθνληαη εθηόο ηνπ HTML αξρείνπ. Σε XML αξρεία Οη αιιαγέο είηε ζε εκθάληζε είηε ζε δνκή γίλνληαη πην εύθνια.
Χρηζιμοποίηζη XML Γηαρσξηζκόο δεδνκέλσλ από ηελ παξνπζίαζή ηνπο Απινπνίεζε κεηαθνξάο δεδνκέλσλ Απινπνίεζε δηακνηξαζκνύ δεδνκέλσλ Πεξηζζόηεξν «δηαζέζηκα» δεδνκέλα Γεκηνπξγία λέσλ γισζζώλ XHTML, WSDL, RDF θαη OWL, RSS θιπ.
Ένα απλό XML αρτείο.xml <?xml version = "1.0"?> <!-- Simple introduction to XML markup --> <mymessage> <message>welcome to XML!</message> </mymessage> View page
XML δήλωζη Η πξώηε γξακκή ελόο XML αξρείνπ <?xml version="versionnumber" [encoding="encodingvalue"] [standalone="yes no"]?> version e.g. 1.0 encoding πξναηξεηηθή ηηκή - πξνεπηιεγκέλε UTF-8 standalone Γειώλεη αλ ην XML αξρείν δελ εμαξηάηαη από άιια XML αξρεία γηα λα είλαη έγθπξν ή όρη Δμ νξηζκνύ ε ηηκή είλαη yes (δει. αλεμάξηεην αξρείν)
Το ζσνηακηικό ηης XML 1/2 Κάζε tag πξέπεη λα θιείλεη <message> Welcome XML! (no) Τα tags είλαη case sensitive Τν <message> είλαη δηαθνξεηηθό από ην <Message> Τα tags πξέπεη λα είλαη εκθσιεπκέλα ζσζηά <mymessage> <message> Welcome XML </mymessage> </message> (no) Άδεηα tags <Name/>
Το ζσνηακηικό ηης XML 2/2 Όια ηα XML αξρεία πξέπεη λα έρνπλ ένα και μόνο root tag! Όιεο νη ηηκέο ησλ ηδηνηήησλ πξέπεη λα βξίζθνληαη αλάκεζα ζε εηζαγσγηθά <message date= 4/12/2007 > (yes) Όινη νη θελνί ραξαθηήξεο δηαηεξνύληαη Δηζαγσγή ζρνιίσλ όπσο ζηελ HTML <!-- this is a comment -->
XML Elements 1/2 Έλα XML αξρείν είλαη επεθηάζηκν <tag>πεξηερόκελν</tag> Νέα ζηνηρεία κπνξνύλ λα πξνζηεζνύλ <mymessage> <message>welcome to XML!</message> <date>4/12/2007</date> </mymessage> Σρέζεηο κεηαμύ ησλ XML elements mymessage root element and parent element of message & date message & date siblings & child elements of mymessage
XML Elements 2/2 Τν πεξηερόκελν ησλ elements πνηθίιιεη Άιια elements (child elements) Μεηθηό πεξηερόκελν θείκελν & elements Μόλν θείκελν Άδεην element Γελ ππάξρεη πεξηνξηζκόο ζην βάζνο ηνπ εκθσιηαζκνύ ζηνηρείσλ Τα νλόκαηα ησλ elements Μπνξνύλ λα πεξηέρνπλ γξάκκαηα, αξηζκεηηθά ςεθία θαη άιινπο ραξαθηήξεο Γελ κπνξνύλ λα αξρίδνπλ κε αξηζκεηηθό ή ζεκείν ζηίμεο Γελ κπνξνύλ λα αξρίδνπλ κε ηα γξάκκαηα xml (ή XML ή Xml) Γελ κπνξνύλ λα πεξηέρνπλ θελά
XML attributes Τα XML elements κπνξνύλ λα πεξηέρνπλ attributes (ηδηόηεηεο) ζην αξρηθό tag όπσο θαη ζηελ HTML Τα attributes παξέρνπλ πεξηζζόηεξεο πιεξνθνξίεο γηα ηα elements <file type="gif">computer.gif</file> Η ηηκή ελόο attribute πξέπεη λα βξίζθεηαη είηε ζε κνλά είηε ζε δηπιά εηζαγσγηθά Οη επηπιένλ πιεξνθνξίεο γηα έλα element κπνξνύλ λα απνζεθεπηνύλ είηε σο attribute είηε σο child element
Χρήζη elements ανηί attributes! Γηαηί λα απνθεύγεηε ηα attributes; Γελ κπνξνύλ λα πεξηέρνπλ πνιιαπιέο ηηκέο Γελ είλαη εύθνια επεθηάζηκα Γελ πεξηγξάθνπλ δνκέο Γηαρεηξίδνληαη δύζθνια από πξνγξάκκαηα Δίλαη δύζθνινο ν έιεγρνο ηνπ κε βάζε έλα DTD Πόηε λα ρξεζηκνπνηείηε attributes; Γηα πιεξνθνξίεο πνπ δελ είλαη ζρεηηθέο κε ηα δεδνκέλα Γηα ηελ αλάζεζε ID ζηα elements
Προκαθοριζμένες ονηόηηηες αναθοράς Η εηζαγσγή ηνπ ραξαθηήξα < ζε έλα XML αξρείν ζα παξάγεη ζθάικα, θαζώο ν XML parser ζα ζεσξήζεη όηη αξρίδεη έλα θαηλνύξην element Η XML ππνζηεξίδεη ηηο εμήο πέληε πξνθαζνξηζκέλεο νληόηεηεο αλαθνξάο γηα ηνπο εηδηθνύο ραξαθηήξεο: < < > > & & ' " " Σθάικα παξάγνπλ κόλν νη ραξαθηήξεο < θαη &
XML CDATA Όιν ην θείκελν ελόο XML αξρείνπ ζα επεμεξγαζηεί από ηνλ XML parser. Δάλ ν ρξήζηεο επηζπκεί λα εηζάγεη πιεξνθνξία ε νπνία δελ πξέπεη λα επεμεξγαζηεί ηόηε απηή πξέπεη λα εκθαληζηεί ζε έλα CDATA section Έλαο CDATA section αξρίδεη κε ην <![CDATA[ θαη ηειεηώλεη κε ην ]]> Σε έλα CDATA δελ επηηξέπεηαη ε αθνινπζία ραξαθηήξσλ ]]> <script> <![CDATA[ function matchwo(a,b) { if (a < b && a < 0) then { return 1 } else { return 0 } } ]]> </ script > View page
Τέλος Δπραξηζηώ πνιύ