Download - Εισαγωγή στην XML
1
Εισαγωγή στην XML
Μάρτιος 2005
Γ. Σ. ΣακελλάρηςΤ. Α. Κοντογιώργης
Ιατρική ΠληροφορικήΔιδάσκων: Δ.Ι. Φωτιάδης
2
eXtensible Markup Language (XML)
H XML είναι μια από τις τεχνολογίες που αναπτύχθηκαν με την εξέλιξη του Internet (infrastructure)
Το ακρώνυμο “XML” χρησιμοποιείται για να περιγράψει μια αναπτυσσόμενη οικογένεια από standards και software tools
Η XML αποτελεί πλέον το standard για την αναπαράσταση και αποθήκευση των δεδομένων που κινούνται μέσω του Internet
3
Περιεχόμενα Παρουσίασης Εισαγωγή Τι είναι η XML Κανόνες γλώσσας, βασική επεξεργασία XML Ορίζοντας γραμματικές της γλώσσας
– DTDs, schemas, and namespaces XML επεξεργασία
– Parsers and parser interfaces– XML-based εργαλεία επεξεργασίας
XML messaging Συμπεράσματα
4
Γιατί XML ???
Internet: Αποτελείται από ένα σύνολο εφαρμογών που επικοινωνούν μεταξύ τους
Οι εφαρμογές ανταλλάσσουν δεδομένα με αυθαίρετη δομή και μορφοποίηση τα οποία πρέπει να στη συνέχεια να επεξεργαστούν
Πρόβλημα: Απαιτείται ένα κοινό πρότυπο στην αναπαράσταση των δεδομένων
Πολλές φορές η εφαρμογή ενδιαφέρεται όχι για τα ίδια τα δεδομένα αλλά για τη σημασία τους και που αυτά αναφέρονται (metaknowledge)
Πρόβλημα: Θέλουμε μια μέθοδο να δημιουργούμε μεταδεδομένα
5
Markup Languages Ο όρος Markup αναφέρεται σε ένα σύνολο από
ενδείξεις/παρατηρήσεις που αναφέρονται και περιγράφουν τη δεδομένα ενός κειμένου
Πρόκειται για οδηγούς στο τρόπο με τον οποίο πρέπει να ερμηνευτούν τα περιεχόμενα του κειμένου
Μια συλλογή τέτοιων ενδείξεων, που ακολουθούν καθορισμένο συντακτικό και γραμματική, μπορεί να θεωρηθεί γλώσσα
Μία Markup γλώσσα προσδίδει πληροφορία για τα περιεχόμενα ενός κειμένου
Οι Markup Languages είναι μια μέθοδος για να δημιουργούμε μεταδεδομένα (metadata)
6
Ιστορία των Markup Languages
To 1969 η ΙΒΜ κατασκεύασε την GML, τη πρώτη «σύγχρονη» markup γλώσσα
Από τη GML προήλθε η SGML η οποία το 1986 έγινε ISO standard για αποθήκευση και ανταλλαγή δεδομένων
Το 1991 όταν αναπτύχθηκε η HTML αποτέλεσε μια εφαρμογή της SGML
Η ταχύτατη ανάπτυξη του Web και οι περιορισμένες δυνατότητες της HTML γέννησαν την XML στα τέλη των ’90s.
7
HTML Έχει συγκεκριμένη δομή Περιορισμένο αριθμό από tags κατά συνέπεια
μπορούμε να αναπαραστήσουμε συγκεκριμένη πληροφορία
Υπάρχουν browsers (ΙΕ, Netscape,….) Απλή, εύκολη στην εκμάθηση Περιορισμένες δυνατότητες στην ανάπτυξη
εφαρμογών
Βασική διαφορά με την XML: Ένα XML αρχείο ορίζει αυστηρά που αρχίζει (start tag)
και που τελειώνει (end tag) κάθε κομμάτι του κειμένου,
δίνοντας έτσι ξεχωριστό νόημα στα περιεχόμενα των tags.
8
Εάν μπορείς να το διαβάσεις και να το επεξεργαστείς τότεμπορεί να το κάνει οποιοσδήποτε
Ένα συντακτικό για κωδικοποίηση δεδομένων κειμένου (words, phrases, numbers, ...)
Είναι text-based. H XML γράφεται χρησιμοποιώντας printable χαρακτήρες (όχι binary data)
Επεκτάσιμη (Extensible). Η XML σου επιτρέπει να ορίσεις τα δικά σου elements (essentially data types), με βάση ορισμένους συντακτικούς κανόνες
Κοινό format. Τα δεδομένα που κωδικοποιούνται σε XML μετατρέπονται σε έναν standard τύπο εγγράφου τον οποίο μπορεί να διαβάσει και να επεξεργαστεί οποιαδήποτε εφαρμογή που υποστηρίζει XML τεχνολογία.
Tι είναι η XML?
9
Τι δεν είναι η XML
Δεν είναι γλώσσα προγραμματισμού
Δεν είναι ένα λογισμικό
Δεν είναι περιβάλλον ανάπτυξης λογισμικού
Δεν είναι εργαλείο ανάπτυξης ιστιοσελίδων
10
Ένα απλό παράδειγμα
<?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 ref=“x23-2112-2342” date=“25aug1999-12:34:23h”> . . . Order something else . . . </order></partorders>
XML Declaration (“this is XML”) Binary encoding used in file
11
Goals of XML1. Απλή (όπως η HTML – αλλά όχι τόσο απλή)
– Συγκεκριμένοι συντακτικοί κανόνες, για τον περιορισμό συντακτικών λαθών.
– η σύνταξη ορίζει την δομή (ιεραρχική), και ονοματίζει δομημένα κομμάτια (element names) – είναι αυτο-χαρακτηριζόμενα δεδομένα
2. Επεκτάσιμη (σε αντίθεση με την HTML)– Μπορείς να δημιουργήσεις την δικιά σου γλώσσα από
tags/elements – Η αυστηρότητα του συντακτικού εξασφαλίζει την
εγκυρότητα της επεξεργασίας
3. Σχεδιασμένη για ένα κατανεμημένο περιβάλλον (όπως η HTML)
4. Μπορεί να ‘αναμείξει’ διαφορετικούς τύπους δεδομένων (σε αντίθεση με την HTML)
12
Βασικά συνθετικά του συντακτικού της XML<animal> <name language = “English”> Tiger </name><name language = “Latin”> Panthera tigris </name>
<weight> 500 pounds </weight></animal>
opening tag
closing tag
elements
attributes
values
content
<picture filename = “tiger.jpg”/>
empty element, just an attribute
entity
13
Ιεραρχικό Μοντέλο Δεδομένων – XML δέντρο
text
partorders
order
order
desc
part
quantity
delivery-date
date=
ref=
date=
ref=
xmlns=
<partorders xmlns="...">
<order date="..."
ref="...">
<desc> ..text..
</desc>
<part />
<quantity />
<delivery-date />
</order>
<order ref=".." .../>
</partorders>
text
14
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> <acknowledgeReceipt> yes </acknowledgeReceipt> </from> <to account="65123222" /> </fundsTransfer></transfers>
xml-simple.xml
15
XML dataparser
parserinterface
XML-basedapplication
O parser πρέπει να πιστοποιήσει ότι τα XML δεδομένα είναι ορισμένα συντακτικός σωστά.
Όπως λέμε τα δεδομένα να είναι well-formed– Η ελάχιστη απαίτηση για να ‘είναι’ XML
Ένας parser πρέπει να σταματά την επεξεργασία αν τα δεδομένα δεν είναι well-formed (καλός ορισμένα)
– π.χ., σταμάτα την επεξεργασία και “throw an exception” στη XML-based εφαρμογή.
XML Parser
16
Document Type Definition (DTD)
H XML δίνει τη δυνατότητα στο χρήστη να δηλώσει το ρόλο κάθε element στο κείμενο με formal τρόπο μέσω πρόσθετων συντακτικών εντολών
Το σύνολο αυτών των εντολών συνθέτουν έναν DTD
O DTD δεν είναι απαραίτητος Όταν χρησιμοποιείται, ο parser μπορεί αν ελέγξει
την λογική ορθότητα στη δομή του κειμένου σύμφωνα με τον DTD
O DTD επιβάλει επιπλέον κανόνες για την well-formed δομή του κειμένου
18
Ο parser επεξεργάζεται το περιεχόμενο του DTD, αναγνωρίζει τις εσωτερικές οντότητες, και ελέγχει αν κάθε οντότητα είναι καλός ορισμένη (well-formed).
Στο περιεχόμενο του DTD ορίζονται σαφής συντακτικοί κανόνες τους οποίους πρέπει να ακολουθεί το XML αρχείο.
O parser τότε αντικαθιστά κάθε εμφάνιση αναφοράς ‘entity reference’ από το αναφερόμενο entity
Το “αλλαγμένο” data object γίνεται διαθέσιμο στην εφαρμογή XML
XML Parsers, DTDs, και Εσωτερικές Οντότητες
19
XML: Εισαγωγή 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>
xml-simple-intEntity.xml
Document Type Declaration (DTD)
Internal Entity δήλωση
Entity αναφορά &name;
20
XML Parsers και Εξωτερικές Οντότητες O parser επεξεργάζεται τα περιεχόμενα του
DTD και αναγνωρίζει τα εξωτερικά entities
Αντικαθιστά κάθε εμφάνιση ενός entity reference από την αναφερόμενη οντότητα, και το επαναλαμβάνει για όλες τις οντότητες
Τι συμβαίνει αν δεν μπορεί να βρει μια οντότητα?
Εξαρτάται από τον τύπο της εφαρμογής ή του parser
– Υπάρχουν δύο τύποι XML parsers– Ένας που πρέπει να ανακτά όλες τις οντότητες,
και ένας που μπορεί να τις αγνοήσει (εάν δεν μπορεί να τις βρει)
21
Οι 2 τύποι XML parsers Validating parser (Επικύρωσης)
– Πρέπει να ανακτήσουν όλες τις οντότητες και να επεξεργαστούν τα περιεχόμενα όλων των DTDs. Τερματίζουν την επεξεργασία και επιστρέφουν επιτυχία ή αποτυχία.
– Οι parsers επίσης ελέγχουν για τη συμβατότητα του XML κειμένου με το DTD ως προς άλλες παραμέτρους, όπως για παράδειγμα συντακτικοί κανόνες
Non-validating parser (Μη επικύρωσης parser)
– Ο parser πιστοποιεί απλά ότι τα δεδομένα είναι well-formed XML
H συμπεριφορά της εφαρμογής εξαρτάται από τον τύπο του parser
22
XML Επεξεργασία: Εξωτερικά Entities
<?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> xml-simple-extEntity.xml
ορισμόςExternal Entity
Location δοθείσα από ένα URL
Ιδέα: βάλε το entity σε άλλο αρχείο ώστε να είναι διαθέσιμο από πολλά αρχεία.
23
Μοντέλο λειτουργίας XML Parser
XML δεδομέναparser
parserinterface
XML-basedεφαρμογή
DTD
Η συμπεριφορά εξαρτάταιαπό την φύση του parser
Πολλοί parsers μπορούν να λειτουργήσουν είτε μεvalidating είτε με non-validating τρόπο
24
Περιεχόμενα Τι είναι η XML
– Κανόνες τις γλώσσας, βασικές έννοιες Ορίζοντας διαλέκτους
– DTDs, schemas, and namespaces XML επεξεργασία
– Parsers και parser interfaces– XML-based εργαλεία επεξεργασίας
XML messaging Συμπεράσματα
25
Πως ορίζουμε γραμματική μιας γλώσσας Δύο τρόποι:
– 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 μοντέλα
26
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
27
“Εξωτερικό” DTD
<!DOCTYPE transfers SYSTEM "http://www.foo.org/hereitis/simple.dtd” >
<transfers> <fundsTransfer date="20010923T12:34:34Z"> . . . As with previous example . . . . . .</transfers>
Αναφορά χρησιμοποιώντας μεταλλαγή του DOCTYPE:
Το DTD αρχείο πρέπει να είναι διαθέσιμο.
simple.dtd
28
XML Schemas Ένας ορισμός για τον καθορισμό κανόνων σε XML
κείμενα (γραμματική)Specs: http://www.w3.org/XML/SchemaBest-practice: http://www.xfront.com/BestPracticesHomepage.html
Χρησιμοποιεί XML (όχι ειδική DTD σύνταξη) για τον ορισμό των κανόνων.
Τα Schemas είναι πιο ‘δυνατα’ από τα DTDs – μπορούν να ορίσουν τύπους δεδομένων όπως ακέραιοι, ημερομηνίες, πραγματικοί αριθμοί, etc.
Χρησιμοποιούνται συχνά για επικύρωση τύπων και ή για συσχέτιση ER σχημάτων με XΜL μοντέλα
Το επόμενο slide δείχνει τα DTD σε Schema μορφή
29
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:restriction> </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
30
XML Namespaces(1/2) Tα ονόματα των elements ενός αρχείου
χαρακτηρίζονται από μια ετικέτα (super label) Το label αυτό ονομάζεται namespace και αποτελεί
το όνομα της συλλογής των ονομάτων του αρχείου Το όνομα ενός namespace παίρνει τη μορφή ενός
URL, το δεν έχει link πουθενά! Χρησιμοποιείται αυτή η αναπαράσταση γιατί είναι μοναδική
http://www.domain.com/ns/rivers/1.1
31
XML Namespaces(2/2) Μηχανισμός για αναγνώριση διαφορετικών
‘χώρων’ για XML ονόματα
–Τα οποία είναι, ονόματα element ή attribute
Είναι ένας τρόπος για να ορίσουμε διαφορετικές διαλέκτους γλώσσας, αποτελούμενο από ονόματα που έχουν συγκεκριμένη σημασιολογία και νόημα.
Χρησιμοποιούμε ένα ειδικό xmlns attribute για να ορίσουμε το namespace. Το namespace δίνεται σαν ένα URL string
32
Ανάμειξη γλωσσών και διαλέκτων<?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>
mt: υποδεικνύει τον ‘χώρο’ mathml (κάποια γλώσσα)
Default ‘space’is xhtml
Τα namespaces επιτρέπουν να το κάνουμε απλά:
33
Περιεχόμενα Τι είναι η XML
– Κανόνες τις γλώσσας, βασικές έννοιες Ορίζοντας διαλέκτους
– DTDs, schemas, and namespaces XML επεξεργασία
– Parsers και parser interfaces– XML-based εργαλεία επεξεργασίας
XML messaging Συμπεράσματα
34
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 το κείμενο)
35
XML Επεξεργασία: SAXA) 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
Μειονεκτήματα– Πρέπει να κάνεις πολλά μόνος σου– Δεν είναι πολύ χρήσιμο αν χρειάζεται να μεταβάλεις
δυναμικά το κείμενο, οπότε χρειάζεται να είναι φορτωμένο όλο στην μνήμη
36
XML Επεξεργασία: DOMB) 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
37
DOM Parser Μοντέλο Επεξεργασίας
XML δεδομέναparser
parserinterface
εφαρμογή
text
partorders
order
order
desc
part
quantity
delivery-date
Document “object”
DOM
38
Μερικοί 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
39
Μερικά benchmarks για parsers:
http://www-106.ibm.com/developerworks/xml/library/x-injava/index.html
40
Γενικά– SAX γρηγορότερος xDOM πιο αργός– SAX λιγότερη μνήμη xDOM περισσότερη
μνήμη– SAX stream επεξεργασία xDOM επεξεργασία
αντικειμένου
41
XML Επεξεργασία: XSLTD) 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 (δεν υπάρχει
αναγνώριση λαθών)
42
XSLT μοντέλο επεξεργασίας D) XSLT μοντέλο επεξεργασίας
XSLT style sheet in
XMLparser
XSLT processor
document “objects” fordata and style sheet
XMLparser
XML data in
text
partorders
order
order
desc
part
quantity
delivery-date
partorders
xza
order
foo bee
data out (XML)
schema
schema
43
Περιεχόμενα Τι είναι η XML
– Κανόνες τις γλώσσας, βασικές έννοιες Ορίζοντας διαλέκτους
– DTDs, schemas, and namespaces XML επεξεργασία
– Parsers και parser interfaces– XML-based εργαλεία επεξεργασίας
XML messaging Συμπεράσματα
44
XML Messaging Χρησιμοποιούμε XML σαν format για αποστολή
μηνυμάτων μεταξύ συστημάτων Τα πλεονεκτήματα είναι:
– Κοινό συντακτικό, self-describing– Μπορούν να χρησιμοποιήσουν κοινό/υπάρχον
μηχανισμό για να μεταφερθούν XML δεδομένα (HTTP, HTTPS, SMTP (email), MQ, IIOP/(CORBA), JMS, ….)
Απαιτήσεις– Κοινές πηγές συντακτικών (απαιτείται χρήση
[namespace] ) για αναγνώριση διαλέκτων– Κοινό πρωτόκολλο
Μειονεκτήματα– Ασύγχρονη μεταφορά– Τα μηνύματα θα είναι πολύ πιο μεγάλα από τα binary
δεδομένα (10x ή περισσότερο) [αλλά μπορεί να γίνει συμπίεση]
45
Standard για τη μεταφορά μηνυμάτων XML over HTTP
– Χρησιμοποιείται HTTP πρωτόκολλο για την μεταφορά XML messages
POST /path/to/interface.pl HTTP/1.1Referer: http://www.foo.org/myClient.htmlUser-agent: db-server-olkAccept-encoding: gzipAccept-charset: iso-8859-1, utf-8, ucsContent-type: application/xml; charset=utf-8Content-length: 13221. . .
<?xml version=“1.0” encoding=“utf-8” ?><message>
. . . Markup in message . . .
</message>
46
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 και άλλων εμπορικών πακέτων.
47
XML Messaging + Processing
FactorySupplier
Supplier
Supplier
Place orderXML using
SOAP over HTTP
ResponseXML using
SOAP over HTTP
SOAP interface
SOAP
Transport
XML/EDI
HTTP(S)SMTPother ...
Application
SOAP API
• XML as a universal format for data exchange
48
Περιεχόμενα Τι είναι η XML
– Κανόνες τις γλώσσας, βασικές έννοιες Ορίζοντας διαλέκτους
– DTDs, schemas, and namespaces XML επεξεργασία
– Parsers και parser interfaces– XML-based εργαλεία επεξεργασίας
XML messaging Συμπεράσματα
49
Συμπεράσματα Η XML είναι μια σχετικά νέα και ταχύτατα αναπτυσσόμενη τεχνολογία που έχει καθιερωθεί σαν πρότυπο για τη μοντελοποίηση και επεξεργασία των δεδομένων που διακινούνται στο Internet Περιλαμβάνει αρκετά πρότυπα και λογισμικό που επιτρέπουν τη χρήση της σε ευρεία κλίμακα Παίζει πρωταγωνιστικό ρόλο στη σύγχρονη μορφή του διαδικτύου - ενοποιώντας τις web-based εφαρμογές - συμβάλλοντας στη δημιουργία ενός επιπέδου μετά-γνώσης (semantic web)
50
Συμπεράσματα
Τα επιτεύγματα της XML μπορούν να συνοψιστούν στα παρακάτω:
Καθιέρωσε ένα κοινό format στη μοντελοποίηση των web δεδομένων Εισήγαγε στη πράξη την έννοια της αυτοπεριγραφής σε ένα block δεδομένων (meta-data) Τα δεδομένα πλέον δεν είναι κατανοητά μόνο από υπολογιστές αλλά προορίζονται και για χρήστες Καθιέρωσε ένα κοινό πρότυπο στην επεξεργασία και ερμηνεία των δεδομένων από τις εφαρμογές του Internet
51
XML Spy XML editor http://www.xmlspy.com/download.html
XML NotepadMicrosoft XML Notepad http://msdn.microsoft.com/xml/notepad/download.asp
XML ProXML editor http://www.vervet.com/demo.html
IE5.0 or above.
Tutorials on XML/XSL/DTD/XML Schemas www.w3schools.com
XML Editors
52
SAX 1
XML: σύνολο ορισμένων προτύπων
XML 1.0 XML names
Xpath
XSLT
XSL
DOM 1
‘Open’ std
MathML
SMIL 1 & 2
SVG
XHTML 1.0
Modularized XHTML
XHTMLbasic
Xforms
Canonical
XMLsignature
XML base
Xlink
Xpointer
XML query ….
Infoset
XML schema
RDF
Xfragment
XHTMLevents
SOAP UDDI FinXML
dirXMLXML-RPC
100's more ....
SAX 2
DOM 2
DOM 3
CSS 1
CSS 2
CSS 3
JDOM
JAXP
WSDLIFX
FpML ...
ebXML
Biztalk
WDDX XMI...
...
APIs
Style Protocols Web Services Application areas
XML Core
W3C rec
W3C draft
industry std
…...