1 / 53

Εισαγωγή στην XML

Εισαγωγή στην XML. Μάρτιος 200 5 Γ. Σ. Σακελλάρης Τ. Α. Κοντογιώργης Ιατρική Πληροφορική Διδάσκων: Δ.Ι. Φωτιάδης. eXtensible Markup Language (XML). H XML είναι μια από τις τεχνολογίες που αναπτύχθηκαν με την εξέλιξη του Internet (infrastructure)

Download Presentation

Εισαγωγή στην XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. eXtensible Markup Language (XML) • H XMLείναι μια από τις τεχνολογίες που αναπτύχθηκαν με την εξέλιξη του Internet (infrastructure) • Το ακρώνυμο “XML” χρησιμοποιείται για να περιγράψει μια αναπτυσσόμενη οικογένεια από standardsκαι softwaretools • Η 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. Tι είναι η XML? • Ένασυντακτικό για κωδικοποίηση δεδομένων κειμένου (words, phrases, numbers, ...) • Είναι text-based. HXML γράφεται χρησιμοποιώντας printableχαρακτήρες (όχι binary data) • Επεκτάσιμη (Extensible). Η XML σου επιτρέπει να ορίσεις τα δικά σου elements (essentially data types),με βάση ορισμένους συντακτικούς κανόνες • Κοινό format.Τα δεδομένα που κωδικοποιούνται σε XML μετατρέπονται σε έναν standard τύπο εγγράφου τον οποίο μπορεί να διαβάσει και ναεπεξεργαστεί οποιαδήποτε εφαρμογή που υποστηρίζει XML τεχνολογία. Εάν μπορείς να το διαβάσεις και να το επεξεργαστείς τότε μπορεί να το κάνει οποιοσδήποτε

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

  10. Ένα απλό παράδειγμα 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 ref=“x23-2112-2342” date=“25aug1999-12:34:23h”> . . . Order something else . . . </order> </partorders>

  11. Goals of XML 1.Απλή (όπως η HTML – αλλά όχι τόσο απλή) • Συγκεκριμένοι συντακτικοίκανόνες, για τον περιορισμό συντακτικών λαθών. • η σύνταξη ορίζει την δομή (ιεραρχική), και ονοματίζει δομημένα κομμάτια (element names) – είναιαυτο-χαρακτηριζόμεναδεδομένα 2.Επεκτάσιμη (σε αντίθεση με την HTML) • Μπορείς να δημιουργήσεις την δικιά σου γλώσσα από tags/elements • Η αυστηρότητα του συντακτικούεξασφαλίζειτην εγκυρότητα της επεξεργασίας 3. Σχεδιασμένη για ένα κατανεμημένο περιβάλλον (όπως η HTML) 4. Μπορεί να ‘αναμείξει’διαφορετικούςτύπους δεδομένων (σε αντίθεση με την HTML)

  12. opening tag Βασικά συνθετικά του συντακτικού της XML entity 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

  13. ref= date= desc text order part quantity partorders xmlns= delivery-date order ref= date= ΙεραρχικόΜοντέλο Δεδομένων – XML δέντρο <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> <fundsTransferdate="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. parser interface parser XML-based application XML data XML Parser • O parser πρέπει να πιστοποιήσει ότι τα XML δεδομένα είναι ορισμένα συντακτικός σωστά. • Όπως λέμε τα δεδομένα να είναιwell-formed • Η ελάχιστη απαίτηση για να ‘είναι’ XML • Ένας parser πρέπει νασταματά την επεξεργασία αν τα δεδομένα δεν είναι well-formed (καλός ορισμένα) • π.χ., σταμάτα την επεξεργασία και “throw an exception” στη XML-based εφαρμογή.

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

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

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

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

  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 Ιδέα: βάλε το entity σε άλλο αρχείο ώστε να είναι διαθέσιμο από πολλά αρχεία. <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPEtransfers[ . . . <!ENTITYmessageHeader SYSTEM"http://www.somewhere.org/dir/head.xml" > ]> <transfers> &messageHeader; <fundsTransferdate="20010923T12:34:34Z"> <from type="intrabank"> . . . Content omitted . . . </transfers> ορισμός External Entity Locationδοθείσα από ένα URL xml-simple-extEntity.xml

  23. Μοντέλο λειτουργίας XML Parser parser interface parser XML-based εφαρμογή XML δεδομένα Η συμπεριφορά εξαρτάται από την φύση του parser DTD Πολλοί 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 [ <!ELEMENTtransfers(fundsTransfer)+> <!ELEMENTfundsTransfer(from, to)> <!ATTLISTfundsTransfer dateCDATA #REQUIRED> <!ELEMENTfrom(amount, transitID?, accountID, acknowledgeReceipt )> <!ATTLISTfrom type (intrabank|internal|other) #REQUIRED> <!ELEMENTamount (#PCDATA) > . . . Omitted DTD content . . . <!ELEMENTtoEMPTY> <!ATTLISTto accountCDATA#REQUIRED> ]> <transfers> <fundsTransfer date="20010923T12:34:34Z"> . . . As with previous example . . . xml-simple-valid.xml

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

  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. Ανάμειξη γλωσσών και διαλέκτων Τα 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 mt:υποδεικνύει τον ‘χώρο’mathml (κάποια γλώσσα)

  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 Επεξεργασία: 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 • Μειονεκτήματα • Πρέπει να κάνεις πολλά μόνος σου • Δεν είναι πολύ χρήσιμο αν χρειάζεται να μεταβάλεις δυναμικά το κείμενο, οπότε χρειάζεται να είναι φορτωμένο όλο στην μνήμη

  36. 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

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

  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 Επεξεργασία: 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 (δεν υπάρχει αναγνώριση λαθών)

  42. desc text order part partorders quantity delivery-date xza foo partorders bee order order 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

  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-RPChttp://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 • XML as a universal format for data exchange Place order XML using SOAP over HTTP SOAP interface Application Supplier SOAP API Factory SOAP Supplier XML/ EDI Transport HTTP(S) SMTP other ... Supplier Response XML using SOAP over HTTP

  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 Συμπεράσματα

More Related