ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML Εργαστήρια 7-8 Στουγιάννου Ελευθερία estoug@unipi.gr
Περιεχόμενα Έβδομου-Όγδοου Εργαστηριακού Μαθήματος XML Schema Ασκήσεις - Ερωτήσεις
XML Schema Ας θυμηθούμε: Ένα έγκυρο (valid) έγγραφο XML: Well-Formed + DTD (ή XML Schema) Τα DTDs παρέχουν μια βασική γραμματική για τον καθορισμό ενός XML εγγράφου. Τα XML Schemas παρέχουν ότι παρέχουν και τα DTDs και επιπλέον παρέχουν έναν λεπτομερή τρόπο για να καθοριστεί τι μπορούν και τι δεν μπορούν να περιέχουν τα δεδομένα. Χαρακτηριστικά: Χρησιμοποιούν τη σύνταξη της XML Τηρούν τους κανόνες σύνταξης της XML Παρέχουν απλούς τύπους δεδομένων (string, integer, datetime, duration, language, ) Είναι επεκτάσιμα Έχουν κατάληξη.xsd
XML - Schema (XSD) XSD: XML Schema Definition o Γραμμένη σε XML o Ορίζει: Elements και attributes που εμφανίζονται σε ένα έγγραφο Ιεραρχία εγγράφου Τη σειρά και τον αριθμό των child elements Πότε ένα element είναι άδειο ή μπορεί να περιέχει κείμενο Τύπους δεδομένων για τα elements και τα attributes Default και fixed τιμές για τα elements και τα attributes o Υποστηρίζει τα namespaces
Η Γλώσσα XML Schema Η γλώσσα XML Schema είναι μία γλώσσα XML κατάλληλη για την περιγραφή της δομής XML εγγράφων. Η XML Shema (όπως και τα DTD) είναι γλώσσα περιγραφής σχήματος. Η XML Schema προσφέρει χαρακτηριστικά και δυνατότητες ισχυρότερα αυτών που παρέχονται από τα DTD.
Δομή ενός XSD File To xs:schema αποτελεί το root element για ένα xsd αρχείο και πρέπει να υπάρχει πάντα. <xs:schema xmlns:xs = "http://www.w3.org/2001/xmlschema">
XML Shema: Παράδειγμα 1 (1/2) Ζητείται περιγραφή σε XML Schema της δομής των εγγράφων της μορφής: <ΤΑΒ> <φοιτητής> <όνομα>ελευθερία</όνομα> <επώνυμο>στουγιάννου</επώνυμο> </φοιτητής> <φοιτητής>. </φοιτητής> </ΤΑΒ>
XML Shema: Παράδειγμα 1 (2/2)
XML Schema: Παράδειγμα 2 (1/2) XML Έγγραφο: <?xml version="1.0" encoding="utf-8"?> <mobile_phone> <name>sony Xperia</name> <price>200</price> </mobile_phone> DTD: <?xml version="1.0" encoding="utf-8"?> <!ELEMENT mobile_phone (name, price)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)> XML Schema: - Α ΤΡΟΠΟΣ - <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="mobile_phone"> <xs:complextype> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="price" type="xs:string" /> </xs:sequence> </xs:complextype> </xs:element> </xs:schema>
XML Schema: Παράδειγμα 2 (2/2) XML Έγγραφο: <?xml version="1.0" encoding="utf-8"?> <mobile_phone > <name>sony Xperia</name> <price>200</price> </mobile_phone> DTD: <?xml version="1.0" encoding="utf-8"?> <!ELEMENT mobile_phone (name, price)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)> xmlns= http://www.w3schools.com xmlns:xsi= http://www.w3.org/2001/xmlschema-instance xsi:schemalocation=" http://www.w3schools.com mobile_phone.xsd"> <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> XML Schema: <xs:element name="mobile_phone" type="phone_type"/> <xs:complextype name="phone_type"> - B ΤΡΟΠΟΣ - <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="price" type="xs:string" /> </xs:sequence> </xs:complextype> </xs:schema> mobile_phone.xsd
Χαρακτηριστικά της XML Schema Ένα έγγραφο XML Schema είναι ένα XML έγγραφο. Τα στοιχεία στο XML Schema του παραδείγματος έχουν το πρόθεμα xs, το οποίο συνδέεται με το χώρο ονομάτων της XML Schema μέσω της δήλωσης: xmlns:xs=http://www.w3.org/2001/xmlschema Η XML Schema παρέχει στοιχεία (όπως τα element, sequence, complextype) με συγκεκριμένη σημασία, τα οποία μαζί με αντίστοιχα γνωρίσματα (όπως τα name, type, minoccurs, maxoccurs) επιτρέπουν την περιγραφή της δομής XML εγγράφων. Μία περιγραφή σχήματος στην XML Schema έχει ως ετικέτα αρχής του πιο εξωτερικού στοιχείου (της ρίζας) την ετικέτα xs:schema. H XML Shema παρέχει αξιοσημείωτη εκφραστικότητα, η οποία επιτρέπει την περιγραφή της δομής XML εγγράφων με πολλούς διαφορετικούς τρόπους.
Referencing Schema Έστω το student.xml default namespace declaration [optional] To schemalocation attribute έχει δύο τιμές, το namespace και την τοποθεσία του XML Shema [optional]
XSD SimpleTypes & CompexTypes SimpleTypes (Απλού Τύπου) XML element με μόνο text και όχι attribute: Το attribute ενός XML element. Χρησιμοποιείται σε ένα complex element: (default, fixed, use= required values) ComplexTypes (Σύνθετου Τύπου) Complex Element είναι ένα XML element το οποίο περιέχει άλλα elements και/ή attributes. Ορισμός αποδεκτών τιμών για ένα xml element: π.χ.:
XML Schema Ορισμός Elements <xs:element> Μπορούμε να αναφερθούμε σε ένα άλλο στοιχείο, χρησιμοποιώντας την ιδιότητα ref, π.χ.: <xs:element ref= Customer > Κενά στοιχεία: Στο στοιχείο <xs:complextype> προσθέτουμε την ιδιότητα content= empty. Στοιχεία πολλαπλού περιεχομένου: Όταν ένα στοιχείο περιέχει κείμενο και άλλα στοιχεία, π.χ.: XML Έγγραφο XML Schema
XML Schema Ορισμός Attributes Για τη δήλωση γνωρισμάτων χρησιμοποιείται το στοιχείο attribute. Ένα γνώρισμα δηλώνεται ως εξής: <xs:attribute name= type=. /> Παράδειγμα: Με την έκφραση: <xs:attribute name= ηλικία type= xs:positiveinteger use= required /> δηλώνεται το γνώρισμα ηλικία, το οποίο παίρνει τιμές του τύπου positiveinteger Ο τύπος positiveinteger είναι απλός τύπος και αντιπροσωπεύει τους θετικούς ακέραιους αριθμούς. Η παράσταση use= required, δηλώνει ότι η εμφάνιση του συγκεκριμένου γνωρίσματος είναι υποχρεωτική. Ένα στοιχείο που διαθέτει γνωρίσματα είναι πάντα σύνθετου τύπου, και επομένως δηλώνεται μέσω του complextype. Οι δηλώσεις γνωρισμάτων τοποθετούνται στο τέλος της δήλωσης του σύνθετου τύπου του αντίστοιχου στοιχείου, ακριβώς πριν από το </xs:complextype>
XML Schema Παράδειγμα Ορισμός Attributes Παράδειγμα: Το στοιχείο φοιτητής στην παρακάτω δήλωση εμφανίζεται να διαθέτει το γνώρισμα ηλικία: <xs:element name= φοιτητής minoccurs=0 maxoccurs= unbounded > <xs:complextype> <xs:sequence> <xs:element name= όνομα type= xs:string /> <xs:element name= επώνυμο type= xs:string /> </xs:sequence> <xs:attribute name= ηλικία type= xs:positiveinteger use= required /> </xs:complextype> </xs:element> Παρατηρήστε ότι το στοιχείο φοιτητής περιλαμβάνει τα υποστοιχεία όνομα και επώνυμο, καθώς και το γνώρισμα ηλικία, το οποίο εμφανίζεται υποχρεωτικά σε κάθε στοιχείο φοιτητής, και παίρνει ως τιμή έναν θετικό ακέραιο.
Συχνότητα Εμφάνισης Στοιχείων Η XML Schema επιτρέπει να προδιαγράψουμε το πλήθος των εμφανίσεων των στοιχείων με εξαιρετική ακρίβεια. Αυτό γίνεται μέσω δύο γνωρισμάτων του element: Του minoccurs μέσω του οποίου δηλώνουμε τον ελάχιστο αριθμό εμφανίσεων του στοιχείου, Του maxoccurs μέσω του οποίου δηλώνουμε τον μέγιστο αριθμό εμφανίσεων του στοιχείου. Οι τιμές των γνωρισμάτων αυτών είναι μη αρνητικοί ακέραιοι. Όταν κάποιο από τα minoccurs ή maxoccurs παραλείπεται (και τα δύο ή ένα από αυτά), τότε θεωρείται ότι έχει σαν τιμή το 1. Παράδειγμα. Στη δήλωση: <xs:element name= φοιτητής type= studenttype minoccurs=0 maxoccurs= unbounded /> η τιμή unbounded του maxoccurs υποδηλώνει απεριόριστο αριθμό εμφανίσεων του φοιτητής, (είναι δυνατό να μην έχουμε καμία εμφάνιση λόγω της τιμής 0 του γνωρίσματος minoccurs).
Περιορισμοί Συχνότητας Εμφάνισης Στοιχείων και Γνωρισμάτων Ένα γνώρισμα μπορεί να εμφανίζεται σε ένα στιγμιότυπο στοιχείου μια φορά ή να μην εμφανίζεται καθόλου. Δεν μπορεί όμως, το ίδιο γνώρισμα να εμφανίζεται στο ίδιο στοιχείο περισσότερες από μία φορές (με την ίδια ή διαφορετική τιμή). Η XML Schema επιτρέπει να προσδιορίσουμε την υποχρεωτικότητα ή μη της εμφάνισης ενός γνωρίσματος μέσω του γνωρίσματος use του στοιχείου attribute (μέσω του οποίου δηλώνουμε το γνώρισμα). Η τιμή required στο γνώρισμα use υποδηλώνει υποχρεωτική εμφάνιση του γνωρίσματος, ενώ τιμή optional υποδηλώνει προαιρετική εμφάνιση του συγκεκριμένου γνωρίσματος.
Απλοί Τύποι (1/2) Η XML Schema διαθέτει πλούσια συλλογή ενσωματωμένων απλών τύπων, όπως οι: byte, integer, positiveinteger, negativeinteger, int, decimal, long, float, double, Boolean, date, datetime, ID, string, IDREF, IIDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS. H XML Schema επιτρέπει να ορίσουμε νέους απλούς τύπους μέσω του στοιχείου simpletype. Οι δηλώσεις περιγράφουν τον τρόπο που παράγονται οι νέοι τύποι από άλλους απλούς (ενσωματωμένους ή παραγόμενους) τύπους. Παράδειγμα. Με τη δήλωση: <xs:simpletype name= myinteger > <xs:restriction base= xs:integer > <xs:mininclusive value= 0 /> <xs:maxinclusive value= 100 /> </xs:restriction> </xs:simpletype> ορίζεται ο τύπος myinteger, μέσω επιβολής περιορισμών στον τύπο integer. Το όνομα του τύπου βάσης δίνεται ως τιμή στο γνώρισμα base του στοιχείου restriction. Οι περιορισμοί ορίζονται μέσω των στοιχείων mininclusive και maxinclusive και ορίζουν ως ελάχιστη επιτρεπτή τιμή το 0, και ως μέγιστη επιτρεπτή τιμή το 100.
Απλοί Τύποι (2/2) Η XML Schema παρέχει πλούσια ποικιλία «όψεων» (facets) (όπως οι mininclusive και maxinclusive) για την επιβολή περιορισμών κατά τον ορισμό νέων τύπων. Μια χρήσιμη όψη είναι το στοιχείο enumeration που περιορίζει έναν απλό τύπο σε ένα σύνολο διακριτών τιμών: Παράδειγμα. Στην περιγραφή: <xs:simpletype name= νόμισμα > <xs:restriction base= xs:string > <xs:enumeration value= GRD /> <xs:enumeration value= EURO /> <xs:enumeration value= USD /> <! κ.λ.π. --> </xs:restriction> </xs:simpletype> Ορίζεται ο απλός τύπος νόμισμα, με τιμές τα (διεθνή) σύμβολα των νομισμάτων, όπως τα GRD, EURO, USD, κ.λ.π.
Ομαδοποίηση Στοιχείων (Elements) Η XML Shema παρέχει τη δυνατότητα να ορίζουμε ομάδες στοιχείων (στις οποίες μπορούμε να δίνουμε και ονόματα). Στόχος, η χρήση αυτών των ομάδων για τη δόμηση του περιεχόμενου των σύνθετων τύπων.
Ομαδοποίηση Στοιχείων Mε sequence Το στοιχείο sequence χρησιμοποιείται για να δηλώσει (διατεταγμένη) ακολουθία (υπό)στοιχείων. Παράδειγμα. Στο παρακάτω: <xs:complextype name= studenttype > <xs:sequence> <xs:element name= όνομα type= xs:string /> <xs:element name= επώνυμο type= xs:string /> <xs:element name= πατρώνυμο type= xs:string /> </xs:sequence> </xs:complextype> Δηλώνεται ότι κάθε στοιχείο τύπου studenttype πρέπει να περιλαμβάει ένα υποστοιχείο όνομα, ακολουθούμενο από ένα υποστοιχείο επώνυμο και από ένα υποστοιχείο πατρώνυμο. Και τα τρία (υπό)στοιχεία είναι τύπου string.
Ομαδοποίηση Στοιχείων Mε choice Το στοιχείο choice επιτρέπει την εμφάνιση κάθε φορά ενός μόνο από τα (υπο)στοιχεία που περιλαμβάνει, ως περιεχόμενο του στοιχείου που ανήκει στον συγκεκριμένο τύπο. Παράδειγμα. Στο παρακάτω: <xs:complextype name= studenttype > <xs:choice> <xs:element name= oνοματεπώνυμο type= xs:string /> <xs:sequence> <xs:element name= όνομα type= xs:string /> <xs:element name= επώνυμο type= xs:string /> </xs:sequence> </xs:choice> </xs:complextype > Δηλώνεται ότι κάθε στοιχείο του τύπου studenttype έχει ως περιεχόμενο είτε το στοιχείο ονοματεπώνυμο είτε ένα στοιχείο όνομα ακολουθούμενο από ένα στοιχείο επώνυμο.
Ομαδοποίηση Στοιχείων Mε all Με το στοιχείο all δηλώνεται ότι κάθε στοιχείο της ομάδας εμφανίζεται υποχρεωτικά (ή προαιρετικά αν συνοδεύεται με το γνώρισμα minoccurs=0). Η σειρά εμφάνισης δεν παίζει ρόλο. Επιτρεπτές τιμές των minoccurs και maxoccurs στις δηλώσεις των στοιχείων του all είναι οι 0 και 1. Το all πρέπει να εμφανίζεται ως το μοναδικό υποστοιχείο του complextype. Παράδειγμα. Στο παρακάτω: <xs:complextype name= studenttype > <xs:all> <xs:element name= όνομα type= xs:string /> <xs:element name= επώνυμο type= xs:string /> <xs:element name= πατρώνυμο type= xs:string minoccurs=0/> </xs:all> </xs:complextype > Δηλώνεται ότι κάθε στοιχείο του τύπου studenttype περιλαμβάνει από μια εμφάνιση καθενός από τα στοιχεία όνομα, επώνυμο και μια ή καμία εμφάνιση του στοιχείου πατρώνυμο, αλλά με οποιαδήποτε σειρά.
XML Schema Συνοπτικά: Εντολές Συντακτικού (1/2) <xs:attribute> Δήλωση των attributes (ιδιοτήτων) των elements. <xs:choice> Επιλογή ενός element από έναν συγκεκριμένο αριθμό elements που μας δίνονται. <xs:sequence> Τα elements πρέπει να εμφανίζονται στην σειρά. <xs:all> Τα elements εμφανίζονται μία ή καμία φορά και με οποιαδήποτε σειρά. Περιορισμοί - Παραδείγματα: (α) Η τιμή του element age δεν μπορεί να είναι μικρότερη από 0 ή μεγαλύτερη από 120.
XML Schema Συνοπτικά: Εντολές Συντακτικού (2/2) Περιορισμοί - Παραδείγματα: (β) Το element car μπορεί να πάρει μόνο μια από τις παρακάτω τιμές. (γ) Το element letter μπορεί να πάρει τιμές μία από τα μικρά γράμματα από a έως z.
XML Schema Περιορισμοί
XML Validator - XSD (XML Schema) Validator & Tools Μπορείτε να χρησιμοποιήσετε το παρακάτω link για να μεταβείτε σε ένα online εργαλείο που επιτρέπει να ελέγξετε την εγκυρότητα του xml εγγράφου σας, αλλά και την εγκυρότητα ενός xml schema. http://www.freeformatter.com/xml-validator-xsd.html Επιλέξτε έναν editor, όπως τον XMLSpy ή τον oxygen XML Editor. Εγκαταστήστε τον στον υπολογιστή σας πριν ξεκινήσετε τις εργασίες του μαθήματος αυτού. Κατεβάστε ένα πλήρως λειτουργικό εργαλείο, το δωρεάν για 30 μέρες (trial) XMLSpy από το http://www.altova.com/download-trial.html ή Κατεβάστε το oxygen XML Editor δωρεάν για 30 ημέρες (απαιτεί trial license key) από το http://www.oxygenxml.com/xml_editor/download_oxygenxml_editor.html Μια ευρεία ποικιλία XML εργαλείων είναι διαθέσιμα από το W3C XML Web: site: http://www.w3.org/xml/schema#tools.
XML Schema Άσκηση 1 (1/2) Να καθοριστεί νέος τύπος δεδομένων σε ένα XML Schema, ο οποίος να διαδέχεται τις ακέραιες τιμές από -100 έως το 500.
XML Schema Άσκηση 1 - Λύση (2/2) Tο XML Schema φαίνεται παρακάτω:
XML Schema Άσκηση 2 (1/2) Ορίστε ένα XSD έγγραφο, το οποίο επικυρώνει (validate) XML έγγραφα, τα οποία περιγράφουν δυαδικές συμβολοσειρές (binary strings). Το στοιχείο ρίζα (root element) <binary> περιλαμβάνει μία τυχαία ακολουθία των στοιχείων <uno> και <zero> σε οποιαδήποτε σειρά.
XML Schema Άσκηση 2 - Λύση (2/2) <xs:element name="binary"> <xs:complextype> <xs:choice minoccurs="0" maxoccurs="unbounded"> <xs:element name="zero" type="xs:unsignedbyte" fixed="0"/> </xs:choice> </xs:complextype> </xs:element> <xs:element name="uno" type="xs:unsignedbyte" fixed="1"/> <binary> <uno>1</uno> <zero>0</zero> <zero>0</zero> <uno>1</uno> </binary>
XML Schema Άσκηση 3 (1/3) Δίνεται το παρακάτω XML Έγγραφο (businesscard.xml). Να γραφεί το XML Schema για το παραπάνω έγγραφο και να γίνει validate χρησιμοποιώντας ένα XML Spy Εργαλείο (π.χ. Trial version of Altova). Υποθέστε ότι: o σε ένα «BusinessCard» μπορεί να υπάρχουν απεριόριστα phone elements, o Οι τιμές που μπορεί να πάρει το attribute type του phone element είναι: mobile, work, fax, home και είναι υποχρεωτικό να υπάρχει. o Το «email» μπορεί να μην υπάρχει και καθόλου σε ένα «BusinessCard» o Όλα τα δεδομένα είναι τύπου string.
XML Schema Άσκηση 3 (2/3) businesscard.xsd
XML Schema Άσκηση 3 (3/3) businesscard.xml
XML Schema Άσκηση 4 (1/6) Να δοθεί ένα XML αρχείο (μη χρησιμοποιώντας ιδιότητες), το οποίο να περιλαμβάνει τις ακόλουθες πληροφορίες: το social security number (123456789A), το first name ενός person είναι Jack, και το last name του είναι Taylor, η address του αποτελείται από το postcode (0500), την city (Boston) και την street (Hamilton street), και τα telephone numbers είναι 12345 και 6789. Να δοθεί η δενδρική δομή του παραπάνω XML αρχείου. Να δοθεί το αντίστοιχο DTD του παραπάνω XML αρχείου. Να δοθεί ένα XML Schema για το παραπάνω XML αρχείο, χρησιμοποιώντας το social security number σαν ιδιότητα. Με βάση το XML Schema που δημιουργήθηκε (χρησιμοποιώντας το social security number σαν ιδιότητα) να δοθεί ένα νέο XML αρχείο.
XML Schema Άσκηση 4 - Λύση (2/6) Tο XML αρχείο φαίνεται παρακάτω.
XML Schema Άσκηση 4 - Λύση (3/6) Η δενδρική δομή του XML αρχείου φαίνεται παρακάτω.
XML Schema Άσκηση 4 - Λύση (4/6) Tο DTD φαίνεται παρακάτω.
XML Schema Άσκηση 4 - Λύση (5/6) Tο XML Schema φαίνεται παρακάτω.
XML Schema Άσκηση 4 - Λύση (6/6) Tο νέο XML αρχείο φαίνεται παρακάτω.
XML Schema Άσκηση 5 (1/2) Δίνεται το students.xml: Δημιουργήστε το κατάλληλο xsd αρχείο για το παραπάνω έγγραφο.
XML Schema Άσκηση 5 - Λύση (2/2) students.xsd
XML Schema Άσκηση 6 (1/2) Δίνεται το email.xml: Δημιουργήστε το κατάλληλο xsd αρχείο για το παραπάνω έγγραφο.
XML Schema Άσκηση 6 - Λύση (2/2) email.xsd
XML Schema Άσκηση 7 (1/2) Δίνεται το catalog.xml (describe a Product catalog): Δημιουργήστε το κατάλληλο xsd αρχείο για το παραπάνω έγγραφο ακολουθώντας τους παρακάτω κανόνες: Κάθε <catalog> θα πρέπει να έχει ακριβώς ένα στοιχείο <title> και ένα στοιχείο <introduction>. Τα <introduction> και <description> μπορούν να έχουν τουλάχιστον ένα παιδί στοιχείο <para>. Κάθε στοιχείο <catalog> μπορεί να έχει το λιγότερο ένα στοιχείο <product>. Κάθε στοιχείο <product> θα έχει ακριβώς ένα στοιχείο <title> και το λιγότερο ένα στοιχείο-παιδί <para>. Το απαιτούμενο id attribute δεν θα περιέχει κενό και θα είναι μοναδικό ανάμεσα σε όλα τα στοιχεία <product>. Το attribute price αναπαριστά ποσότητες χρημάτων και είναι προαιρετικό.
XML Schema Άσκηση 7 - Λύση (2/2) catalog.xsd
XML Schema Ερώτηση 1 Επέλεξτε ποια δύο από τα παρακάτω elements είναι XML Schema element το οποίο ορίζει μια σειρά από αριθμούς μεταξύ 1 και 5 για το element Telephone_Number. <xs:element name="telephone_number" type="xs:string" /> Πιθανές Απαντήσεις: a. <xs:element ref="telephone_number" mininclusive="1" maxinclusive="5" /> b. <xs:element ref="telephone_number" minoccurs="1" maxoccurs="5" /> c. <xs:element ref="telephone_number" maxinclusive="5" /> d. <xs:element ref="telephone_number" maxoccurs="5" />
XML Schema Ερώτηση 2 (1/2) Επέλεξε ποια τρία από τα παρακάτω είναι valid XML document έχοντας υπόψη το παρακάτω XML Schema Document. XML Schema Document <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="data" type="datatype" /> <xs:complextype name="datatype"> <xs:sequence> <xs:element ref="datafile" maxoccurs="100" /> </xs:sequence> </xs:complextype> <xs:element name="datafile" type="datafiletype" /> <xs:complextype name="datafiletype"> <xs:sequence> <xs:element ref="datafilename" /> </xs:sequence> </xs:complextype> <xs:element name="datafilename" type="xs:string" /> </xs:schema>
XML Schema Ερώτηση 2 (2/2) a. <?xml version="1.0" encoding="utf-8"?> <Data> <DataFile> <DataFileName>accountList.xml</DataFileName> </DataFile> <DataFile> <DataFileName>productList.xml</DataFileName> </DataFile> </Data> c. <?xml version="1.0" encoding="utf-8"?> <Data> <DataFile> <DataFileName>accountList.xml</DataFileName> </DataFile> </Data> b. <?xml version="1.0" encoding="utf-8"?> <Data> <DataFile> <DataFileName>accountList.xml</DataFileName> <DataFileName>productList.xml</DataFileName> </DataFile> </Data> d. <?xml version="1.0" encoding="utf-8"?> <DataFile> <DataFileName>accountList.xml</DataFileName> </DataFile> e. <?xml version="1.0" encoding="utf-8"?> <Data> <DataFile/> </Data>
XML Schema Ερώτηση 3 Επέλεξε ποιο από τα παρακάτω είναι σωστός συνδυασμός XML Schema elements όταν ένα «simple type» element ορίζεται από το the XML Schema, και περιορισμοί (restrictions) εφαρμόζονται στον «simple type». a. element element, simpletype element, extension element b. element element, complextype element, extension element c. element element, simpletype element, restriction element d. element element, complextype element, restriction element
XML Schema Ερώτηση 4 (1/2) Επέλεξε ποιο από τα παρακάτω είναι valid XML document έχοντας υπόψη το παρακάτω XML Schema Document. XML Schema Document <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="personal_information" type="newpersonalinfotype" /> <xs:complextype name="newpersonalinfotype"> <xs:complexcontent> <xs:extension base="personalinfotype"> <xs:sequence> <xs:element ref="birth_date" /> <xs:element ref="hobbies" maxoccurs="30" /> </xs:sequence> </xs:extension> </xs:complexcontent> </xs:complextype> <xs:complextype name="personalinfotype"> <xs:sequence> <xs:element ref="name" /> <xs:element ref="email_address" /> </xs:sequence> </xs:complextype> <xs:element name="name" type="xs:string" /> <xs:element name="email_address" type="xs:string" /> <xs:element name="birth_date" type="xs:string" /> <xs:element name="hobbies" type="xs:string" /> </xs:schema>
XML Schema Ερώτηση 4 (2/2) a. <?xml version="1.0" encoding="utf-8"?> <Personal_Information> <Name>Taro Yamada</Name> <Email_Address>tyamada@aaa.com</Email_Address> <Birth_Date>1980-03-30</Birth_Date> </Personal_Information> c. <?xml version="1.0" encoding="utf-8"?> <Personal_Information> <Birth_Date>1980-03-30</Birth_Date> <Hobbies>Listening to music</hobbies> <Hobbies>Watching movies</hobbies> <Name>Taro Yamada</Name> <Email_Address>tyamada@aaa.com</Email_Address> </Personal_Information> b. <?xml version="1.0" encoding="utf-8"?> <Personal_Information> <Name>Taro Yamada</Name> <Email_Address>tyamada@aaa.com</Email_Address> <Birth_Date>1980-03-30</Birth_Date> <Hobbies>Listening to music</hobbies> <Hobbies>Watching movies</hobbies> </Personal_Information> d. <?xml version="1.0" encoding="utf-8"?> <Personal_Information> <Hobbies>Listening to music</hobbies> <Hobbies>Watching movies</hobbies> <Birth_Date>1980-03-30</Birth_Date> <Email_Address>tyamada@aaa.com</Email_Address> <Name>Taro Yamada</Name> </Personal_Information>
XML Schema Ερώτηση 5 Επέλεξε ποιο από τα παρακάτω αποτελεί σωστό ορισμό για ένα XML Schema αν θέλετε να ορίσετε ένα ακέραιο αριθμό μικρότερο ή ίσο του μηδενός ως το περιεχόμενο του Discount_Amount element. Υποθέτουμε ότι το XML Schema namespace prefix είναι το xs. a. <xs:element name="discount_amount" type="xs:negativeinteger" /> b. <xs:element name="discount_amount" type="xs:positiveinteger" /> c. <xs:element name="discount_amount" type="xs:"nonnegativeinteger" /> d. <xs:element name="discount_amount" type="xs:nonpositiveinteger" />
XML Schema Ερώτηση 6 (1/3) Επιλέξτε ποιο από τα παρακάτω είναι σωστός ως ορισμός που προσθέτει το Mobile element στο Personal_Information element, το οποίο ορίζεται στο παρακάτω XML Schema Document. XML Schema Document <xs:element name="personal_information" type="personalinfotype" /> <xs:complextype name="personalinfotype"> <xs:sequence> <xs:element ref="name" /> <xs:element ref="date_of_birth" /> <xs:element ref="hobbies" minoccurs="1" maxoccurs="30" /> </xs:sequence> </xs:complextype> <xs:element name="name" type="xs:string" /> <xs:element name="date_of_birth" type="xs:string" /> <xs:element name="hobbies" type="xs:string" />
XML Schema Ερώτηση 6 (2/3) a. <xs:element name="personal_information" type="newpersonalinfotype" /> <xs:complextype name="newpersonalinfotype"> <xs:complexcontent> <xs:restriction base="personalinfotype"> <xs:sequence> <xs:element ref="mobile" /> </xs:sequence> </xs:restriction> </xs:complexcontent> </xs:complextype> <xs:element name="mobile" type="xs:string" /> b. <xs:element name="personal_information" type="newpersonalinfotype" /> <xs:complextype name="newpersonalinfotype"> <xs:complexcontent> <xs:restriction base="personalinfotype"> <xs:sequence> <xs:element ref="name" /> <xs:element ref="date_of_birth" /> <xs:element ref="hobbies" minoccurs="1" maxoccurs="30" /> <xs:element ref="mobile" /> </xs:sequence> </xs:restriction> </xs:complexcontent> </xs:complextype> <xs:element name="mobile" type="xs:string" />
XML Schema Ερώτηση 6 (3/3) c. <xs:element name="personal_information" type="newpersonalinfotype" /> <xs:complextype name="newpersonalinfotype"> <xs:complexcontent> <xs:extension base="personalinfotype"> <xs:sequence> <xs:element ref="mobile" /> </xs:sequence> </xs:extension> </xs:complexcontent> </xs:complextype> <xs:element name="mobile" type="xs:string" /> d. <xs:element name="personal_information" type="newpersonalinfotype" /> <xs:complextype name="newpersonalinfotype"> <xs:complexcontent> <xs:extension base="personalinfotype"> <xs:sequence> <xs:element ref="name" /> <xs:element ref="date_of_birth" /> <xs:element ref="hobbies" minoccurs="1" maxoccurs="30" /> <xs:element ref="mobile" /> </xs:sequence> </xs:extension> </xs:complexcontent> </xs:complextype> <xs:element name="mobile" type="xs:string" />
XML Schema Ερώτηση 7 Επέλεξε ποιος από τους παρακάτω XML Schema ορισμούς, επιστρέφει πάντα το Bag ως περιεχόμενο του ProductGenre. a. <xs:element name="productgenre type="xs:string" default="bag" /> b. <xs:element name="productgenre type="xs:string" fixed="bag" /> c. <xs:element name="productgenre type="xs:string" use="bag" /> d. <xs:element name="productgenre type="xs:string" optional="bag" />
Ερωτήσεις??