Άσκηση 8.4
Μετατροπή
ενός
καταλόγου XML σε σχεσιακή βάση
Θέση αρχείων = /ExerciseCode/C8/EightFour/
Σε αυτή
την άσκηση θα
εξετάσετε
τον κώδικα
ενός
προγράμματος
DOM, το οποίο
παίρνει τον
κατάλογο
που
χρησιμοποιείται
σαν
τη βάση όλων των
ασκήσεων XML
και τον
μετατρέπει
σε μια
σχεσιακή ΒΔ.
Αν
δεν έχετε
ξαναδεί την
αναδρομή, η
επόμενη άσκηση
είναι μια
έκδοση
της
παρούσας
χωρίς τη χρήση
αναδρομής.
Ο σαρωτής
που
χρησιμοποιείται
εδώ είναι ο A[ache xerces2 XML parser.
Το
κείμενο XML για
τον
κατάλογο
φαίνεται
παρακάτω:
<BOOKLIST>
<BOOK>
<TITLE>The Endless Path</TITLE>
<AUTHORS>Jones</AUTHORS>
<PRICE AMOUNTCURRENCY = "Pounds">200</PRICE>
<PUBLISHER>Pearson</PUBLISHER>
</BOOK>
<BOOK>
<TITLE>My Story</TITLE>
<AUTHORS>Roberts</AUTHORS>
<PRICE AMOUNTCURRENCY = "SW Francs">500</PRICE>
<PUBLISHER>McMillan</PUBLISHER>
</BOOK>
<BOOK>
<TITLE>XML for Beginners</TITLE>
<ΑUTHORS>Ince</AUTHORS>
<PRICE AMOUNTCURRENCY = "Dollars" DISCOUNT = "5">300</PRICE>
<PUBLISHER>Pearson</PUBLISHER>
</BOOK>
<BOOK>
<TITLE>Java and Nirvana</TITLE>
<AUTHORS>Rowlands</AUTHORS>
<PRICE AMOUNTCURRENCY = "Pounds"> 400 </PRICE>
<PUBLISHER>Wiley</PUBLISHER>
</BOOK>
</BOOKLIST>
Η δομή
της άσκησης
είναι
ίδια με αυτή
που
παρουσιάστηκε
σε προηγούμενη
άσκηση
με τη μέθοδο
processXML να
διατρέχει
αναδρομικά ένα
δέντρο
και να
εκπέμπει
δηλώσεις SQL INSERT
όταν φτάνει στο
τέλος μια
εγγραφής
BOOK. Η άσκηση
περιέχει δύο
κλάσεις:
- BookDetails
είναι η κλάση
που
περιγράφει
βιβλία. Απλώς
περιέχει
μεθόδους
για τον
καθορισμό
και την
παραλαβή
δεδομένων
καθώς και μια
μέθοδο toString.
- DOMRelational
περιέχει την
επεξεργασία
που είναι
απαραίτητη
για την άσκηση.
Η
επεξεργασία
περιέχεται
στη μέθοδο processXML,
η οποία
διατρέχει το
δέντρο DOM και
χτίζει ένα
αντικείμενο
BookDetails και τελικά
φτιάχνει
μια δήλωση SQL INSERT
στην βάση
δεδομένων MS Access, η
οποία
περιέχει
τις
λεπτομέριες
για τα βιβλία.
Όταν η
επεξεργασία
της XML
ολοκληρωθεί,
το πρόγραμμα
μπαίνει στη
βάση
δεδομένων,
παρουσιάζει
κάθε γραμμή
της
και έπειτα
διαγράφει τη
βάση
δεδομένων
για πιθανή
επανεκτέλεση
του
προγράμματος.
Πριν
ξεκινήσετε
θα πρέπει να
δηλώσετε την
βάση
δεδομένων της
άσκησης στα Windows.
Κάνετε τα
παρακάτω
βήματα.
- Πατήστε Start|Settings|Control
Panel
- Δείτε
την εικόνα
που
καθορίζει
σύνδεση ODBC στο
control panel. Αυτή είναι
ένα απλό σύστημα
ονομασίας
που
επιτρέπει τα
προγράμματα Java
να
επικοινωνούν
με μια βάση
δεδομένων
της Microsoft. Πατήστε 2
φορές την
εικόνα.
- Πατήστε το κουμπί add
στο
παράθυρο που
εμφανίζεται.
- Στο
επόμενο
παράθυρο
πατήστε δύο
φορές τη γραμμή
που αρχίζει
με MS Access Driver....
Ένα νέο
παράθυρο
πρέπει να
εμφανιστεί.
- Στο
νέο παράθυρο
εισάγεται
το
string " DOMbooks " στο
πεδίο Data Source Name.
Κατόπιν
πατήστε το
κουμπί Select.
- Πάτε
στον φάκελο
που περιέχει
την
βάση
δεδομένων. Θα
την βρείτε
στον
κατάλογο
/ExerciseCode/C8/ExEightFour/.
Θα
καταλάβετε
ότι έχετε
φτάσει
το όνομα του
αρχείου όταν
αυτό (BookDatabase.mdb)
εμφανιστεί
στην πιο
αριστερή
περιοχή
κειμένου.
Επιλέξτε τον
φάκελο και
πατήστε OK.
- Κλείστε
όλα τα
παράθυρα που
ανοίξατε
πατώντας OK σε
όλα.
- Τώρα
η βάση
δεδομένων
μπορεί να
αναφερθεί με
το όνομα DOMbooks μέσα στο πρόγραμμα Java.
Ακολουθήστε
τα παρακάτω
βήματα
- Εξετάστε
τον κώδικα στο BookDetails.
- Εξετάστε
τον κώδικα
στο DOMRelational. Είναι
παρόμοιος με
αυτόν
προηγούμενων
ασκήσεων στο
ότι
επεξεργάζεται
ένα δέντρο DOM,
φτιάχνει ένα
αντικείμενο
BookDetails μέχρι να
βρει την
ετικέτα </BOOK>
.Όταν αυτή
βρεθεί
οι
λεπτομέρειες
του βιβλίου
εισάγονται
στη βάση
δεδομένων.
- Εκτελέστε
τον κώδικα.
Έπειτα από
κάποια
μηνύματα
σχετικά με τη
δημιουργία
της
βάσης, θα
δείτε
δηλώσεις SQL
που
εκτελούνται.
Τελικά οι
τέσσερις
γραμμές της
βάσης
δεδομένων
εμφανίζονται
πριν τη
διαγραφή της.
- Προσπαθήστε
να
συσχετίσετε
τη δημιουργία
του
αντικείμένου
BookDetails
με τον κώδικα
και την
εκτέλεση της
δήλωσης SQL INSERT.