Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Εισαγωγή στην XML Μ. ΓΑΒΑΛΑΣ.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Εισαγωγή στην XML Μ. ΓΑΒΑΛΑΣ."— Μεταγράφημα παρουσίασης:

1 Εισαγωγή στην XML Μ. ΓΑΒΑΛΑΣ

2 Περιεχόμενα HTML και XML Σε τι χρησιμεύει η XML Πως γράφουμε XML
Έγκυρη XML: DTDs και XML-Schema Παραδείγματα σχημάτων Επεξεργασία της XML  Μοντέλο DOM 13/4/2017 Εισαγωγή στην XML

3 HTML Hyper Text Markup Language
Ένα HTML αρχείο είναι ένα αρχείο κειμένου που περιέχει ετικέτες-markup tags Οι ετικέτες περιγράφουν στο πρόγραμμα πλοήγησης πώς θα εμφανίζει τη σελίδα Τα HTML αρχεία έχουν κατάληξη htm ή html. Μπορούν να δημιουργηθούν σε έναν απλό επεξεργαστή κειμένου. 13/4/2017 Εισαγωγή στην XML

4 Παράδειγμα <html> <head> <title>Παράδειγμα</title> </head> <body> Το πρώτο μου αρχείο. <b>Κεφάλαιο 1ο</b> </body> </html> 13/4/2017 Εισαγωγή στην XML

5 Ετικέτες HTML Χρησιμοποιούνται για να δηλώσουν τα στοιχεία (elements) της HTML. Βρίσκονται μεταξύ των < και >. Συνήθως βρίσκονται σε ζεύγη (π.χ. <b>και</b>), όπου η πρώτη ονομάζεται ετικέτα αρχής και η δεύτερη ετικέτα τέλους. Το κείμενο που βρίσκεται ανάμεσα στις ετικέτες αποτελεί το περιεχόμενο του στοιχείου. Δεν παίζουν ρόλο τα κεφαλαία στα ονόματα των ετικετών (δεν είναι case sensitive). Μπορεί να περιέχουν χαρακτηριστικά (attributes) που προσδιορίζουν καλύτερα τα στοιχεία. π.χ. <body bgcolor="red">. 13/4/2017 Εισαγωγή στην XML

6 Τι είναι η XML EXtensible Markup Language.
Είναι δηλωτική γλώσσα όπως η HTML. Είναι επεκτάσιμη. Οι ετικέτες της XML δεν είναι προκαθορισμένες. Καθορίζονται από το χρήστη. Η XML είναι αυτο-περιγραφική. Η XML σχεδιάστηκε για να περιγράφει τα δεδομένα. Χρησιμοποιεί αρχεία (DTDs και XML-Schema) για να περιγράψει τη δομή των δεδομένων. Σχεδιάστηκε για να συμπληρώσει την HTML και όχι να την αντικαταστήσει. 13/4/2017 Εισαγωγή στην XML

7 Η χρήση της XML Η XML χρησιμοποιείται για να αποθηκεύσουμε και να οργανώσουμε τα δεδομένα όχι για την παρουσίαση των δεδομένων (HTML). Η XML χρησιμοποιείται για ανταλλαγή δεδομένων. H πληροφορία στις ΒΔ έχει συγκεκριμένη δομή. Στην HTML σελίδα, χάνει τη δομή της. Σε ένα XML έγγραφο, διατηρείται μια δομή η οποία μπορεί να ξανα-αποθηκευθεί σε ΒΔ. Η XML χρησιμοποιείται για αποθήκευση δεδομένων. Τα XML αρχεία μπορούν να αντικαταστήσουν τις ΒΔ. Αρκεί να υπάρχουν τρόποι να κάνουμε επερωτήσεις και ενημερώσεις. 13/4/2017 Εισαγωγή στην XML

8 Παράδειγμα <?xml version="1.0"?> <note> <to>John</to> <from>Bill</from> <heading>Greetings</heading> <body>Hi John!</body> </note> Η πρώτη γραμμή δηλώνει την έκδοση της XML για το συγκεκριμένο έγγραφο. Μπορεί να περιέχει πληροφορίες για την κωδικοποίηση (encoding) του εγγράφου. Η δεύτερη γραμμή ορίζει το πρώτο στοιχείο του εγγράφου (τη ρίζα του) που είναι μοναδικό. Οι υπόλοιπες 4 γραμμές ορίζουν τα στοιχεία που βρίσκονται κάτω από τη ρίζα (to, from, heading, and body). Η τελευταία γραμμή κλείνει το στοιχείο στη ρίζα. (</...> note to heading from body 13/4/2017 Εισαγωγή στην XML

9 Σύνταξη της XML Όλα τα στοιχεία (elements) της XML πρέπει να έχουν ετικέτα κλεισίματος Στην HTML ορισμένα στοιχεία δεν έχουν τέτοια ετικέτα: <p> Παράγραφος 1 <p> Παράγραφος 2 Στην XML αυτό θα γίνει: <p> Παράγραφος 1</p> <p> Παράγραφος 2</p> Οι ετικέτες της XML είναι case sensitive Η ετικέτα <Message> είναι διαφορετική από την </message>  <Message>Λάθος</message> <message>Σωστό</message>  13/4/2017 Εισαγωγή στην XML

10 Σύνταξη της XML Τα elements στην XML πρέπει να είναι σωστά φωλιασμένα.
Στην HTML η παρακάτω δήλωση είναι σωστή: <b><i>This text is bold and italic</b></i> Στην XML η σωστή σύνταξη είναι: <b><i>This text is bold and italic</i></b> Όλα τα XML έγγραφα πρέπει να έχουν μία ρίζα. Η ρίζα πρέπει να είναι μοναδική. Όλα τα υπόλοιπα στοιχεία θα βρίσκονται φωλιασμένα σ’ αυτήν. Οι τιμές των Attributes πρέπει να βρίσκονται σε εισαγωγικά. Τα elements μπορούν να έχουν attributes όπως στην HTML. <note date=12/11/99> Λάθος</note> <note date="12/11/99">Σωστό</note> 13/4/2017 Εισαγωγή στην XML

11 XML Attributes Τα attributes χρησιμοποιούνται για να περιγράψουν καλύτερα τα elements της XML. Περιέχονται πάντα στην αρχική ετικέτα του element σε ζευγάρια της μορφής: όνομα="τιμή”. Στην HTML: <IMG SRC="computer.gif"> <a href="demo.asp"> Στην XML: <file type="gif"> <person id="3344"> Συνήθως η πληροφορία που παρέχεται στα attributes εξυπηρετεί τη δομή της XML αλλά και τα προγράμματα που επεξεργάζονται τη δομή των XML αρχείων και όχι τους αναγνώστες. (π.χ. το id στο στοιχείο person) 13/4/2017 Εισαγωγή στην XML

12 Elements ή Attributes;
Τα attributes έχουν περισσότερους περιορισμούς όσο αφορά στον τύπο που πρέπει να έχουν τα δεδομένα που περιέχουν, για το λόγο αυτό τα elements χρησιμοποιούνται συχνότερα Πληροφορία ως Attribute: <person sex="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person> Και ως Element: <person> <sex>female</sex> <firstname>Anna</firstname> <lastname>Smith</lastname> 13/4/2017 Εισαγωγή στην XML

13 Εμφάνιση XML στον browser
Ορθή ΧΜL (note.xml) <?xml version="1.0" encoding="ISO8859-1" ?> <note> <to>John</to> <from>Bill</from> <heading>Greetings</heading> <body>Hi John!</body> </note> Λάθος XML (note_error.xml) <?xml version="1.0" encoding="ISO8859-1" ?> <note> <to>John</To> <from>Bill</from> <heading>Greetings</heading> <body>Hi John!</body> </note> 13/4/2017 Εισαγωγή στην XML

14 Μελέτη περίπτωσης Κάθε υπάλληλος θα είναι ένα employee element.
<employee id="..."> <name>…</name> <surname>…</surname> <salary>...</salary> <age>…</age> <married>…</married> </employee> Φτιάξτε ένα xml αρχείο για έναν υπάλληλο. 13/4/2017 Εισαγωγή στην XML

15 Παραδείγματα Κατάλογος CDs – Κατάλογος φυτών
(cd_catalog.xml) <?xml version="1.0" encoding="ISO8859-1" ?> <CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> <TITLE>Hide your heart</TITLE> <ARTIST>Bonnie Tylor</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>CBS Records</COMPANY> <PRICE>9.90</PRICE> <YEAR>1988</YEAR> ... (plant_catalog.xml) <?xml version="1.0" encoding="ISO8859-1" ?> <CATALOG> <PLANT> <COMMON>Bloodroot</COMMON> <BOTANICAL>Sanguinaria canadensis</BOTANICAL> <ZONE>4</ZONE> <LIGHT>Mostly Shady</LIGHT> <PRICE>$2.44</PRICE> <AVAILABILITY>031599</AVAILABILITY> </PLANT> <COMMON>Columbine</COMMON> <BOTANICAL>Aquilegia canadensis</BOTANICAL> <ZONE>3</ZONE> <PRICE>$9.37</PRICE> <AVAILABILITY>030699</AVAILABILITY> ... 13/4/2017 Εισαγωγή στην XML

16 Μελέτη περίπτωσης Φτιάξτε ένα xml αρχείο με 2 υπαλλήλους
Κάθε αρχείο XML πρέπει να έχει υποχρεωτικά ένα μόνο κεντρικό (root) element. Βάλτε τα δύο employee μέσα σε ένα element organization. 13/4/2017 Εισαγωγή στην XML

17 Έγκυρη XML DTDs – XML Schema

18 DTD - Document Type Definition
Καθορίζει τη δομή των XML εγγράφων. Είτε περιέχεται στο XML έγγραφο, είτε υπάρχει ως αρχείο (.dtd) και καλείται από το XML. Ομάδες ανθρώπων συμφωνούν σε ένα DTD για να ανταλλάσσουν δεδομένα. 13/4/2017 Εισαγωγή στην XML

19 Εξωτερικό DTD Το DTD αρχείο XML αρχείο με εξωτερικό DTD
<?xml version="1.0"?> <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> XML αρχείο με εξωτερικό DTD <?xml version="1.0"?> <!DOCTYPE note SYSTEM "note.dtd"> <note> <to>John</to> <from>Bill</from> <heading>Greetingsr</heading> <body>Hi John!</body> </note> 13/4/2017 Εισαγωγή στην XML

20 Εσωτερικό DTD !ELEMENT note !ELEMENT to !ELEMENT from
XML αρχείο με εσωτ. DTD: <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>]> <note> <to>John</to> <from>Bill</from> <heading>Greetingsr</heading> <body>Hi John!</body> </note> !ELEMENT note Το στοιχείο "note" περιέχει 4 στοιχεία: "to,from,heading,body". !ELEMENT to Το στοιχείο "to" είναι τύπου "CDATA". Περιέχει δηλαδή κείμενο !ELEMENT from Το στοιχείο "from" είναι επίσης τύπου "CDATA" Το ίδιο τα heading και body. 13/4/2017 Εισαγωγή στην XML

21 Δομικά στοιχεία του DTD
Στοιχεία - Elements. Παραδείγματα HTML elements: "body", "table". Παραδείγματα XML elements: "note", "message". Μπορούν να περιέχουν κείμενο, άλλα elements ή να είναι κενά ( "hr", "br", “img”). Χαρακτηριστικά - Attributes. Παρέχουν επιπλέον πληροφορία για τα στοιχεία. Βρίσκονται στην αρχική ετικέτα των στοιχείων. Έρχονται σε ζεύγη όνομα/τιμή. Παράδειγμα:<img src="computer.gif" /> 13/4/2017 Εισαγωγή στην XML

22 Δομικά στοιχεία του DTD
Δεδομένα - PCDATA PCDATA σημαίνει means parsed character data. Δεδομένα δηλαδή που έχουν εσωτερική δομή και το πρόγραμμα επεξεργασίας μπορεί να τα χρησιμοποιήσει. Αν το κείμενο (PCDATA) έχει ετικέτες αυτές θα διαβαστούν κανονικά.  Κείμενο - CDATA CDATA σημαίνει character data. Δεδομένα που δεν έχουν εσωτερική δομή (απλό κείμενο) Αν το κείμενο (CDATA) έχει ετικέτες, αυτές θα αγνοηθούν από το πρόγραμμα επεξεργασίας που θα τις θεωρήσει κείμενο. Οντότητες - Entities Είναι μεταβλητές που αντιπροσωπεύουν κάποιους ειδικούς χαρακτήρες. < (<), > (>), & (&), " ("), ' (‘) 13/4/2017 Εισαγωγή στην XML

23 DTD - Elements Πώς δηλώνουμε ένα element Κενά elements
<!ELEMENT element-name (element-content)> Κενά elements <!ELEMENT element-name (EMPTY)> Elements με δεδομένα. Δηλώνουμε τον τύπο δεδομένων. <!ELEMENT element-name (#CDATA)> <!ELEMENT element-name (#PCDATA)> <!ELEMENT element-name (ANY)> Αν το #PCDATA περιέχει elements πρέπει και αυτά να δηλωθούν. 13/4/2017 Εισαγωγή στην XML

24 DTD - Elements (2) Elements που περιέχουν άλλα elements.
Δηλώνουμε το όνομα των παιδιών μέσα σε παρένθεση: <!ELEMENT element-name (child-element-name)> <!ELEMENT element-name (child-element-name,child-element- name,.....)> Και ακολουθεί η δήλωση των στοιχείων παιδιών. Παράδειγμα: <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#CDATA)> <!ELEMENT from (#CDATA)> <!ELEMENT heading (#CDATA)> <!ELEMENT body (#CDATA)> Τα στοιχεία παιδιά πρέπει να εμφανίζονται στο XML έγγραφο με την ίδια σειρά που εμφανίζονται στην παρένθεση. 13/4/2017 Εισαγωγή στην XML

25 Το πλήθος των sub-elements
<!ELEMENT element-name (child-name)> Παράδειγμα: <!ELEMENT note (message)> Ένα element εμφανίζεται τουλάχιστον μία φορά (+) <!ELEMENT element-name (child-name+)> Παράδειγμα: <!ELEMENT note (message+)> Ένα element εμφανίζεται καμία ή περισσότερες φορές (*) <!ELEMENT element-name (child-name*)> Παράδειγμα: <!ELEMENT note (message*)> Ένα element εμφανίζεται καμία ή μία φορά (?) <!ELEMENT element-name (child-name?)> Παράδειγμα: <!ELEMENT note (message?)> Γενικό παράδειγμα: <!ELEMENT note (to+,from,header,message*,#PCDATA)> 13/4/2017 Εισαγωγή στην XML

26 DTD - Attributes Στο DTD, τα attributes δηλώνονται σε ένα ATTLIST. Που καθορίζει το element που θα περιέχει τo συγκεκριμένο attribute, το όνομα του attribute, τον τύπο του και μια σταθερή τιμή <!ATTLIST element-name attribute-name attribute-type default-value> Ο τύπος του χαρακτηριστικού (attribute-type) μπορεί να είναι: 13/4/2017 Εισαγωγή στην XML

27 DTD – Attributes(2) Η σταθερή τιμή (default-value) μπορεί να είναι:
13/4/2017 Εισαγωγή στην XML

28 DTD – Attributes - Παράδειγμα
<!ATTLIST element-name attribute-name CDATA "default- value"> DTD: <!ELEMENT square EMPTY> <!ATTLIST square width CDATA "0"> XML: <square width="100"></square> <!ATTLIST element-name attribute-name attribute-type #IMPLIED> DTD: <!ATTLIST contact CDATA #IMPLIED> XML: <contact=" "> <!ATTLIST element-name attribute_name attribute-type #REQUIRED> DTD: <!ATTLIST personnumber CDATA #REQUIRED> XML: <personnumber="5677"> 13/4/2017 Εισαγωγή στην XML

29 Μελέτη περίπτωσης Φτιάξτε το αρχείο org.dtd που θα περιγράφει τη δομή των XML αρχείων σας Ένας οργανισμός έχει πολλούς υπαλλήλους 13/4/2017 Εισαγωγή στην XML

30 XML Schema Το XML Schema χρησιμοποιείται αντί για το DTD.
Υποστηρίζει πολλούς τύπους δεδομένων Είναι επεκτάσιμο Τα αρχεία έχουν κατάληξη .xsd Υπάρχει αναφορά από το root element του XML στο xsd <order xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:noNamespaceSchemaLocation="order.xsd"> 13/4/2017 Εισαγωγή στην XML

31 Τα στοιχεία της XML-Schema
ComplexType Καθορίζει τον τύπο και το περιεχόμενο ενός στοιχείου, καθώς και τα παιδιά που μπορεί να περιέχει SimpleType Καθορίζει τον τύπο και το περιεχόμενο ενός χαρακτηριστικού. Attribute Δηλώνει ότι ένα στοιχείο μπορεί να περιέχει το συγκεκριμένο χαρακτηριστικό που δηλώθηκε προηγούμενα σε ένα SimpleType. Element Δηλώνει ότι ένα στοιχείο μπορεί να περιέχει το συγκεκριμένο υπο-στοιχείο που δηλώθηκε προηγούμενα σε ένα ComplexType. 13/4/2017 Εισαγωγή στην XML

32 Ερώτηση – order.xml Ποιο είναι το σχήμα του παρακάτω XML εγγράφου;
<?xml version="1.0" encoding="UTF-8"?> <order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="order.xsd"> <customer> <name>John Dim</name> <phone_number> </phone_number> </customer> <item> <number> </number> <description>book</description> <price>15000</price> </item> <date_of_purchase> </date_of_purchase> <date_of_delivery> </date_of_delivery> </order> 13/4/2017 Εισαγωγή στην XML

33 Απάντηση - order.xsd <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="order"> <xs:complexType> <xs:sequence> <xs:element name="customer"> <xs:element name="name" type="xs:string"/> <xs:element name="phone_number" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:element> 13/4/2017 Εισαγωγή στην XML

34 <xs:element name="item"> <xs:complexType> <xs:sequence> <xs:element name="number" type="xs:int"/> <xs:element name="description" type="xs:string"/> <xs:element name="price" type="xs:short"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="date_of_purchase" type="xs:date"/> <xs:element name="date_of_delivery" type="xs:date"/> </xs:schema> 13/4/2017 Εισαγωγή στην XML

35 DOM Το δέντρο της XML

36 To Document Object Model
Είναι ένα προγραμματιστικό εργαλείο για την επεξεργασία HTML και XML εγγράφων Καθορίζει τους τρόπους πρόσβασης και επεξεργασίας ενός εγγράφου.  Με το DOM, μπορεί κανείς να δημιουργήσει ένα έγγραφο, να περιηγηθεί τη δομή του, να προσθέσει ή να διαγράψει στοιχεία και χαρακτηριστικά. Υποστηρίζεται από τη Microsoft και τον Internet Explorer. Έχει περισσότερες απαιτήσεις σε μνήμη από το SAX καθώς χρειάζεται να φορτώσει όλο το έγγραφο στη μνήμη για να το επεξεργαστεί. Στη συνέχεια η επεξεργασία είναι ευκολότερη καθώς μπορούμε να έχουμε εύκολη μετακίνηση στα επίπεδα της ιεραρχίας του DOM. 13/4/2017 Εισαγωγή στην XML

37 Οι κόμβοι (Node Interface)
Ένα πρόγραμμα που ονομάζεται parser διαβάζει τα περιεχόμενα του αρχείου στη μνήμη. Η πληροφορία στη συνέχεια επεξεργάζεται με το (DOM). Το DOM δημιουργεί μια δενδρική δομή (όψη) για το αρχείο. Η ρίζα του δένδρου είναι το documentElement, και έχει ένα ή περισσότερα childNodes. Το Node Interface χρησιμοποιείται για να διαβάζουμε ή να γράφουμε τα elements του XML δέντρου. Η ιδιότητα childNodes του documentElement χρησιμοποιείται με μια δομή for/each που δημιουργεί μια λίστα με τους κόμβους. 13 τύποι κόμβων υποστηρίζονται από τον Microsoft XML parser. 13/4/2017 Εισαγωγή στην XML

38 Διαχείριση του DOM Ο XMLDOM parser της Microsoft υποστηρίζει:
JavaScript, VBScript, Perl, VB, Java, C++ W3C XML 1.0 και XML DOM DTD και έλεγχο εγκυρότητας Δημιουργία XML εγγράφου: Με JavaScript στον IE 5.0: var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") Με VBScript: set xmlDoc = CreateObject("Microsoft.XMLDOM") Με VBScript και ASP: set xmlDoc = Server.CreateObject("Microsoft.XMLDOM") 13/4/2017 Εισαγωγή στην XML

39 Φόρτωμα αρχείου Από κείμενο: Από υπάρχον αρχείο:
<script language="JavaScript"> var text="<note>" text=text+"<to>John</to> <from>Bill</from>" text=text+"<heading>Greetings</headi ng>" text=text+"<body>Hi John!</body>" text=text+"</note>" var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.loadXML(text) // ... Επεξεργασία </script> Από υπάρχον αρχείο: <script language="JavaScript"> var xmlDoc = new ActiveXObject ("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.load("note.xml") // ...επεξεργασία </script> 13/4/2017 Εισαγωγή στην XML Από υπάρχον αρχείο: 13/4/2017. Εισαγωγή στην XML.", "width": "800" }

40 Πρόσβαση στο DOM Παράδειγμα κώδικα JavaScript που διαβάζει τα δεδομένα από XML αρχείο και τα αναθέτει σε μεταβλητές ενός HTML αρχείου: var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.load("note.xml") nodes = xmlDoc.documentElement.childNodes to.innerText = nodes.item(0).text from.innerText = nodes.item(1).text header.innerText = nodes.item(2).text body.innerText = nodes.item(3).text 13/4/2017 Εισαγωγή στην XML

41 Πρόσβαση στο DOM(3) Παράδειγμα κώδικα JavaScript που καλεί τα elements με το όνομά τους. var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.load("note.xml") document.write (xmlDoc.getElementsByTagName("from").item(0).text) 13/4/2017 Εισαγωγή στην XML


Κατέβασμα ppt "Εισαγωγή στην XML Μ. ΓΑΒΑΛΑΣ."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google