απάντηση στην ασκηση τεστ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>