Κατανεμημένες Εφαρμογές και Ηλεκτρονικό Εμπόριο
{Main Text}

Άσκηση 8.6

Ανάπτυξη μιας απλής γλώσσας γραφικών βασισμένης σε XML

Θέση αρχείων = /ExerciseCode/C8/EightSix/

Εδώ χρησημοποιούμε τον σαρωτή XML xerces2 της Apache, τον οποίο μπορείτε να βρείτε στο Apache Foundation.

Σε αυτήν την άσκηση θα εισάγετε κώδικα σε έναν σαρωτή, ο οποίος που παίρνει τις περιγραφές γραφικών οντοτήτων, που είναι εκφρασμένες σε XML, και τις παρουσιάζει  σε ένα παράθυρο. Η άσκηση περιλαμβάνει ορισμένες κλάσεις και αρχεία:

Το αρχείο ShapeList.txt ακπλουθεί

<?xml version = "1.0" standalone = "yes" ?>

<!DOCTYPE SHAPELIST[

<!ELEMENT SHAPELIST (CIRCLE|LINE)* >
<!ELEMENT CIRCLE EMPTY>
<!ELEMENT LINE EMPTY>

<!ATTLIST CIRCLE
XPOS CDATA #REQUIRED
YPOS CDATA #REQUIRED
DIAMETER CDATA #REQUIRED
>
<!ATTLIST LINE
XSTARTPOS CDATA #REQUIRED
YSTARTPOS CDATA #REQUIRED
XFINISHPOS CDATA #REQUIRED
YFINISHPOS CDATA #REQUIRED
>
]>
<SHAPELIST>

<CIRCLE XPOS = "100" YPOS = "100" DIAMETER = "50" />
<CIRCLE XPOS = "50" YPOS = "50" DIAMETER = "20" />
<LINE XSTARTPOS = "30" YSTARTPOS = "30" XFINISHPOS =
"170" YFINISHPOS = "170" />
<CIRCLE XPOS = "70" YPOS = "70" DIAMETER = "20" />
<LINE XSTARTPOS = "80" YSTARTPOS = "30" XFINISHPOS =
"170" YFINISHPOS = "170" />
</SHAPELIST>

Δηλώνει ότι το ο κώδικας θα αποτελείται από έναν αριθμό στοιχείων CIRCLE και LINE. Το  CIRCLE να έχει τρεις ιδιότητες που καθορίζουν το κέντρο και τη διάμετρό του. Το LINE να έχει τέσσερις ιδιότητες που καθορίζουν τα σημεία τέλους τους. Στην παραπάνω δήλωση η λέξη EMPTY χρησιμοποιείται για να δείξει ότι δεν υπάρχει αλφαριθμητικό που να συσχετίζεται είτε με  LINE  είτε με CIRCLE όπως  <LINE>String</LINE>

Ο κώδικας δημιουργεί τρεις κύκλους και δύο γραμμές. Προσέξτε ότι χρησιμοποιήσαμε τη σύντομη μορφή XML, που χρησιμοποιείται όταν δεν υπάρχει ένθετο αλφαριθμητικό μεταξύ επιθεμάτων αρχής και τέλους. Αυτό απαιτεί τον τερματισμό ενός αρχικού επιθέματος με  />.

Ακολουθήστε τα παρακάτω βήματα.