απάντηση στην ασκηση τεστ1

 (a)

Προδιαγράφονται XML αρχεία που έχουν όλα τα εμπορικά στοιχεία μιας εταιρίας: 0 ή περισσότερους πελάτες, 1 ή περισσότερα προϊόντα, 0 ή περισσότερα τιμολόγια, 0 ή περισσότερες παραγγελίες.

Η παραπάνω γενική δομή περιγράφεται στον ορισμό της Γραμμής 1.

Στις Γραμμές 2 – 4 περιγράφεται το element για κάθε Πελάτη: περιέχει (α) ένα υποχρεωτικό attribute με τον κωδικό του πελάτη, τύπου ID (δηλαδή με μοναδική τιμή στο XML αρχείο που πρέπει να υπακούει στους κανόνες ονομάτων της XML), (β) ένα child element με το όνομα του πελάτη.

Στις Γραμμές 5 – 8 περιγράφεται το element για κάθε Προϊόν: περιέχει (α) ένα υποχρεωτικό attribute με τον κωδικό του προϊόντος, τύπου ID, (β) ένα child element με το όνομα του προϊόντος και (γ) ένα child element με την τιμή του προϊόντος.

Στις Γραμμές 9 – 10 περιγράφεται το άδειο element (χωρίς child elements ή κείμενο) για κάθε Τιμολόγιο: περιέχει (α) ένα υποχρεωτικό attribute με τον κωδικό του τιμολογίου, τύπου ID, (β) ένα υποχρεωτικό attribute τύπου IDREF που αναφέρεται στο attribute customerID (πρέπει να έχει την τιμή κάποιου attribute customerID στο αρχείο), (γ) ένα υποχρεωτικό attribute με την ημερομηνία του τιμολογίου, (δ) ένα υποχρεωτικό attribute με την ένδειξη true ή false για το αν έχει πληρωθεί το τιμολόγιο, τύπου enumerated που ορίζουμε να έχει τις δύο τιμές true ή false.

Στις Γραμμές 11 – 12 περιγράφεται το άδειο element (χωρίς child elements ή κείμενο) για κάθε Παραγγελία: περιέχει (α) ένα υποχρεωτικό attribute τύπου IDREF που αναφέρεται στο attribute invoiceID (πρέπει να έχει την τιμή κάποιου attribute invoiceID στο αρχείο), (β) ένα υποχρεωτικό attribute τύπου IDREF που αναφέρεται στο attribute productID (πρέπει να έχει την τιμή κάποιου attribute productID στο αρχείο), (γ) ένα υποχρεωτικό attribute με την ποσότητα της παραγγελίας, (δ) ένα προαιρετικό attribute με σχόλια για την παραγγελία.

 

(b)

<MyCompany>

                <Customer customerID=”CU001”>

                                <Name>John Garofalakis</Name>

                </Customer>

                <Product productID=”BOOK35”>

                                <ProductName>Telematics</ProductName>

                                <Price>22.70</Price>

                </Product>

                <Invoice invoiceID=”IN0001” customerID=”CU001” date=”31.05.2008” paid=”true”></Invoice>

                <InvoiceOrder invoiceID=”IN0001” productID=” BOOK35” units=”11” notes=”Amesi paradosi”/>

</MyCompany>