Tradurre il seguente schema ER in uno schema XML, includendo nello schema XML anche i vincoli di integrità referenziale (chiavi primarie e chiavi esterne) e identificando eventuali vincoli dello schema ER che non sono esprimibili nello schema XML. Per lo schema XML si usi la notazione sintetica proposta durante il corso (Target Language).
// Schema
db((E | F)*)
E(KE, R+)
R(A, rho+)
A(KA, KE, (B | C | D)?)
B(beta)
C(gamma)
D(delta)
F(KF, S+)
S(KE)
// Vincoli referenziali
KEY(E.KE)
KEY(A.KA, A.KE)
KEY(F.KF)
KEYREF(S.KE --> E.KE)
// Vincoli non esprimibili
CHECK(E.KE = A.KE)
CHECK("Ogni istanza di E è associata tramite S ad almeno una istanza di F")