XML: - ΔΔΕ ΦΛΩΡΙΝΑΣ |

Download Report

Transcript XML: - ΔΔΕ ΦΛΩΡΙΝΑΣ |

Εισαγωγή στην XML
Από την Καραδημητρίου Κρυσταλλένια
Καθηγήτρια Πληροφορικής στο
Γυμνάσιο και Ενιαίο Λύκειο Φιλώτα Φλώρινας
Οκτώβριος 2004
Βασικά προβλήματα στη
διαχείριση πληροφοριών




Συγκέντρωση
Αποθήκευση
Ανάκτηση
Ανταλλαγή
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
2
EDI



Ηλεκτρονική ανταλλαγή δομημένων με
συγκεκριμένο τρόπο εγγράφων
Χρησιμοποιείται 20 χρόνια
Πρότυπα


ANSI X.12 (ΗΠΑ και Καναδάς)
EDIFACT (Διεθνές)
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
3
EDI: Πλεονεκτήματα





Ο χειρισμός εγγράφων μειώνεται,
εξοικονομώντας χρόνο και χρήμα
Δεδομένα ανταλάσσονται σε πραγματικό χρόνο
Υπάρχουν λιγότερα λάθη αφου τα δεδομένα
πληκτρολογούνται μια φορά
Ο αναβαθμισμένος διαμοιρασμός δεδομένων
δίνει δυνατότητα για μεγαλύτερο συντονισμό
ενεργειών μεταξύ επαγγελματιών συνεταίρων
Η ροή χρημάτων επιταχύνεται και οι πληρωμές
γίνονται γρηγορότερα
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
4
EDI: Μειονεκτήματα



Πολύ πληροφορία είναι ακόμα σε χαρτί
Η ηλεκτρονική ανταλλαγή είναι η εξαίρεση
παρά ο κανόνας
Το Internet είναι μία χαμηλού κόστους
λύση σε σχέση με το EDI που χρησιμοποιεί
value added networks (VANs)
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
5
SGML (πρόγονος της XML)

Η διαχείριση εγγράφων καταναλώνει το:




15% του εισοδήματος της εταιρίας
25% των εργατικών εξόδων
10 - 60% της δουλειάς ενός υπαλλήλου
γραφείου
Η Standard generalized markup language
(SGML) σχεδιάστηκε να μειώσει το
κόστος της διαχείρισης εγγράφων
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
6
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
Καραδημητρίου Κρυσταλλένια
7
SGML

Ένα ανεξάρτητο πρότυπο για έκδοση σε
όλα τα μέσα




Σε διαφορετικά συστήματα
Φορητή
Καθορίζει τη δομή ενός εγγράφου
Η γλώσσα από την οποία προήλθαν οι
HTML και XML
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
8
SGML: Πλεονεκτήματα


Ίδια πλεονεκτήματα με την επεξεργασία
κειμένου
Ευελιξία


Παράγει αποτέλεσμα για πολλαπλά μέσα
Βελτιωμένες εκδόσεις

Έλεγχος εκδόσεων των εγγράφων
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
9
SGML: Μειονεκτήματα

Είναι αρκετή πολύπλοκη και δύσχρηστη
γλώσσα.
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
10
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
Καραδημητρίου Κρυσταλλένια
11
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
Καραδημητρίου Κρυσταλλένια
12
Προβλήματα με την HTML



Η παρουσίαση δεν έχει κάποιο νόημα
Ο αναγνώστης συμπεραίνει το νόημα
Οι μηχανές δεν είναι καλές στο να
συμπεραίνουν το νόημα
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
13
XML



Extensible markup language – Μία απλή έκδοση
της sgml
Σχεδιασμένη για να εισάγει την sgml στο
διαδίκτυο
Μια μετα-γλώσσα (meta-language)

Μια γλώσσα που παράγει γλώσσες

Θα αντικαταστήσει σταδιακά την HTML

XHTML μία αναδιαμόρφωση της HTML 4
στην XML 1.0
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
14
XML ενάντια HTML




Δομημένο κείμενο
Δομή καθορισμένη
από το χρήστη
Αποδοτικότερη
διασύνδεση
υπερκειμένου
Ευέλικτο και
προσαρμόσιμο
κείμενο



Μορφοποιημένο
κείμενο
Προκαθορισμένη
μορφή
Περιορισμένη
διασύνδεση
υπερκειμένου
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
15
Κανόνες στην XML





Τα στοιχεία (elements) πρέπει να έχουν μια ετικέτα
ανοίγματος και μία ετικέτα (tag) κλεισίματος
Τα στοιχεία ακολουθούν μια αυστηρή ιεραρχία με ένα
μόνο στοιχείο ρίζα (root element) και τα υπόλοιπα στοιχεία
μέσα σε αυτό
Τα στοιχεία δε μπορούν να υπερκαλύπτουν (μοιράζονται)
άλλα στοιχεία
Τα ονόματα των στοιχείων πρέπει να υπακούουν τις
συμβάσεις ονομάτων της XML
Η XML διαχωρίζει μικρά – κεφαλαία (case sensitive)
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
16
Η HTML ενάντια στην XML
HTML
XML
<p><b>MIST7600</b> Data <course>
Management<br>
<code>MIST7600</code>
3 credit hours</p>
<title>Data
Management</title>
<credit>3</credit>
</course>
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
17
Αναζήτηση

Οι μηχανές αναζήτησης αναζητούν
συγκεκριμένες ετικέτες (tags) στον κώδικα
XML


Ταχύτερα
Με μεγαλύτερη ακρίβεια
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
18
Αναμενόμενα κέρδη





Αποθήκευση μια φορά και μορφοποίηση
πολλές φορές
Ανεξαρτησία υλικού – λογισμικού
Συγκέντρωση δεδομένων μια φορά και
ανταλλαγή πολλές φορές
Ταχύτερη εστιασμένη αναζήτηση
Μικρότερη συμφόρηση του δικτύου
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
19
XML Προδιαγραφές

XML 1.0
Καθορίζει το συντακτικό της XML

XPointer, XLink
Καθορίζει ένα συγκεκριμένο τρόπο να αναπαριστά τους συνδέσμους
μεταξύ των διαφόρων πηγών (resources)

XSL
Καθορίζει μία γλώσσα για το στυλ – μορφή της XML
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
20
XML – σχεδιασμός γλώσσας

Οι σχεδιαστές λογισμικού πρέπει να
καθορίσουν :



Επιτρεπόμενες ετικέτες
Κανόνες για εμφωλευμένες ετικέτες
Ποια στοιχεία μπορούν να έχουν περαιτέρω
επεξεργασία
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
21
XML Σχήμα (Schema)

Το σχήμα καθορίζει





Τα ονόματα και το περιεχόμενο όλων των στοιχείων
που είναι επιτρεπτά σε ένα συγκεκριμένο έγγραφο
Τη δομή ενός εγγράφου
Πόσο συχνά ένα στοιχείο μπορεί να εμφανίζεται
Τη σειρά με την οποία τα στοιχεία πρέπει να
εμφανίζονται
Ο τύπος των δεδομένων που το στοιχείο
περιλαμβάνει
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
22
Τα Στοιχεία και το περιεχόμενο τους
<bibliography>
Τύπος στοιχείου
(element type)
<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
χαρακτήρα
Καραδημητρίου Κρυσταλλένια
Στοιχείο
(element)
Περιεχόμενο
στοιχείου
Άδειο
στοιχείο
23
Ιδιότητες στοιχείων
Όνομα ιδιότητας
<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
Καραδημητρίου Κρυσταλλένια
24
DOM



Document object model
Tο μοντέλο δεδομένων για ένα XML
έγγραφο
Ένα δένδρο (1:m)
CD library
CD
*CDid
CDlabel
CDtitle
CDyear
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
TRACK
*trknum
trktitle
trklen
25
Μοντέλο για τη δομή του DOM
και API

Ιεραρχία των αντικειμένων των κόμβων:


έγγραφο, στοιχείο, ιδιότητα, κείμενο, σχόλιο, ...
Προγραμματισμός ανεξάρτητος γλώσσας DOM
API :




get... first/last child, prev/next sibling, childNodes
insertBefore, replace
getElementsByTagName
...
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
26
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
Καραδημητρίου Κρυσταλλένια
27
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
Καραδημητρίου Κρυσταλλένια
28

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
Καραδημητρίου Κρυσταλλένια
29
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
Καραδημητρίου Κρυσταλλένια
30
Κοινοί τύποι δεδομένων








χαρακτήρας
Λογική τιμή
uriReference
δεκαδικός
πραγματικός
ακέραιος
χρόνος
ημερομηνία
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
31
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
Καραδημητρίου Κρυσταλλένια
32
XSLT μοντέλο επεξεργασίας
Μεταμόρφωση
XSLT stylesheet
XML δέντρο προέλευσης
XML,HTML,csv, text… τελικό δέντρο
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
33
XSL




Extensible stylesheet language
Καθορίζει πως ένα XML έγγραφο
μετατρέπεται από μια μορφή σε άλλη
Διαφορετικές XSL μορφοποιήσεις μπορεί
να χρησιμοποιηθεί να παρουσιάσουν το
ίδιο xml έγγραφο με διαφορετικούς
τρόπους
Είναι ένα XML αρχείο
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
34
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
Καραδημητρίου Κρυσταλλένια
35
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
(συνέχεια)
<table>
<xsl:for-each select= "track">
<tr>
<td align="left">
<xsl:value-of select= "trknum" />
</td>
<td>
<xsl:value-of select= "trktitle" />
</td>
<td align= "center" >
<xsl:value-of select= "trklen" />
</td>
</tr>
</xsl:for-each>
</table>
<br />
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XSLT Παράδειγμα συνέχεια ...
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
38
XML και Βάσεις δεδομένων



Η XML είναι ένα εργαλείο που χειρίζεται
δεδομένα
Τα XML έγγραφα πρέπει να
αποθηκεύονται μακροπρόθεσμα
Χρειάζεται ένα DBMS
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
39
Απαιτήσεις της DBMS






Να αποθηκεύει ένα μεγάλο αριθμό εγγράφων
Να αποθηκεύει μεγάλα έγγραφα
Να Υποστηρίζει πρόσβαση σε τμήματα του
εγγράφου (π.χ., τα δεδομένα για ένα απλό CD σε
μια βιλιοθήκη με 20,000 CDs)
Ταυτόχρονη πρόσβαση
Έλεγχος εκδόσεων
Να συγκεντρώνει δεδομένα από άλλες πηγές
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
40
RDBMS

Εστιασμένο σε έγγραφα


Εστιασμένο σε δεδομένα


Αποθηκεύεται ως CLOB
Αντικειμενο – σχεσιακές επεκτάσεις που
υποστηρίζουν ανάκτηση στοιχείων και ανανέωση
Αναμένεται οι φορείς RDBMS να προσφέρουν
επεκτάσεις που υποστηρίζουν XML
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
41
Βάσεις δεδομένων σε XML




Μια σημαντική αναλογία από σελίδες του
δικτύου παράγονται από βάσεις δεδομένων
Αντί να μετατρέπονται σε HTML θα
έπρεπε να μετατρέπονται σε XML
Μετατροπή με το XSLσε HTML
Χρειάζονται εργαλεία για να μετατραπούν
σχεσιακά δεδομένα σε XML
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
42
Παράδειγμα: Σχεσιακά δεδομένα με XML
R
R
A
B
C
a1
b1
c1
a2
a3
b2
b3
c2
c3
R
tuple
tuple
tuple
A B C A B C A B C
a1 b1 c1 a2 b2 c2 a3 b3 c3
tuple
A a1 /A
B b1 /B
C c1 /C
/tuple
tuple
A a2 /A
B b2 /B
C c2 /C
/tuple
…
/R
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
43
Απλά εργαλεία Συγγραφής



MS Notepad (Απλός Επεξεργαστής
κειμένου)
Textpad
MS XML Notepad Beta 1.5
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
44
Συμπεράσματα



Η XML αποτελεί μια σημαντική
τεχνολογική ανάπτυξη
Ο βασικός της στόχος είναι να υποστηρίζει
την ανταλλαγή δεδομένων
Περιορίζει το κόστος των επαγγελματικών
συναλλαγών
Εισαγωγή στην XML
Καραδημητρίου Κρυσταλλένια
45