ΘΕΜΑ ΠΡΟΣΟΜΟΙΩΣΗ ΕΞΕΤΑΣΗΣ 9.5.03 ΑΠΑΝΤΗΣΕΙΣ Ένα δίκτυο κινητής τηλεφωνίας τεχνολογίας GSM, με μέγεθος συστάδας (cluster) κυψελών επαναληψιμότητας συχνοτήτων, είναι εγκατεστημένο σε μια γεωγραφική περιοχή και εξυπηρετεί τους κινητούς συνδρομητές ενός συγκεκριμένου Παρόχου. Η γεωγραφική περιοχή κάλυψης για επικοινωνιακή εξυπηρέτηση είναι 5000 Km και στο πλαίσιο του κυψελοειδούς σχεδιασμού του δικτύου αυτού, με βάση τη διασφάλιση του κριτηρίου της ομοιόμορφης κατανομής του συνδρομητικού φορτίου σε ολόκληρη τη γεωγραφική περιοχή, αποφασίσθηκε η υιοθέτηση ίσων κυψελών σχήματος κανονικού εξαγώνου. Επιπλέον δίδονται:. Η περιοχή συχνοτήτων λειτουργίας στο GSM είναι 890 95MHz (Άνω Ζεύξη) και 935 960MHz (Κάτω Ζεύξη) και το TDMA πλαίσιο αποτελείται από 8 χρονοθυρίδες (timeslots).. Η απόσταση των διαδοχικών καναλιών είναι 00 KHz (να ληφθεί και σαν εύρος ζώνης καναλιού). 3. Ο Πάροχος του δικτύου έχει άδεια να χρησιμοποιεί το μισό φάσμα συχνοτήτων του GSM τόσο για την άνω όσο και για την κάτω ζεύξη. 4. Ακτίνα εξαγώνου (κυψέλης) Km 5. Εμβαδόν Εξαγώνου: Όπου: E R 3 3 E R είναι το εμβαδόν ενός κανονικού εξαγώνου είναι η ακτίνα ενός κανονικού εξαγώνου Να απαντηθούν τα παρακάτω ερωτήματα:. Να προσδιορισθεί (α) ο συνολικός αριθμός των καναλιών που θα χρησιμοποιηθούν σε ολόκληρη τη γεωγραφική περιοχή και (β) ο αριθμός επαναληψιμότητας του ίδιου καναλιού σε ολόκληρη τη γεωγραφική περιοχή.. Για τη διασφάλιση των επικοινωνιών, το δίκτυο δεσμεύει το % των διαθέσιμων χρονοθυρίδων (time slots) τόσο στην άνω, όσο και στην κάτω ζεύξη. Να προσδιορισθεί ο συνολικός αριθμός των χρονοθυρίδων οι οποίες χρησιμοποιούνται για τα σήματα σηματοδοσίας για τη διασφάλιση των επικοινωνιών σε ολόκληρη τη γεωγραφική περιοχή εξυπηρέτησης. 3. Να συμπληρώσετε με ΝΑΙ ή ΟΧΙ τα πεδία του παρακάτω πίνακα:
Α/Α ΔΙΑΔΙΚΑΣΙΑ Κεραιοσύστημα (Α ΤΧ ) Η διασφάλιση των επικοινωνιών μεταξύ κινητών συνδρομητών σε μια κυψέλη είναι ευθύνη. Ο έλεγχος επιλογής του Υπεύθυνου BTS για επικοινωνία είναι ευθύνη 3 Η ραδιοκάλυψη μιας κυψέλης είναι ευθύνη. 4 Η μεταπομπή (handover) σε γειτονική κυψέλη υπό τον έλεγχο ενός ψηφιακού κέντρου (MSC), είναι ευθύνη. 5 Η διασφάλιση του ελέγχου των νόμιμων παρεχομένων υπηρεσιών στους συνδρομητές που εξυπηρετούνται από ένα συγκεκριμένο ψηφιακό κέντρο (MSC) αντλείται από. 6 Η διασφάλιση του ελέγχου των νόμιμων παρεχομένων υπηρεσιών στους συνδρομητές που εξυπηρετούνται από ένα Πάροχο σε ολόκληρο το δίκτυο κινητής τηλεφωνίας, αντλείται από. 7 Η μόνιμη καταγραφή των στοιχείων των συνδρομητών ενός Παρόχου πραγματοποιείται.. 8 Η προσωρινή καταγραφή των στοιχείων των συνδρομητών ενός Παρόχου πραγματοποιείται.. Πομποδέκτες (BTS) Ελεγκτήρας Στ. Βάσης (BSC) Ψηφιακό Κέντρο (MSC) Β.Δ. Επισκεπτών (VLR)* Οικεία Β.Δ. (HLR)** * VLR: Visitor Location Register ** HLR: Home Location Register
Απάντηση στο Ερώτημα ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΟΣ Απάντηση (.α) Ο Πάροχος, χρησιμοποιεί το μισό διαθέσιμο φάσμα συχνοτήτων: Με βάση τα δεδομένα της άσκησης, το φάσμα της άνω ζεύξης είναι: 95MHz 890MHz 5MHz και το φάσμα για την κάτω ζεύξη είναι 960MHz 935MHz 5MHz, Επειδή το διαθέσιμο φάσμα καταχωρείται ομοιόμορφα στη συστάδα των κυψελών επαναληψιμότητας, το διαθέσιμο φάσμα (άνω και κάτω ζεύξης) στη συστάδα των κυψελών είναι 5 MHz (επειδή ο Πάροχος χρησιμοποιεί το μισό από το συνολικό των 50 MHz φάσματος συχνοτήτων). Λαμβανομένου υπόψη ότι το εύρος ζώνης του καναλιού είναι καναλιών είναι: 00 KHz, τότε ο συνολικός αριθμός των 5MHz 00 KHz 5 000 KHz 00 KHz 5 κανάλια Τα 5 κανάλια (άνω και κάτω ζεύξης) καταχωρούνται στη συστάδα επαναληψιμότητας, η οποία έχει μέγεθος. Ακολούθως, θα πρέπει να προσδιορίσουμε το συνολικό αριθμό των συστάδων επαναληψιμότητας οι οποίες θα καλύψουν ολόκληρη τη γεωγραφική περιοχή: E E E 5000 Km 40. συστάδες E E 3 3 3 3 R Km Επομένως στις 40. συστάδες θα χρησιμοποιηθούν συνολικά: ( 5 ) 40. ά 50.5 ά κανάλια Άρα: Ο συνολικός αριθμός των καναλιών που θα χρησιμοποιηθούν σε ολόκληρη τη γεωγραφική περιοχή είναι 50.5 Απάντηση (.β) Με βάση τον υπολογισμό στο ερώτημα (α), όπου σε ολόκληρη την γεωγραφική περιοχή θα πρέπει να υπάρχουν 40. συστάδες, αυτό σημαίνει ότι κάθε κανάλι επαναλαμβάνεται 40. φορές σε ολόκληρη τη γεωγραφική περιοχή. 3
Απάντηση στο Ερώτημα Επειδή η κάθε συχνότητα (κανάλι) επιμερίζεται στο χρόνο με 8 χρονοθυρίδες (timeslots), τότε ο συνολικός αριθμός των χρονοθυρίδων που αντιστοιχούν στο σύνολο των καναλιών σε ολόκληρη τη γεωγραφική περιοχή είναι: ί 50.5 8 4000 χρονοθυρίδες Άρα: Ο συνολικός αριθμός των χρονοθυρίδων οι οποίες χρησιμοποιούνται για τα σήματα σηματοδοσίας για τη διασφάλιση των επικοινωνιών σε ολόκληρη τη γεωγραφική περιοχή εξυπηρέτησης, είναι: % 4000 ί 0.0 4000 80 χρονοθυρίδες Άρα: Ο αριθμός χρονοθυρίδων για τα σήματα σηματοδοσίας είναι 80 χρονοθυρίδες Απάντηση στο Ερώτημα 3 Α/Α ΔΙΑΔΙΚΑΣΙΑ Κεραιοσύστημα (Α ΤΧ) Η διασφάλιση των επικοινωνιών μεταξύ κινητών συνδρομητών σε μια κυψέλη είναι ευθύνη. Ο έλεγχος επιλογής του Υπεύθυνου BTS για επικοινωνία είναι ευθύνη 3 Η ραδιοκάλυψη μιας κυψέλης είναι ευθύνη. 4 Η μεταπομπή (handover) σε γειτονική κυψέλη υπό τον έλεγχο ενός ψηφιακού κέντρου (MSC), είναι ευθύνη. 5 Η διασφάλιση του ελέγχου των νόμιμων παρεχομένων υπηρεσιών στους συνδρομητές που εξυπηρετούνται από ένα συγκεκριμένο ψηφιακό κέντρο (MSC) αντλείται από. 6 Η διασφάλιση του ελέγχου των νόμιμων παρεχομένων υπηρεσιών στους συνδρομητές που εξυπηρετούνται από ένα Πάροχο σε ολόκληρο το δίκτυο κινητής τηλεφωνίας, αντλείται από. 7 Η μόνιμη καταγραφή των στοιχείων των συνδρομητών ενός Παρόχου πραγματοποιείται.. 8 Η προσωρινή καταγραφή των στοιχείων των συνδρομητών ενός Παρόχου πραγματοποιείται.. Πομποδέκτες (BTS) Ελεγκτήρας Στ. Βάσης (BSC) Ψηφιακό Κέντρο (MSC) Β.Δ. Επισκεπτών (VLR) ΝΑΙ ΝΑΙ ΟΧΙ ΟΧΙ ΝΑΙ ΟΧΙ ΟΧΙ ΟΧΙ ΝΑΙ ΝΑΙ ΟΧΙ ΟΧΙ ΝΑΙ ΟΧΙ ΟΧΙ ΟΧΙ ΟΧΙ ΟΧΙ ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ ΟΧΙ ΟΧΙ ΟΧΙ ΟΧΙ ΟΧΙ ΟΧΙ ΝΑΙ ΟΧΙ ΟΧΙ ΟΧΙ ΟΧΙ ΟΧΙ ΟΧΙ ΝΑΙ ΟΧΙ ΟΧΙ ΟΧΙ ΟΧΙ ΟΧΙ ΝΑΙ ΟΧΙ ΟΧΙ ΟΧΙ ΟΧΙ ΝΑΙ ΟΧΙ Οικεία Β.Δ. (HLR) 4
ΘΕΜΑ Θεωρήστε ότι ένα αρχείο 0.000 bytes (χαρακτήρων) πρόκειται να αποσταλεί μέσω μια γραμμής με ταχύτητα μετάδοσης.400 bps.. Υπολογίστε την επιβάρυνση σε bits και χρόνο (σε απόλυτες τιμές και %), θεωρώντας ότι η επικοινωνία γίνεται ασύγχρονα. Κατά την ασύγχρονη επικοινωνία, αποστέλλεται ένα bit έναρξης, τα 8 bits του byte κάθε χαρακτήρα και ένα bit τερματισμού.. Υπολογίστε την επιβάρυνση σε bits και χρόνο (σε απόλυτες τιμές και %) όταν η επικοινωνία γίνεται σύγχρονα. Θεωρήστε ότι τα δεδομένα αποστέλλονται σε πλαίσια (frames), και ότι κάθε πλαίσιο αποτελείται από.000 χαρακτήρες και μια επιβάρυνση 48 bit ελέγχου ανά πλαίσιο. 3. Ποιες θα ήταν οι απαντήσεις για τα ερωτήματα και για ένα αρχείο 00.000 χαρακτήρων; 4. Ποιες θα ήταν οι απαντήσεις για τα ερωτήματα και για το αρχείο των 0.000 χαρακτήρων αν η ταχύτητα μετάδοσης της γραμμής ήταν 9.600 bps; ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΟΣ () Κατά την ασύγχρονη μετάδοση, κάθε χαρακτήρας επιβαρύνεται με δύο επιπλέον bits. Συνεπώς, η επιβάρυνσης σε bits είναι /8 = 5% ή 0.000 επιπλέον bits. Για τους 0.000 χαρακτήρες υπάρχουν 0.000 επιπλέον bits που μεταδίδονται. Συνεπώς, η χρονική επιβάρυνση λόγω της ασύγχρονης επικοινωνίας είναι 0.000 bits/.400 bps = 8,33 sec ή 5%. () Για να μεταδοθεί το αρχείο απαιτούνται 0.000 bytes /(.000 bytes/πλαίσιο) = 0 πλαίσια. Επειδή κάθε πλαίσιο επιβαρύνεται με 48 bits ελέγχου, η συνολική επιβάρυνση σε bits είναι 48x0=480 bits, ή 480/80.000 = 0,006%. O χρόνος που απαιτείται για την μετάδοση των επιπλέον 480 bits είναι 480 bits/.400 bps = 0, sec ή 0,006%. (3) Επειδή δεκαπλασιάζεται το μέγεθος του αρχείου, δεκαπλασιάζονται τόσο η επιβάρυνση σε bits όσο και η επιβάρυνση σε χρόνο. (4) Η αύξηση της ταχύτητας της γραμμής δεν επηρεάζει την επιβάρυνση σε bits στα ερωτήματα και. Τόσο στο ερώτημα όσο και στο ερώτημα ο χρόνος υποτετραπλασιάζεται λόγω της αύξησης της ταχύτητας της γραμμής γιατί: 9.600 bps/.400 bps = 4. Συνεπώς, για την ασύγχρονη μετάδοση η χρονική επιβάρυνση είναι 8,33 sec/4 =,085 sec ενώ για τη σύγχρονη μετάδοση είναι 0, sec/4 = 0,05 sec 5
ΘΕΜΑ 3 Έστω το παρακάτω δίκτυο 5 4 3 6 Όλοι οι σύνδεσμοι είναι full duplex και έχουν εύρος ζώνης 0.8 Mbps και καθυστέρηση διάδοσης 0ms. Οι κόμβοι διαθέτουν ουρές χωρίς περιορισμό χωρητικότητας που λειτουργούν με λογική FIFO (First-In-First-Out). Ο κόμβος έχει στην ουρά του πακέτα p, p για να στείλει στους κόμβους 5 και 6 αντίστοιχα. Για το πακέτο p ο αλγόριθμος δρομολόγησης έχει επιλέξει το μονοπάτι -> -> 5 και για το p το -> 3 -> 4 -> 6. Πρώτα αποστέλλεται το p και μετά το p. Στον κόμβο 3 προϋπάρχουν 6 πακέτα με τελικό προορισμό τον κόμβο, ενώ στον κόμβο 4 είναι αποθηκευμένα 0 πακέτα με τελικό προορισμό τον κόμβο. Όλες οι υπόλοιπες ουρές είναι άδειες. Όλα τα πακέτα έχουν μέγεθος 400bytes. Υποθέστε ότι όλοι οι κόμβοι ξεκινούν ταυτόχρονα τη λειτουργία τους και ότι ο χρόνος επεξεργασίας των πακέτων είναι μηδενικός. Υπολογίστε για τα p, p : την καθυστέρηση μετάδοσης την καθυστέρηση διάδοσης την καθυστέρηση αναμονής τη συνολική καθυστέρηση παράδοσης στον προορισμό Δίνεται ότι: byte = 8 bits Mbps = 0 6 bps 6
ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΟΣ 3 Για το p : o για τη μετάδοση στον σύνδεσμο -> καθυστέρηση αναμονής: TA =0 καθυστέρηση μετάδοσης: TM = (400*8)bits/(0.8*0 6 )bps=0.004sec καθυστέρηση διάδοσης: ΤΔ =0.0sec o για τη μετάδοση στον σύνδεσμο -> 5 καθυστέρηση αναμονής: TA =0 καθυστέρηση μετάδοσης: TM = (400*8)bits/(0.8*0 6 )bps=0.004sec καθυστέρηση διάδοσης: ΤΔ =0.0sec o Συνολικά: Καθυστέρηση αναμονής: ΤΑ =ΤΑ +ΤΑ =0 Καθυστέρηση μετάδοσης: ΤΜ =ΤΜ +ΤΜ =0.008sec Καθυστέρηση διάδοσης: ΤΔ =ΤΔ +ΤΔ =0.0sec Συνολική καθυστέρηση παράδοσης: Τ =ΤΑ +ΤΜ +ΤΔ =0.08sec Για το p : o για τη μετάδοση στον σύνδεσμο -> 3 καθυστέρηση αναμονής: TA =0.004sec (λόγω της μετάδοσης του p που προηγείται) καθυστέρηση μετάδοσης: TM = (400*8)bits/(0.8*0 6 )bps=0.004sec καθυστέρηση διάδοσης: ΤΔ =0.0sec o για τη μετάδοση στον σύνδεσμο 3 -> 4 καθυστέρηση αναμονής: TA=0.00sec +0.004sec=0.006sec Μέχρι τη στιγμή που το p θα ξεκινήσει να μεταδίδεται από τον κόμβο 3 έχουν μεσολαβήσει 0,004 sec + 0,004 sec + 0,0 sec = 0,08 (ο συνολικός χρόνος που απαιτείται για να μεταδοθεί το p από τον κόμβο στον κόμβο 3. Δεδομένου ότι για να μεταδοθεί ένα πακέτο απαιτούνται 0,004 sec, στα 0,08 sec έχουν μεταδοθεί από τον κόμβο 3: 0,08/0,004 = 4,5 πακέτα. Συνεπώς, προς μετάδοση απομένουν 6 4,5 =,5 πακέτα οπότε ο χρόνος αναμονής είναι ο χρόνος που απαιτείται για να μεταδοθούν είναι: 0,004 sec + 0,004/ sec = 0,006 sec. καθυστέρηση μετάδοσης: TM = (400*8)bits/(0.8*0 6 )bps=0.004sec καθυστέρηση διάδοσης: ΤΔ =0.0sec o για τη μετάδοση στον σύνδεσμο 4 -> 6 καθυστέρηση αναμονής: TA 3 =0.00sec (μέχρι να μεταδοθεί το 0 ο πακέτο που προϋπήρχε στον κόμβο 4 και ξεκίνησε να μεταδίδεται στα 9*0.004=0.036 sec) Μέχρι τη στιγμή που το p θα ξεκινήσει να μεταδίδεται από τον κόμβο 4 έχουν μεσολαβήσει 0,08 sec + 0,0 = 0,038: 0,004 sec + 0,004 sec + 0,0 sec = 0,08 (ο συνολικός χρόνος που απαιτείται για να μεταδοθεί το p από τον κόμβο στον κόμβο 3). 0,006 sec + 0,004 sec + 0,0 sec = 0,0 (ο συνολικός χρόνος που απαιτείται για να μεταδοθεί το p από τον κόμβο στον κόμβο 3). 7
Δεδομένου ότι για να μεταδοθεί ένα πακέτο απαιτούνται 0,004 sec, στα 0,038 sec έχουν μεταδοθεί από τον κόμβο 4: 0,038/0,004 = 9,5 πακέτα. Συνεπώς, προς μετάδοση απομένουν 0 9,5 = 0,5 πακέτο οπότε ο χρόνος αναμονής είναι ο χρόνος που απαιτείται για να μεταδοθούν είναι: 0,004/ sec = 0,00 sec. καθυστέρηση μετάδοσης: TM 3 = (400*8)bits/(0.8*0 6 )bps=0.004sec καθυστέρηση διάδοσης: ΤΔ 3 =0.0sec o Συνολικά: Καθυστέρηση αναμονής: ΤΑ =ΤΑ +ΤΑ +ΤΑ 3 =0.0sec Καθυστέρηση μετάδοσης: ΤΜ =ΤΜ +ΤΜ +ΤΜ 3 =0.0sec Καθυστέρηση διάδοσης: ΤΔ =ΤΔ +ΤΔ +ΤΔ 3 =3*0.0=0.03sec Συνολική καθυστέρηση παράδοσης: Τ =ΤΑ +ΤΜ +ΤΔ =0.054sec 8
ΘΕΜΑ 4 Δίνεται ο ακόλουθος PHP κώδικας (αρχείο thema.php):. <?php. function S() 3. { 4. for ($i=0; $i < 3; $i++) 5. { 6. $random = (rand()%3); 7. $x[] = $random; 8. } 9. print("<td><center>$x[0]</td>"); 0. print("<td><center>$x[]</td>");. print("<td><center>$x[]</td>");. if($x[0] == $x[] && $x[0] == $x[]) 3. { 4. print("<b>μπράβο! - Δοκιμάστε ξανά πατώντας F5 (ανανέωση) του 5. browser --</b>"); 6. exit; 7. } 8. } 9.?> 0. <div align="center">. <table border="" width="30%">. <tr bgcolor="bbeeff"> 3. <?php 4. S(); 5.?> 6. </tr> 7. <tr> 8. <td colspan="3" bgcolor="#000000"> 9. </br> 30. <form method="post" action="thema.php"> 3. <center> 3. <input type="submit" value=" Δοκιμάστε Ξανά! "> 33. </center> 34. </form> 35. </td> 36. </tr> 37. </table> 38. </div> (a) Τι λειτουργία επιτελεί; (b) Τι θα παρουσιαστεί στο χρήστη με την εκτέλεσή του; Εξηγείστε βήμα προς βήμα τον κώδικα και το αποτέλεσμα. 9
ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΟΣ 4 (a) Είναι ένα απλό παιχνίδι τύπου "slot machine - κουλοχέρης". (b) Όταν φορτώνεται η σελίδα thema.php, δημιουργείται ένας πίνακας (Γραμμές -37) με πάχος pixel και πλάτος 30% σε σχέση με το πλάτος της σελίδας (Γραμμή ). Στην πρώτη γραμμή του πίνακα (Γραμμές -6) που έχει χρώμα "bbeeff" (σιέλ) (Γραμμή ), καλείται η PHP συνάρτηση S() (Γραμμές 3-5). Η συνάρτηση αυτή (ο κώδικάς της δίνεται στις Γραμμές -8) αναθέτει τιμές στα 3 κελιά της πρώτης γραμμής του πίνακα. Αυτό γίνεται με το for loop (Γραμμές 4-8) όπου καλείται η rand() συνάρτηση η οποία με τη σειρά της παράγει τυχαίους integer. Στη συνέχεια, υπολογίζεται το ακέραιο υπόλοιπό τους (modulo) με το 3 (Γραμμή 6). Συνεπώς, οι δυνατές τιμές που μπορούν να εμφανιστούν στα κελιά είναι 0, και (Γραμμές 9-). Στη δεύτερη γραμμή του πίνακα (Γραμμές 7-36) υπάρχει το κουμπί "Δοκιμάστε Ξανά!" (Γραμμή 3). Ο παίκτης κερδίζει όταν και στα 3 κελιά εμφανιστούν οι ίδιοι αριθμοί, δηλαδή κερδίζουν οι συνδυασμοί 0-0-0 ή -- ή --. Ο έλεγχος αυτός γίνεται από τη συνάρτηση S() (Γραμμές -8). Όταν η συνθήκη της if ισχύει (Γραμμή ), εμφανίζεται το μήνυμα "Μπράβο! Δοκιμάστε ξανά πατώντας F5 (ανανέωση) του browser --" (Γραμμές 4-5) και γίνεται έξοδος από τη συνάρτηση (Γραμμή 6). Αν ο παίκτης επιθυμεί να ξαναπαίξει, πρέπει να ανανεώσει τη σελίδα του browser (πλήκτρο F5 ή επιλογή ανανέωση από το μενού του browser). Αν η συνθήκη της if δεν ισχύει (Γραμμή ), ο παίκτης έχει χάσει. Μπορεί όμως να ξαναπροσπαθήσει πατώντας το κουμπί "Δοκιμάστε Ξανά!" (Γραμμή 3), οπότε ξανακαλείται η σελίδα thema.php.
ΘΕΜΑ 5 Δίνεται το παρακάτω DTD (Document Type Definition): <!ELEMENT collection (description, recipe*)> <!ELEMENT description (#PCDATA)> <!ELEMENT recipe (title, ingredient+, preparation, comment?, nutrition)> <!ELEMENT title (#PCDATA)> <!ELEMENT ingredient EMPTY> <!ATTLIST ingredient name CDATA #REQUIRED amount CDATA #IMPLIED unit CDATA #IMPLIED> <!ELEMENT preparation (step*)> <!ELEMENT step (#PCDATA)> <!ATTLIST step No ID #REQUIRED> <!ELEMENT comment (#PCDATA)> <!ELEMENT nutrition EMPTY> <!ATTLIST nutrition protein CDATA #REQUIRED carbohydrates CDATA #REQUIRED fat CDATA #REQUIRED calories CDATA #REQUIRED alcohol CDATA #IMPLIED> (a) (b) (c) Να περιγράψετε τι είδους XML αρχεία προδιαγράφονται από το παραπάνω DTD, και να εξηγήσετε κάθε ορισμό του παραπάνω DTD, καθώς και τους ιδιαίτερους περιορισμούς που επιβάλλονται στα στοιχεία των XML αρχείων. Παρουσιάστε ένα valid XML αρχείο σύμφωνα με τον παραπάνω DTD ορισμό, περιλαμβάνοντας τουλάχιστον ένα από κάθε είδος element και attribute. Παρουσιάστε το DOM δέντρο του XML αρχείου που παρουσιάσατε στο (b).
(a) ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΟΣ 5 Προδιαγράφονται XML αρχεία που περιέχουν μια συλλογή (root element: collection) από συνταγές μαγειρικής. Κάθε συλλογή έχει μια περιγραφή και 0 ή περισσότερες συνταγές (elements: description, recipe*). Κάθε συνταγή έχει ένα τίτλο, ή περισσότερα συστατικά, οδηγίες παρασκευής, προαιρετικό σχόλιο και πληροφορίες θρεπτικών συστατικών (elements: title, ingredient+, preparation, comment?, nutrition). Κάθε συστατικό μιας συνταγής, έχει (μόνο) attributes που περιγράφουν το όνομα, την ποσότητα (προαιρετικά: #IMPLIED) και τη μονάδα μέτρησης (προαιρετικά: #IMPLIED) του συστατικού (attributes: name, amount, unit). Οι οδηγίες παρασκευής μιας συνταγής, περιλαμβάνουν 0 ή περισσότερα βήματα (element: step*). Κάθε βήμα, εκτός από την περιγραφή του, έχει ένα attribute (τύπου ID) με τον αύξοντα αριθμό του (attribute: No). Τέλος, οι πληροφορίες θρεπτικών συστατικών μιας συνταγής, έχουν (μόνο) attributes που περιλαμβάνουν τιμές για τις πρωτεΐνες, τους υδρογονάνθρακες, το λίπος, τις θερμίδες και (προαιρετικά: #IMPLIED) του αλκοόλ (attributes: protein, carbohydrates, fat, calories, alcohol). (b) <collection> <description> Some recipes used for this exam. </description> <recipe> <title>beef Parmesan</title> <ingredient name="beef cube" amount=".5" unit="pound"/>... <preparation> <step No=""> Preheat oven to 75 degrees C. </step>... </preparation> <comment> Make the meat ahead of time, and refrigerate over night, the acid in the tomato sauce will tenderize the meat even more. If you do this, save the mozzarella till the last minute. </comment> <nutrition protein="3" carbohydrates="45" fat="3" calories="67" alcohol="0"/> </recipe>... </collection>
(c) Document collection description recipe Some recipes used for this exam. title ingredient preparation comment nutrition Beef Parmesan step Make the meat ahead name amount unit No Preheat oven to beef cube.5 pound protein carbohydrates fat calories alcohol 3 45 3 67 0